diff --git a/engine/schema/src/main/java/com/cloud/network/dao/NetworkVO.java b/engine/schema/src/main/java/com/cloud/network/dao/NetworkVO.java index 02abaacd854e..087e0c41a9a0 100644 --- a/engine/schema/src/main/java/com/cloud/network/dao/NetworkVO.java +++ b/engine/schema/src/main/java/com/cloud/network/dao/NetworkVO.java @@ -600,7 +600,10 @@ public boolean equals(Object obj) { return true; } - return NetUtils.isNetworkAWithinNetworkB(cidr, that.cidr); + final String normalizedCidr = com.cloud.utils.StringUtils.getFirstValueFromCommaSeparatedString(cidr); + final String normalizedThatCidr = com.cloud.utils.StringUtils.getFirstValueFromCommaSeparatedString(that.cidr); + + return NetUtils.isNetworkAWithinNetworkB(normalizedCidr, normalizedThatCidr); } @Override diff --git a/server/src/main/java/com/cloud/configuration/ConfigurationManagerImpl.java b/server/src/main/java/com/cloud/configuration/ConfigurationManagerImpl.java index 7dbf3e1d2a2a..c6f287ca4410 100644 --- a/server/src/main/java/com/cloud/configuration/ConfigurationManagerImpl.java +++ b/server/src/main/java/com/cloud/configuration/ConfigurationManagerImpl.java @@ -5425,7 +5425,7 @@ public Vlan createVlanAndPublicIpRange(final long zoneId, final long networkId, final VlanVO vlan = commitVlanAndIpRange(zoneId, networkId, physicalNetworkId, podId, startIP, endIP, vlanGateway, vlanNetmask, vlanId, domain, vlanOwner, vlanIp6Gateway, vlanIp6Cidr, ipv4, zone, vlanType, ipv6Range, ipRange, forSystemVms, provider); - if (vlan != null) { + if (vlan != null && network.getTrafficType() != TrafficType.Public) { if (ipv4) { addCidrAndGatewayForIpv4(networkId, vlanGateway, vlanNetmask); } else if (ipv6) { @@ -6504,11 +6504,14 @@ private boolean deleteAndPublishVlanAndPublicIpRange(final long userId, final lo final boolean ipv4 = deletedVlan.getVlanGateway() != null; final boolean ipv6 = deletedVlan.getIp6Gateway() != null; final long networkId = deletedVlan.getNetworkId(); + final NetworkVO networkVO = _networkDao.findById(networkId); - if (ipv4) { - removeCidrAndGatewayForIpv4(networkId, deletedVlan); - } else if (ipv6) { - removeCidrAndGatewayForIpv6(networkId, deletedVlan); + if (networkVO != null && networkVO.getTrafficType() != TrafficType.Public) { + if (ipv4) { + removeCidrAndGatewayForIpv4(networkId, deletedVlan); + } else if (ipv6) { + removeCidrAndGatewayForIpv6(networkId, deletedVlan); + } } messageBus.publish(_name, MESSAGE_DELETE_VLAN_IP_RANGE_EVENT, PublishScope.LOCAL, deletedVlan);