From cd37b135a0ae9ade6e47e2e68794e94eceb20ba0 Mon Sep 17 00:00:00 2001 From: Abhishek Kumar Date: Wed, 24 Aug 2022 13:23:01 +0530 Subject: [PATCH] vpc: prevent sourcenat ip disassociation for an active vpc (#6664) Fixes #6663 Source NAT IP should not be disassociated from an active vpc --- .../src/main/java/com/cloud/network/NetworkServiceImpl.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/server/src/main/java/com/cloud/network/NetworkServiceImpl.java b/server/src/main/java/com/cloud/network/NetworkServiceImpl.java index 39752e64a6b..a3cb967c8a5 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."); }