mirror of https://github.com/apache/cloudstack.git
bug 11555: Fixed NPE happening during LB rule cleanup in case when createLB fails
status 11555: resolved fixed Reviewed-by: frank@cloud.com
This commit is contained in:
parent
72cbf5a1f2
commit
2ee6986e24
|
|
@ -457,13 +457,15 @@ public class LoadBalancingRulesManagerImpl implements LoadBalancingRulesManager,
|
|||
}
|
||||
throw new CloudRuntimeException("Unable to add rule for ip address id=" + newRule.getSourceIpAddressId(), e);
|
||||
} finally {
|
||||
if (!success) {
|
||||
if (!success && newRule != null) {
|
||||
|
||||
txn.start();
|
||||
_firewallDao.remove(_firewallDao.findByRelatedId(newRule.getId()).getId());
|
||||
|
||||
_firewallMgr.revokeRelatedFirewallRule(newRule.getId(), false);
|
||||
_lbDao.remove(newRule.getId());
|
||||
|
||||
txn.commit();
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -222,12 +222,16 @@ public class RulesManagerImpl implements RulesManager, RulesService, Manager {
|
|||
return newRule;
|
||||
} catch (Exception e) {
|
||||
|
||||
txn.start();
|
||||
//no need to apply the rule as it wasn't programmed on the backend yet
|
||||
_firewallMgr.revokeRelatedFirewallRule(newRule.getId(), false);
|
||||
_forwardingDao.remove(newRule.getId());
|
||||
|
||||
txn.commit();
|
||||
|
||||
if (newRule != null) {
|
||||
|
||||
txn.start();
|
||||
//no need to apply the rule as it wasn't programmed on the backend yet
|
||||
_firewallMgr.revokeRelatedFirewallRule(newRule.getId(), false);
|
||||
_forwardingDao.remove(newRule.getId());
|
||||
|
||||
txn.commit();
|
||||
}
|
||||
|
||||
if (e instanceof NetworkRuleConflictException) {
|
||||
throw (NetworkRuleConflictException) e;
|
||||
|
|
@ -288,12 +292,14 @@ public class RulesManagerImpl implements RulesManager, RulesService, Manager {
|
|||
return staticNatRule;
|
||||
} catch (Exception e) {
|
||||
|
||||
txn.start();
|
||||
//no need to apply the rule as it wasn't programmed on the backend yet
|
||||
_firewallMgr.revokeRelatedFirewallRule(newRule.getId(), false);
|
||||
_forwardingDao.remove(newRule.getId());
|
||||
txn.commit();
|
||||
|
||||
if (newRule != null) {
|
||||
txn.start();
|
||||
//no need to apply the rule as it wasn't programmed on the backend yet
|
||||
_firewallMgr.revokeRelatedFirewallRule(newRule.getId(), false);
|
||||
_forwardingDao.remove(newRule.getId());
|
||||
txn.commit();
|
||||
}
|
||||
|
||||
if (e instanceof NetworkRuleConflictException) {
|
||||
throw (NetworkRuleConflictException) e;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue