CLOUDSTACK-5062: Deleting Load Balancing Rule fails when generating usage events are enabled
Signed-off-by: Daan Hoogland <d...@onecht.net>(cherry picked from commit 62a259ffa9b4daabcbe4f9afe9a78eadebbb7bff) Signed-off-by: Animesh Chaturvedi <anim...@apache.org> Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/91ec548f Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/91ec548f Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/91ec548f Branch: refs/heads/4.3 Commit: 91ec548fc0b08aa4ff8e6aa57fab013ab9892893 Parents: c0e70b5 Author: David Grizzanti <dgrizza...@gmail.com> Authored: Fri Jan 31 11:25:59 2014 +0100 Committer: Animesh Chaturvedi <anim...@apache.org> Committed: Sun Feb 2 16:10:35 2014 -0800 ---------------------------------------------------------------------- .../com/cloud/network/lb/LoadBalancingRulesManagerImpl.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/91ec548f/server/src/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java b/server/src/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java index bd58e39..b830910 100755 --- a/server/src/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java +++ b/server/src/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java @@ -1405,7 +1405,8 @@ public class LoadBalancingRulesManagerImpl<Type> extends ManagerBase implements if (generateUsageEvent) { // Generate usage event right after all rules were marked for revoke - UsageEventUtils.publishUsageEvent(EventTypes.EVENT_LOAD_BALANCER_DELETE, lb.getAccountId(), 0, lb.getId(), + Network network = _networkModel.getNetwork(lb.getNetworkId()); + UsageEventUtils.publishUsageEvent(EventTypes.EVENT_LOAD_BALANCER_DELETE, lb.getAccountId(), network.getDataCenterId(), lb.getId(), null, LoadBalancingRule.class.getName(), lb.getUuid()); } @@ -2052,6 +2053,11 @@ public class LoadBalancingRulesManagerImpl<Type> extends ManagerBase implements List<String> serviceStates = new ArrayList<String>(); List<LoadBalancerVMMapVO> vmLoadBalancerMappings = null; vmLoadBalancerMappings = _lb2VmMapDao.listByLoadBalancerId(loadBalancerId); + if(vmLoadBalancerMappings == null) { + String msg = "no VM Loadbalancer Mapping found"; + s_logger.error(msg); + throw new CloudRuntimeException(msg); + } Map<Long, String> vmServiceState = new HashMap<Long, String>(vmLoadBalancerMappings.size()); List<Long> appliedInstanceIdList = new ArrayList<Long>();