Updated Branches: refs/heads/master 94254e3c2 -> 82958f0d5
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/82958f0d Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/82958f0d Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/82958f0d Branch: refs/heads/master Commit: 82958f0d58304e87d8ddf7613337737f21367b96 Parents: 94254e3 Author: Jayapal <[email protected]> Authored: Wed Jun 26 12:27:59 2013 +0530 Committer: Jayapal <[email protected]> Committed: Wed Jun 26 14:31:56 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/82958f0d/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
