From 4f501def785eff1697a0c4931da965dc5a0f4c54 Mon Sep 17 00:00:00 2001 From: Rakesh Venkatesh Date: Tue, 21 Jan 2020 13:22:52 +0000 Subject: [PATCH] Bug fix - Deassociate IP address if enabling static nat fails Steps to reproduce the issue (1) create a vpc (vpc-001) and a vpc tier (vpc-001-001) (2) create a vm (vm-001-001) in vpc-001-001 (3) acquire a public ip (ip-1) and enable static nat to vm-001-001, operation succeeds. (4) acquire a public ip (ip-2) and enable static nat to vm-001-001, operation fails but the ip is still assigned to vpc tier vpc-001-001. Note down the ip address and the id of it. (5) create another vpc tier vpc-001-002, and vm (vm-001-002) in the tier (6) enabled ip-2 static nat to vm-001-002, operation should succeed --- .../src/main/java/com/cloud/network/rules/RulesManagerImpl.java | 1 + 1 file changed, 1 insertion(+) diff --git a/server/src/main/java/com/cloud/network/rules/RulesManagerImpl.java b/server/src/main/java/com/cloud/network/rules/RulesManagerImpl.java index 9dc7a3d3fba4..aea24a49ee5c 100644 --- a/server/src/main/java/com/cloud/network/rules/RulesManagerImpl.java +++ b/server/src/main/java/com/cloud/network/rules/RulesManagerImpl.java @@ -500,6 +500,7 @@ private boolean enableStaticNat(long ipId, long vmId, long networkId, boolean is s_logger.debug("The ip is not associated with the VPC network id=" + networkId + ", so assigning"); try { ipAddress = _ipAddrMgr.associateIPToGuestNetwork(ipId, networkId, false); + performedIpAssoc = true; } catch (Exception ex) { s_logger.warn("Failed to associate ip id=" + ipId + " to VPC network id=" + networkId + " as " + "a part of enable static nat"); return false;