From 33e2a4dd6635798f98d4726406ed1af4c00a4cc5 Mon Sep 17 00:00:00 2001 From: Wei Zhou Date: Mon, 18 Dec 2023 07:38:51 +0100 Subject: [PATCH] VPC: update default network offering for vpc tier to conserve_mode=1 (#8309) This PR updates the conserve mode of default vpc tier offering to conserve_mode=1 so we can create both port forwarding and load balancing rules on a public IP in vpc tiers. This fixes #8313 --- .../main/resources/META-INF/db/schema-41810to41900.sql | 2 ++ .../java/com/cloud/network/vpc/VpcManagerImpl.java | 4 ++-- test/integration/component/test_vpc_network.py | 10 +++++----- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/engine/schema/src/main/resources/META-INF/db/schema-41810to41900.sql b/engine/schema/src/main/resources/META-INF/db/schema-41810to41900.sql index 308d48a311c..15307353c3f 100644 --- a/engine/schema/src/main/resources/META-INF/db/schema-41810to41900.sql +++ b/engine/schema/src/main/resources/META-INF/db/schema-41810to41900.sql @@ -21,6 +21,8 @@ ALTER TABLE `cloud`.`mshost` MODIFY COLUMN `state` varchar(25); +UPDATE `cloud`.`network_offerings` SET conserve_mode=1 WHERE name='DefaultIsolatedNetworkOfferingForVpcNetworks'; + -- Invalidate existing console_session records UPDATE `cloud`.`console_session` SET removed=now(); -- Modify acquired column in console_session to datetime type diff --git a/server/src/main/java/com/cloud/network/vpc/VpcManagerImpl.java b/server/src/main/java/com/cloud/network/vpc/VpcManagerImpl.java index 1f99d164625..341a3b81b42 100644 --- a/server/src/main/java/com/cloud/network/vpc/VpcManagerImpl.java +++ b/server/src/main/java/com/cloud/network/vpc/VpcManagerImpl.java @@ -1809,9 +1809,9 @@ public class VpcManagerImpl extends ManagerBase implements VpcManager, VpcProvis * ("No redunant router support when network belnogs to VPC"); } */ - // 4) Conserve mode should be off + // 4) Conserve mode should be off in older versions if (guestNtwkOff.isConserveMode()) { - throw new InvalidParameterValueException("Only networks with conserve mode Off can belong to VPC"); + s_logger.info("Creating a network with conserve mode in VPC"); } // 5) If Netscaler is LB provider make sure it is in dedicated mode diff --git a/test/integration/component/test_vpc_network.py b/test/integration/component/test_vpc_network.py index 9a313e23094..db436bbd398 100644 --- a/test/integration/component/test_vpc_network.py +++ b/test/integration/component/test_vpc_network.py @@ -1001,23 +1001,23 @@ class TestVPCNetwork(cloudstackTestCase): # 1. Create a network offering with guest type=Isolated that has all # supported Services(Vpn,dhcpdns,UserData, SourceNat,Static NAT,LB # and PF,LB,NetworkAcl ) provided by VPCVR and conserve mode is ON - # 2. Create offering fails since Conserve mode ON isn't allowed within - # VPC + # 2. Create offering should succeed since Conserve mode ON is allowed within + # VPC since https://github.com/apache/cloudstack/pull/8309 # 3. Repeat test for offering which has Netscaler as external LB # provider """ self.debug("Creating network offering with conserve mode = ON") - with self.assertRaises(Exception): + try: nw = NetworkOffering.create( self.apiclient, self.services[value], conservemode=True ) self.cleanup.append(nw) - self.debug( - "Network creation failed as VPC support nw with conserve mode OFF") + except Exception as e: + self.warn("Network creation failed in VPC with conserve mode ON") return