You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by sh...@apache.org on 2022/08/24 07:53:07 UTC
[cloudstack] branch 4.17 updated: vpc: prevent sourcenat ip disassociation for an active vpc (#6664)
This is an automated email from the ASF dual-hosted git repository.
shwstppr pushed a commit to branch 4.17
in repository https://gitbox.apache.org/repos/asf/cloudstack.git
The following commit(s) were added to refs/heads/4.17 by this push:
new cd37b135a0a vpc: prevent sourcenat ip disassociation for an active vpc (#6664)
cd37b135a0a is described below
commit cd37b135a0ae9ade6e47e2e68794e94eceb20ba0
Author: Abhishek Kumar <ab...@gmail.com>
AuthorDate: Wed Aug 24 13:23:01 2022 +0530
vpc: prevent sourcenat ip disassociation for an active vpc (#6664)
Fixes #6663
Source NAT IP should not be disassociated from an active vpc
---
server/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.");
}