From 1f02664997dcbb694c276479ef6ed84dab0d878b Mon Sep 17 00:00:00 2001 From: asarfaty Date: Tue, 7 Jul 2020 10:08:07 +0200 Subject: [PATCH] NSX|P: Fix GW validation for updated subnet Change-Id: I734e356f905171f2a26fa604cf273dbfdbf4f224 --- vmware_nsx/plugins/nsx_p/plugin.py | 6 ++++-- vmware_nsx/tests/unit/nsx_p/test_plugin.py | 3 +++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/vmware_nsx/plugins/nsx_p/plugin.py b/vmware_nsx/plugins/nsx_p/plugin.py index 2c301c97bf..6da1ff5968 100644 --- a/vmware_nsx/plugins/nsx_p/plugin.py +++ b/vmware_nsx/plugins/nsx_p/plugin.py @@ -1362,10 +1362,12 @@ class NsxPolicyPlugin(nsx_plugin_common.NsxPluginV3Base): def _validate_subnet_gw_ip(self, subnet, orig_subnet=None): # Make sure the gw ip is legal and belongs to the subnet raw_gw_ip = subnet.get('gateway_ip') - if orig_subnet and raw_gw_ip == const.ATTR_NOT_SPECIFIED: + if (orig_subnet and + (not raw_gw_ip or raw_gw_ip == const.ATTR_NOT_SPECIFIED)): raw_gw_ip = orig_subnet.get('gateway_ip') raw_cidr = subnet.get('cidr') - if orig_subnet and raw_cidr == const.ATTR_NOT_SPECIFIED: + if (orig_subnet and + (not raw_cidr or raw_cidr == const.ATTR_NOT_SPECIFIED)): raw_cidr = orig_subnet.get('cidr') if (not raw_gw_ip or raw_gw_ip == const.ATTR_NOT_SPECIFIED or not raw_cidr or raw_cidr == const.ATTR_NOT_SPECIFIED): diff --git a/vmware_nsx/tests/unit/nsx_p/test_plugin.py b/vmware_nsx/tests/unit/nsx_p/test_plugin.py index bb4c9881f0..a72805e5e5 100644 --- a/vmware_nsx/tests/unit/nsx_p/test_plugin.py +++ b/vmware_nsx/tests/unit/nsx_p/test_plugin.py @@ -1149,6 +1149,9 @@ class NsxPTestSubnets(common_v3.NsxV3TestSubnets, def test_create_subnet_gw_outside_cidr_returns_201(self): self.skipTest("NSX subnet GW validation") + def test_update_subnet_gw_outside_cidr_returns_200(self): + self.skipTest("NSX subnet GW validation") + def test_create_subnet_ipv6_gw_validation(self): # Illegal GW as first ip in range gateway_ip = 'fe80::0'