From 9523d737ba9ce061131d6c9c2b36f31c23cb44bb Mon Sep 17 00:00:00 2001 From: Tao Zou Date: Tue, 26 Jul 2022 09:21:14 +0800 Subject: [PATCH] Remove FEATURE_ROUTER_FIREWALL support since 4.0.1 nat_pass property was introduced by feature ROUTER_FIREWALL, it has been deprecated since 4.0.1. Remove the property if nsxt version is greater than 4.0.1 Change-Id: Icba4ff4139fc8ac3502e2c633637582e075faa38 --- vmware_nsxlib/tests/unit/v3/test_utils.py | 8 ++++++++ vmware_nsxlib/v3/__init__.py | 6 ++++++ vmware_nsxlib/v3/nsx_constants.py | 1 + 3 files changed, 15 insertions(+) diff --git a/vmware_nsxlib/tests/unit/v3/test_utils.py b/vmware_nsxlib/tests/unit/v3/test_utils.py index 3a09b03b..a70ba099 100644 --- a/vmware_nsxlib/tests/unit/v3/test_utils.py +++ b/vmware_nsxlib/tests/unit/v3/test_utils.py @@ -375,6 +375,14 @@ class NsxFeaturesTestCase(nsxlib_testcase.NsxLibTestCase): self.assertTrue(self.nsxlib.feature_supported( nsx_constants.FEATURE_EXCLUDE_PORT_BY_TAG)) + def test_v4_features(self): + self.nsxlib.nsx_version = "4.0.1" + self.assertFalse(self.nsxlib.feature_supported( + nsx_constants.FEATURE_ROUTER_FIREWALL)) + self.nsxlib.nsx_version = "4.0.0" + self.assertTrue(self.nsxlib.feature_supported( + nsx_constants.FEATURE_ROUTER_FIREWALL)) + def test_v2_features_plus(self): self.test_v2_features(current_version='2.0.1') diff --git a/vmware_nsxlib/v3/__init__.py b/vmware_nsxlib/v3/__init__.py index b47fad4e..c9cf7d87 100644 --- a/vmware_nsxlib/v3/__init__.py +++ b/vmware_nsxlib/v3/__init__.py @@ -148,6 +148,12 @@ class NsxLib(lib.NsxLibBase): return node.get('export_type') == 'RESTRICTED' def feature_supported(self, feature): + if (version.LooseVersion(self.get_version()) >= + version.LooseVersion(nsx_constants.NSX_VERSION_4_0_1)): + # feature added since 2.0, removed since 4.0.1 + if feature == nsx_constants.FEATURE_ROUTER_FIREWALL: + return False + if (version.LooseVersion(self.get_version()) >= version.LooseVersion(nsx_constants.NSX_VERSION_3_1_0)): # features available since 3.1.0 diff --git a/vmware_nsxlib/v3/nsx_constants.py b/vmware_nsxlib/v3/nsx_constants.py index 7cf514ac..69687d04 100644 --- a/vmware_nsxlib/v3/nsx_constants.py +++ b/vmware_nsxlib/v3/nsx_constants.py @@ -156,6 +156,7 @@ NSX_VERSION_3_1_0 = '3.1.0' NSX_VERSION_3_2_0 = '3.2.0' NSX_VERSION_3_2_1 = '3.2.1' NSX_VERSION_4_0_0 = '4.0.0' +NSX_VERSION_4_0_1 = '4.0.1' # Features available depending on the NSX Manager backend version FEATURE_MAC_LEARNING = 'MAC Learning'