diff --git a/server/src/main/java/com/cloud/network/NetworkServiceImpl.java b/server/src/main/java/com/cloud/network/NetworkServiceImpl.java index 86c1b558f3a..6428e064bb1 100644 --- a/server/src/main/java/com/cloud/network/NetworkServiceImpl.java +++ b/server/src/main/java/com/cloud/network/NetworkServiceImpl.java @@ -1075,7 +1075,11 @@ public class NetworkServiceImpl extends ManagerBase implements NetworkService, C if (networkId != null) { guestNetwork = getNetwork(networkId); } - if (ipVO.isSourceNat() && guestNetwork != null && guestNetwork.getState() != Network.State.Allocated) { + Vpc vpc = null; + if (ipVO.getVpcId() != null) { + vpc = _vpcMgr.getActiveVpc(ipVO.getVpcId()); + } + if (ipVO.isSourceNat() && ((guestNetwork != null && guestNetwork.getState() != Network.State.Allocated) || vpc != null)) { throw new IllegalArgumentException("ip address is used for source nat purposes and can not be disassociated."); }