From 524fff41aa8dc32e25ac62c4e52232ffa58e1c93 Mon Sep 17 00:00:00 2001 From: Pearl Dsilva Date: Wed, 8 Jan 2025 13:01:41 -0500 Subject: [PATCH 1/4] Add checks if IP range is passed if Shared Network --- .../java/com/cloud/network/NetworkServiceImpl.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/server/src/main/java/com/cloud/network/NetworkServiceImpl.java b/server/src/main/java/com/cloud/network/NetworkServiceImpl.java index d0711a9fcf90..8dd984c0032e 100644 --- a/server/src/main/java/com/cloud/network/NetworkServiceImpl.java +++ b/server/src/main/java/com/cloud/network/NetworkServiceImpl.java @@ -1634,6 +1634,18 @@ public Network createGuestNetwork(CreateNetworkCmd cmd) throws InsufficientCapac throwInvalidIdException("Network offering with specified id doesn't support adding multiple ip ranges", ntwkOff.getUuid(), NETWORK_OFFERING_ID); } + if (GuestType.Shared == ntwkOff.getGuestType()) { + if (!ntwkOff.isSpecifyIpRanges()) { + throw new CloudRuntimeException("Specify IP Ranged should be true for Shared Networks"); + } + if (ipv4 && Objects.isNull(startIP)) { + throw new CloudRuntimeException("IPv4 address range needs to be provided"); + } + if (ipv6 && Objects.isNull(startIPv6)) { + throw new CloudRuntimeException("IPv6 address range needs to be provided"); + } + } + Pair interfaceMTUs = validateMtuConfig(publicMtu, privateMtu, zone.getId()); mtuCheckForVpcNetwork(vpcId, interfaceMTUs, publicMtu, privateMtu); From 13a5ad8d1b4365253285f18447e7d4755f008df8 Mon Sep 17 00:00:00 2001 From: Pearl Dsilva Date: Mon, 27 Jan 2025 08:52:07 -0500 Subject: [PATCH 2/4] fix missing import --- server/src/main/java/com/cloud/network/NetworkServiceImpl.java | 1 + 1 file changed, 1 insertion(+) diff --git a/server/src/main/java/com/cloud/network/NetworkServiceImpl.java b/server/src/main/java/com/cloud/network/NetworkServiceImpl.java index 8dd984c0032e..d2a3b617f2c3 100644 --- a/server/src/main/java/com/cloud/network/NetworkServiceImpl.java +++ b/server/src/main/java/com/cloud/network/NetworkServiceImpl.java @@ -34,6 +34,7 @@ import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.Set; import java.util.UUID; From 9ea0eb0f9d12f5f0455767002c4afb2c6bfbf806 Mon Sep 17 00:00:00 2001 From: Pearl Dsilva Date: Mon, 27 Jan 2025 08:53:27 -0500 Subject: [PATCH 3/4] fix log statement --- server/src/main/java/com/cloud/network/NetworkServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 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 d2a3b617f2c3..7ea52457bef3 100644 --- a/server/src/main/java/com/cloud/network/NetworkServiceImpl.java +++ b/server/src/main/java/com/cloud/network/NetworkServiceImpl.java @@ -1637,7 +1637,7 @@ public Network createGuestNetwork(CreateNetworkCmd cmd) throws InsufficientCapac if (GuestType.Shared == ntwkOff.getGuestType()) { if (!ntwkOff.isSpecifyIpRanges()) { - throw new CloudRuntimeException("Specify IP Ranged should be true for Shared Networks"); + throw new CloudRuntimeException("The 'specifyipranges' parameter should be true for Shared Networks"); } if (ipv4 && Objects.isNull(startIP)) { throw new CloudRuntimeException("IPv4 address range needs to be provided"); From 665283a20975ba0b105ae24cfc025bb108a8161d Mon Sep 17 00:00:00 2001 From: Pearl Dsilva Date: Tue, 28 Jan 2025 08:43:49 -0500 Subject: [PATCH 4/4] Check if associated networkId is passed when specify vlan is false --- .../java/com/cloud/network/NetworkServiceImpl.java | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/server/src/main/java/com/cloud/network/NetworkServiceImpl.java b/server/src/main/java/com/cloud/network/NetworkServiceImpl.java index 7ea52457bef3..d4279c291129 100644 --- a/server/src/main/java/com/cloud/network/NetworkServiceImpl.java +++ b/server/src/main/java/com/cloud/network/NetworkServiceImpl.java @@ -1635,16 +1635,8 @@ public Network createGuestNetwork(CreateNetworkCmd cmd) throws InsufficientCapac throwInvalidIdException("Network offering with specified id doesn't support adding multiple ip ranges", ntwkOff.getUuid(), NETWORK_OFFERING_ID); } - if (GuestType.Shared == ntwkOff.getGuestType()) { - if (!ntwkOff.isSpecifyIpRanges()) { - throw new CloudRuntimeException("The 'specifyipranges' parameter should be true for Shared Networks"); - } - if (ipv4 && Objects.isNull(startIP)) { - throw new CloudRuntimeException("IPv4 address range needs to be provided"); - } - if (ipv6 && Objects.isNull(startIPv6)) { - throw new CloudRuntimeException("IPv6 address range needs to be provided"); - } + if (GuestType.Shared == ntwkOff.getGuestType() && !ntwkOff.isSpecifyVlan() && Objects.isNull(associatedNetworkId)) { + throw new CloudRuntimeException("Associated network must be provided when creating Shared networks when specifyVlan is false"); } Pair interfaceMTUs = validateMtuConfig(publicMtu, privateMtu, zone.getId());