From 27395dd344a15d145deb2b265f49e768f0f08271 Mon Sep 17 00:00:00 2001 From: Wei Zhou Date: Fri, 20 Oct 2023 11:11:39 +0200 Subject: [PATCH 1/2] Advanced SG: allow create/update physical networks with vlan range --- .../java/com/cloud/network/NetworkServiceImpl.java | 14 -------------- .../main/java/com/cloud/vm/UserVmManagerImpl.java | 4 ++-- 2 files changed, 2 insertions(+), 16 deletions(-) diff --git a/server/src/main/java/com/cloud/network/NetworkServiceImpl.java b/server/src/main/java/com/cloud/network/NetworkServiceImpl.java index 896292d6b7d4..37f508973c49 100644 --- a/server/src/main/java/com/cloud/network/NetworkServiceImpl.java +++ b/server/src/main/java/com/cloud/network/NetworkServiceImpl.java @@ -3816,14 +3816,6 @@ public PhysicalNetwork createPhysicalNetwork(final Long zoneId, final String vne throw new InvalidParameterException("Only one isolationMethod can be specified for a physical network at this time"); } - if (vnetRange != null) { - // Verify zone type - if (zoneType == NetworkType.Basic || (zoneType == NetworkType.Advanced && zone.isSecurityGroupEnabled())) { - throw new InvalidParameterValueException( - "Can't add vnet range to the physical network in the zone that supports " + zoneType + " network, Security Group enabled: " + zone.isSecurityGroupEnabled()); - } - } - BroadcastDomainRange broadcastDomainRange = null; if (broadcastDomainRangeStr != null && !broadcastDomainRangeStr.isEmpty()) { try { @@ -3943,12 +3935,6 @@ public PhysicalNetwork updatePhysicalNetwork(Long id, String networkSpeed, List< if (zone == null) { throwInvalidIdException("Zone with id=" + network.getDataCenterId() + " doesn't exist in the system", String.valueOf(network.getDataCenterId()), "dataCenterId"); } - if (newVnetRange != null) { - if (zone.getNetworkType() == NetworkType.Basic || (zone.getNetworkType() == NetworkType.Advanced && zone.isSecurityGroupEnabled())) { - throw new InvalidParameterValueException( - "Can't add vnet range to the physical network in the zone that supports " + zone.getNetworkType() + " network, Security Group enabled: " + zone.isSecurityGroupEnabled()); - } - } if (tags != null && tags.size() > 1) { throw new InvalidParameterException("Unable to support more than one tag on network yet"); diff --git a/server/src/main/java/com/cloud/vm/UserVmManagerImpl.java b/server/src/main/java/com/cloud/vm/UserVmManagerImpl.java index c9085b385f5f..22aa6062ffe4 100644 --- a/server/src/main/java/com/cloud/vm/UserVmManagerImpl.java +++ b/server/src/main/java/com/cloud/vm/UserVmManagerImpl.java @@ -3630,8 +3630,8 @@ public UserVm createAdvancedSecurityGroupVirtualMachine(DataCenter zone, Service isSecurityGroupEnabledNetworkUsed = true; } - if (!(network.getTrafficType() == TrafficType.Guest && network.getGuestType() == Network.GuestType.Shared)) { - throw new InvalidParameterValueException("Can specify only Shared Guest networks when" + " deploy vm in Advance Security Group enabled zone"); + if (network.getTrafficType() != TrafficType.Guest || !Arrays.asList(GuestType.Shared, GuestType.L2).contains(network.getGuestType())) { + throw new InvalidParameterValueException("Can specify only Shared or L2 Guest networks when deploy vm in Advance Security Group enabled zone"); } _accountMgr.checkAccess(owner, AccessType.UseEntry, false, network); From c69638dabecda757c8ae2264bbaf2dbbce93271e Mon Sep 17 00:00:00 2001 From: Wei Zhou Date: Fri, 27 Oct 2023 13:14:22 +0200 Subject: [PATCH 2/2] PR8122: disable create/update vnet range in Basic zone --- .../main/java/com/cloud/network/NetworkServiceImpl.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/server/src/main/java/com/cloud/network/NetworkServiceImpl.java b/server/src/main/java/com/cloud/network/NetworkServiceImpl.java index 37f508973c49..c46ab8c7a95c 100644 --- a/server/src/main/java/com/cloud/network/NetworkServiceImpl.java +++ b/server/src/main/java/com/cloud/network/NetworkServiceImpl.java @@ -3816,6 +3816,10 @@ public PhysicalNetwork createPhysicalNetwork(final Long zoneId, final String vne throw new InvalidParameterException("Only one isolationMethod can be specified for a physical network at this time"); } + if (vnetRange != null && zoneType == NetworkType.Basic) { + throw new InvalidParameterValueException("Can't add vnet range to the physical network in the Basic zone"); + } + BroadcastDomainRange broadcastDomainRange = null; if (broadcastDomainRangeStr != null && !broadcastDomainRangeStr.isEmpty()) { try { @@ -3936,6 +3940,10 @@ public PhysicalNetwork updatePhysicalNetwork(Long id, String networkSpeed, List< throwInvalidIdException("Zone with id=" + network.getDataCenterId() + " doesn't exist in the system", String.valueOf(network.getDataCenterId()), "dataCenterId"); } + if (newVnetRange != null && zone.getNetworkType() == NetworkType.Basic) { + throw new InvalidParameterValueException("Can't add vnet range to the physical network in the Basic zone"); + } + if (tags != null && tags.size() > 1) { throw new InvalidParameterException("Unable to support more than one tag on network yet"); }