From 473cd6f09aad812d8fe61bcb8ad1d3571e5eb50b Mon Sep 17 00:00:00 2001 From: Kishan Kavala Date: Thu, 10 Apr 2014 14:41:52 +0530 Subject: [PATCH] CLOUDSTACK-6374: Remove entries from lb vm map when lb rule apply fails (cherry picked from commit 16ab5ce76c68c2a6c813daec9cd2c90d4c5eb8c6) Signed-off-by: Rohit Yadav Conflicts: server/src/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java --- .../lb/LoadBalancingRulesManagerImpl.java | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/server/src/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java b/server/src/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java index cdb38f0c435..6bc2da5a450 100755 --- a/server/src/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java +++ b/server/src/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java @@ -1061,7 +1061,10 @@ public class LoadBalancingRulesManagerImpl extends ManagerBase implements applyLoadBalancerConfig(loadBalancerId); success = true; } catch (ResourceUnavailableException e) { - if (isRollBackAllowedForProvider(loadBalancer)) { + s_logger.warn("Unable to apply the load balancer config because resource is unavaliable.", e); + success = false; + } finally { + if (!success) { final List vmInstanceIds = new ArrayList(); Transaction.execute(new TransactionCallbackNoReturn() { @Override @@ -1078,17 +1081,14 @@ public class LoadBalancingRulesManagerImpl extends ManagerBase implements } loadBalancer.setState(backupState); _lbDao.persist(loadBalancer); - } - s_logger.warn("Unable to apply the load balancer config because resource is unavaliable.", e); - } - - if (!success) { - CloudRuntimeException ex = new CloudRuntimeException("Failed to add specified loadbalancerruleid for vms " + CloudRuntimeException ex = new CloudRuntimeException("Failed to add specified loadbalancerruleid for vms " + instanceIds); - ex.addProxyObject(loadBalancer.getUuid(), "loadBalancerId"); - // TBD: Also pack in the instanceIds in the exception using the - // right VO object or table name. - throw ex; + ex.addProxyObject(loadBalancer.getUuid(), "loadBalancerId"); + // TBD: Also pack in the instanceIds in the exception using the + // right VO object or table name. + throw ex; + } + } return success;