You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ah...@apache.org on 2013/06/27 22:57:21 UTC
[19/50] [abbrv] git commit: updated refs/heads/vmsync to 3c2aa18
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/vmsync
Commit: 82958f0d58304e87d8ddf7613337737f21367b96
Parents: 94254e3
Author: Jayapal <ja...@apache.org>
Authored: Wed Jun 26 12:27:59 2013 +0530
Committer: Jayapal <ja...@apache.org>
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