diff --git a/server/src/com/cloud/network/vpc/NetworkACLManagerImpl.java b/server/src/com/cloud/network/vpc/NetworkACLManagerImpl.java index 1ea5dd02d4f..7bb8b13272c 100644 --- a/server/src/com/cloud/network/vpc/NetworkACLManagerImpl.java +++ b/server/src/com/cloud/network/vpc/NetworkACLManagerImpl.java @@ -81,6 +81,8 @@ public class NetworkACLManagerImpl extends ManagerBase implements NetworkACLMana ConfigurationManager _configMgr; @Inject EntityManager _entityMgr; + @Inject + VpcService _vpcSvc; @Override public NetworkACL createNetworkACL(String name, String description, long vpcId) { @@ -105,7 +107,8 @@ public class NetworkACLManagerImpl extends ManagerBase implements NetworkACLMana List vpcGateways = _vpcGatewayDao.listByAclIdAndType(aclId, VpcGateway.Type.Private); for (VpcGatewayVO vpcGateway : vpcGateways) { - PrivateGateway privateGateway = _entityMgr.findById(PrivateGateway.class, vpcGateway.getId()); + PrivateGateway privateGateway = _vpcSvc.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); diff --git a/server/src/com/cloud/network/vpc/NetworkACLServiceImpl.java b/server/src/com/cloud/network/vpc/NetworkACLServiceImpl.java index b925c8bf703..e91af5784e2 100644 --- a/server/src/com/cloud/network/vpc/NetworkACLServiceImpl.java +++ b/server/src/com/cloud/network/vpc/NetworkACLServiceImpl.java @@ -93,6 +93,9 @@ public class NetworkACLServiceImpl extends ManagerBase implements NetworkACLServ @Inject VpcDao _vpcDao; + @Inject + VpcService _vpcSvc; + @Override public NetworkACL createNetworkACL(String name, String description, long vpcId) { Account caller = CallContext.current().getCallingAccount(); @@ -239,8 +242,7 @@ public class NetworkACLServiceImpl extends ManagerBase implements NetworkACLServ throw new InvalidParameterValueException("private gateway: "+privateGatewayId+" and ACL: "+aclId+" do not belong to the same VPC"); } } - - PrivateGateway privateGateway = _entityMgr.findById(PrivateGateway.class, privateGatewayId); + PrivateGateway privateGateway = _vpcSvc.getVpcPrivateGateway(gateway.getId()); _accountMgr.checkAccess(caller, null, true, privateGateway); return _networkAclMgr.replaceNetworkACLForPrivateGw(acl, privateGateway);