mirror of https://github.com/apache/cloudstack.git
Revert "bug 8327: successive removeFromLoadBalancerRule(s) renders LB rule dysfunctional"
This reverts commit 368289aa12.
This commit is contained in:
parent
3cc5ce8642
commit
ee1c53ecf3
|
|
@ -113,7 +113,6 @@ public class LoadBalancingRulesManagerImpl implements LoadBalancingRulesManager,
|
|||
public boolean assignToLoadBalancer(long loadBalancerId, List<Long> instanceIds) {
|
||||
UserContext ctx = UserContext.current();
|
||||
Account caller = ctx.getCaller();
|
||||
LoadBalancerVO loadBalancerLock = null;
|
||||
|
||||
LoadBalancerVO loadBalancer = _lbDao.findById(loadBalancerId);
|
||||
if (loadBalancer == null) {
|
||||
|
|
@ -164,33 +163,22 @@ public class LoadBalancingRulesManagerImpl implements LoadBalancingRulesManager,
|
|||
vmsToAdd.add(vm);
|
||||
}
|
||||
|
||||
Transaction txn = Transaction.currentTxn();
|
||||
txn.start();
|
||||
|
||||
for (UserVm vm : vmsToAdd) {
|
||||
LoadBalancerVMMapVO map = new LoadBalancerVMMapVO(loadBalancer.getId(), vm.getId(), false);
|
||||
map = _lb2VmMapDao.persist(map);
|
||||
}
|
||||
txn.commit();
|
||||
|
||||
try {
|
||||
loadBalancerLock = _lbDao.acquireInLockTable(loadBalancerId);
|
||||
if(loadBalancerLock == null)
|
||||
{
|
||||
s_logger.warn("Failed to acquire lock to assign VM to load balance rule id " + loadBalancerId);
|
||||
return false;
|
||||
}
|
||||
|
||||
Transaction txn = Transaction.currentTxn();
|
||||
txn.start();
|
||||
|
||||
for (UserVm vm : vmsToAdd) {
|
||||
LoadBalancerVMMapVO map = new LoadBalancerVMMapVO(loadBalancer.getId(), vm.getId(), false);
|
||||
map = _lb2VmMapDao.persist(map);
|
||||
}
|
||||
txn.commit();
|
||||
|
||||
loadBalancer.setState(FirewallRule.State.Add);
|
||||
_lbDao.persist(loadBalancer);
|
||||
applyLoadBalancerConfig(loadBalancerId);
|
||||
} catch (ResourceUnavailableException e) {
|
||||
s_logger.warn("Unable to apply the load balancer config because resource is unavaliable.", e);
|
||||
return false;
|
||||
} finally {
|
||||
if (loadBalancerLock != null) {
|
||||
_lbDao.releaseFromLockTable(loadBalancerId);
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
|
|
@ -200,7 +188,6 @@ public class LoadBalancingRulesManagerImpl implements LoadBalancingRulesManager,
|
|||
@Override @ActionEvent (eventType=EventTypes.EVENT_REMOVE_FROM_LOAD_BALANCER_RULE, eventDescription="removing from load balancer", async=true)
|
||||
public boolean removeFromLoadBalancer(long loadBalancerId, List<Long> instanceIds) {
|
||||
UserContext caller = UserContext.current();
|
||||
LoadBalancerVO loadBalancerLock = null;
|
||||
|
||||
LoadBalancerVO loadBalancer = _lbDao.findById(Long.valueOf(loadBalancerId));
|
||||
if (loadBalancer == null) {
|
||||
|
|
@ -208,15 +195,8 @@ public class LoadBalancingRulesManagerImpl implements LoadBalancingRulesManager,
|
|||
}
|
||||
|
||||
_accountMgr.checkAccess(caller.getCaller(), loadBalancer);
|
||||
|
||||
|
||||
try {
|
||||
loadBalancerLock = _lbDao.acquireInLockTable(loadBalancerId);
|
||||
if (loadBalancerLock == null)
|
||||
{
|
||||
s_logger.warn("Failed to acquire lock to delete load balance rule id " + loadBalancerId);
|
||||
return false;
|
||||
}
|
||||
|
||||
loadBalancer.setState(FirewallRule.State.Add);
|
||||
_lbDao.persist(loadBalancer);
|
||||
|
||||
|
|
@ -238,10 +218,6 @@ public class LoadBalancingRulesManagerImpl implements LoadBalancingRulesManager,
|
|||
} catch (ResourceUnavailableException e) {
|
||||
s_logger.warn("Unable to apply the load balancer config because resource is unavaliable.", e);
|
||||
return false;
|
||||
} finally {
|
||||
if (loadBalancerLock != null) {
|
||||
_lbDao.releaseFromLockTable(loadBalancerId);
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
|
|
@ -288,8 +264,7 @@ public class LoadBalancingRulesManagerImpl implements LoadBalancingRulesManager,
|
|||
@Override @ActionEvent (eventType=EventTypes.EVENT_LOAD_BALANCER_DELETE, eventDescription="deleting load balancer", async=true)
|
||||
public boolean deleteLoadBalancerRule(long loadBalancerId, boolean apply) {
|
||||
UserContext caller = UserContext.current();
|
||||
LoadBalancerVO loadBalancerLock = null;
|
||||
|
||||
|
||||
LoadBalancerVO lb = _lbDao.findById(loadBalancerId);
|
||||
if (lb == null) {
|
||||
throw new InvalidParameterException("Invalid load balancer value: " + loadBalancerId);
|
||||
|
|
@ -297,13 +272,6 @@ public class LoadBalancingRulesManagerImpl implements LoadBalancingRulesManager,
|
|||
|
||||
_accountMgr.checkAccess(caller.getCaller(), lb);
|
||||
|
||||
loadBalancerLock = _lbDao.acquireInLockTable(loadBalancerId);
|
||||
if(loadBalancerLock == null)
|
||||
{
|
||||
s_logger.warn("Failed to acquire lock to delete load balance rule id " + loadBalancerId);
|
||||
return false;
|
||||
}
|
||||
|
||||
lb.setState(FirewallRule.State.Revoke);
|
||||
_lbDao.persist(lb);
|
||||
|
||||
|
|
@ -322,14 +290,10 @@ public class LoadBalancingRulesManagerImpl implements LoadBalancingRulesManager,
|
|||
} catch (ResourceUnavailableException e) {
|
||||
s_logger.warn("Unable to apply the load balancer config because resource is unavaliable.", e);
|
||||
return false;
|
||||
} finally {
|
||||
if (loadBalancerLock != null)
|
||||
_lbDao.releaseFromLockTable(loadBalancerId);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
_rulesDao.remove(lb.getId());
|
||||
|
||||
UsageEventVO usageEvent = new UsageEventVO(EventTypes.EVENT_LOAD_BALANCER_DELETE, lb.getAccountId(), 0 , lb.getId(), null);
|
||||
_usageEventDao.persist(usageEvent);
|
||||
s_logger.debug("Load balancer with id " + lb.getId() + " is removed successfully");
|
||||
|
|
|
|||
Loading…
Reference in New Issue