Updated Branches: refs/heads/master-6-17-stable 7ba765908 -> 8eeefad97
CLOUDSTACK-3199 apply acl item to private gateway when added to acl list Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/8eeefad9 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/8eeefad9 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/8eeefad9 Branch: refs/heads/master-6-17-stable Commit: 8eeefad97f6e7c71eb3f9b70211129c11221364e Parents: 7ba7659 Author: Jayapal <[email protected]> Authored: Wed Jun 26 12:49:39 2013 +0530 Committer: Jayapal <[email protected]> Committed: Wed Jun 26 12:49:54 2013 +0530 ---------------------------------------------------------------------- .../cloud/network/vpc/NetworkACLManagerImpl.java | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/8eeefad9/server/src/com/cloud/network/vpc/NetworkACLManagerImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/network/vpc/NetworkACLManagerImpl.java b/server/src/com/cloud/network/vpc/NetworkACLManagerImpl.java index 4881b73..eb18eb7 100644 --- a/server/src/com/cloud/network/vpc/NetworkACLManagerImpl.java +++ b/server/src/com/cloud/network/vpc/NetworkACLManagerImpl.java @@ -88,6 +88,8 @@ public class NetworkACLManagerImpl extends ManagerBase implements NetworkACLMana @Override public boolean applyNetworkACL(long aclId) throws ResourceUnavailableException { boolean handled = true; + boolean aclApplyStatus = true; + List<NetworkACLItemVO> rules = _networkACLItemDao.listByACL(aclId); //Find all networks using this ACL and apply the ACL List<NetworkVO> networks = _networkDao.listByAclId(aclId); @@ -97,7 +99,18 @@ public class NetworkACLManagerImpl extends ManagerBase implements NetworkACLMana break; } } - if(handled){ + + List<VpcGatewayVO> vpcGateways = _vpcGatewayDao.listByAclIdAndType(aclId, VpcGateway.Type.Private); + for (VpcGatewayVO vpcGateway : vpcGateways) { + PrivateGateway privateGateway = _vpcMgr.getVpcPrivateGateway(vpcGateway.getId()); + if (!applyACLToPrivateGw(privateGateway)) { + aclApplyStatus = false; + s_logger.debug("failed to apply network acl item on private gateway " + privateGateway.getId() + "acl id " + aclId); + break; + } + } + + if(handled && aclApplyStatus){ for (NetworkACLItem rule : rules) { if (rule.getState() == NetworkACLItem.State.Revoke) { removeRule(rule); @@ -108,7 +121,7 @@ public class NetworkACLManagerImpl extends ManagerBase implements NetworkACLMana } } } - return handled; + return handled && aclApplyStatus; } @Override
