From ca3985541712e597766e4417b20be3da3fee58b0 Mon Sep 17 00:00:00 2001 From: kishan Date: Tue, 9 Aug 2011 20:24:25 +0530 Subject: [PATCH] bug 10613,10614,10615: Check if the loadbalancer rule exists before assign/remove/deleting rule status 10613,10614,10615: resolved fixed --- .../cloud/api/commands/AssignToLoadBalancerRuleCmd.java | 7 ++++++- .../com/cloud/api/commands/DeleteLoadBalancerRuleCmd.java | 7 ++++++- .../cloud/api/commands/RemoveFromLoadBalancerRuleCmd.java | 7 ++++++- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/api/src/com/cloud/api/commands/AssignToLoadBalancerRuleCmd.java b/api/src/com/cloud/api/commands/AssignToLoadBalancerRuleCmd.java index 69963bc9249..537d3cffb9c 100644 --- a/api/src/com/cloud/api/commands/AssignToLoadBalancerRuleCmd.java +++ b/api/src/com/cloud/api/commands/AssignToLoadBalancerRuleCmd.java @@ -29,6 +29,7 @@ import com.cloud.api.Parameter; import com.cloud.api.ServerApiException; import com.cloud.api.response.SuccessResponse; import com.cloud.event.EventTypes; +import com.cloud.exception.InvalidParameterValueException; import com.cloud.network.rules.LoadBalancer; import com.cloud.user.Account; import com.cloud.user.UserContext; @@ -109,6 +110,10 @@ public class AssignToLoadBalancerRuleCmd extends BaseAsyncCmd { @Override public Long getSyncObjId() { - return _lbService.findById(id).getNetworkId(); + LoadBalancer lb = _lbService.findById(id); + if(lb == null){ + throw new InvalidParameterValueException("Unable to find load balancer rule: " + id); + } + return lb.getNetworkId(); } } diff --git a/api/src/com/cloud/api/commands/DeleteLoadBalancerRuleCmd.java b/api/src/com/cloud/api/commands/DeleteLoadBalancerRuleCmd.java index c08c2bc6538..746d388e946 100644 --- a/api/src/com/cloud/api/commands/DeleteLoadBalancerRuleCmd.java +++ b/api/src/com/cloud/api/commands/DeleteLoadBalancerRuleCmd.java @@ -27,6 +27,7 @@ import com.cloud.api.Parameter; import com.cloud.api.ServerApiException; import com.cloud.api.response.SuccessResponse; import com.cloud.event.EventTypes; +import com.cloud.exception.InvalidParameterValueException; import com.cloud.network.rules.LoadBalancer; import com.cloud.user.Account; import com.cloud.user.UserContext; @@ -99,6 +100,10 @@ public class DeleteLoadBalancerRuleCmd extends BaseAsyncCmd { @Override public Long getSyncObjId() { - return _lbService.findById(id).getNetworkId(); + LoadBalancer lb = _lbService.findById(id); + if(lb == null){ + throw new InvalidParameterValueException("Unable to find load balancer rule: " + id); + } + return lb.getNetworkId(); } } diff --git a/api/src/com/cloud/api/commands/RemoveFromLoadBalancerRuleCmd.java b/api/src/com/cloud/api/commands/RemoveFromLoadBalancerRuleCmd.java index 398d39c54a1..1ad8f018c6a 100644 --- a/api/src/com/cloud/api/commands/RemoveFromLoadBalancerRuleCmd.java +++ b/api/src/com/cloud/api/commands/RemoveFromLoadBalancerRuleCmd.java @@ -29,6 +29,7 @@ import com.cloud.api.Parameter; import com.cloud.api.ServerApiException; import com.cloud.api.response.SuccessResponse; import com.cloud.event.EventTypes; +import com.cloud.exception.InvalidParameterValueException; import com.cloud.network.rules.LoadBalancer; import com.cloud.user.Account; import com.cloud.user.UserContext; @@ -109,6 +110,10 @@ public class RemoveFromLoadBalancerRuleCmd extends BaseAsyncCmd { @Override public Long getSyncObjId() { - return _lbService.findById(id).getNetworkId(); + LoadBalancer lb = _lbService.findById(id); + if(lb == null){ + throw new InvalidParameterValueException("Unable to find load balancer rule: " + id); + } + return lb.getNetworkId(); } }