From 04f6aa045f712d97f79b987b7932a78fec808c54 Mon Sep 17 00:00:00 2001 From: Deepthi Kandavara Jayarama Date: Thu, 15 Mar 2018 20:30:28 +0000 Subject: [PATCH] [BUG # 2069593] Starting from queen new nat rule with action 'DNAT' is added Changes are made to be backward compatible root@prome-mdt-dhcp412:/opt/stack/tempest# ostestr --pdb vmware_nsx_tempest.tests.nsxv3.scenario.test_router_nonat_ops.TestRouterNoNATOps.test_router_nat_to_nonat_ops {0} vmware_nsx_tempest.tests.nsxv3.scenario.test_router_nonat_ops.TestRouterNoNATOps.test_router_nat_to_nonat_ops [183.871465s] ... ok ====== Totals ====== Ran: 1 tests in 186.0000 sec. - Passed: 1 root@prome-mdt-dhcp412:/opt/stack/tempest# ostestr --pdb vmware_nsx_tempest.tests.nsxv3.scenario.test_router_nonat_ops.TestRouterNoNATOps.test_router_nonat_to_nat_ops {0} vmware_nsx_tempest.tests.nsxv3.scenario.test_router_nonat_ops.TestRouterNoNATOps.test_router_nonat_to_nat_ops [70.747231s] ... ok ====== Totals ====== Ran: 1 tests in 73.0000 sec. - Passed: 1 root@prome-mdt-dhcp412:/opt/stack/tempest# ostestr --pdb vmware_nsx_tempest.tests.nsxv3.api.test_nsx_floating_ip.NSXv3FloatingIPTest.test_create_floating_ip {0} vmware_nsx_tempest.tests.nsxv3.api.test_nsx_floating_ip.NSXv3FloatingIPTest.test_create_floating_ip [3.537444s] ... ok ====== Totals ====== Ran: 1 tests in 24.0000 sec. - Passed: 1 root@prome-mdt-dhcp412:/opt/stack/tempest# ostestr --pdb vmware_nsx_tempest.tests.nsxv3.api.test_nsx_floating_ip.NSXv3FloatingIPTest.test_update_floating_ip {0} vmware_nsx_tempest.tests.nsxv3.api.test_nsx_floating_ip.NSXv3FloatingIPTest.test_update_floating_ip [5.573614s] ... ok ====== Totals ====== Ran: 1 tests in 25.0000 sec. - Passed: 1 root@prome-mdt-dhcp412:/opt/stack/tempest# ostestr --pdb vmware_nsx_tempest.tests.nsxv3.api.test_nsx_floating_ip.NSXv3FloatingIPTest.test_delete_floating_ip {0} vmware_nsx_tempest.tests.nsxv3.api.test_nsx_floating_ip.NSXv3FloatingIPTest.test_delete_floating_ip [3.218455s] ... ok ====== Totals ====== Ran: 1 tests in 22.0000 sec. - Passed: 1 Change-Id: I7d866ee0b5b21a7aa7caabc560b03a6ff330d2ca --- .../tests/nsxv3/api/test_nsx_floating_ip.py | 6 +++--- .../nsxv3/scenario/test_router_nonat_ops.py | 20 +++++++++++++++---- 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/vmware_nsx_tempest/tests/nsxv3/api/test_nsx_floating_ip.py b/vmware_nsx_tempest/tests/nsxv3/api/test_nsx_floating_ip.py index 7a2c0b0..1fb169f 100644 --- a/vmware_nsx_tempest/tests/nsxv3/api/test_nsx_floating_ip.py +++ b/vmware_nsx_tempest/tests/nsxv3/api/test_nsx_floating_ip.py @@ -76,7 +76,7 @@ class NSXv3FloatingIPTest(base.BaseNetworkTest): {'router': nsx_router, 'rules': nat_rules}) dnat_rules = [(rule['translated_network'], rule['match_destination_network']) for rule in nat_rules - if 'match_destination_network' in rule] + if rule['action'] == 'DNAT'] snat_rules = [(rule['translated_network'], rule['match_source_network']) for rule in nat_rules if 'match_source_network' in rule] @@ -114,7 +114,7 @@ class NSXv3FloatingIPTest(base.BaseNetworkTest): {'router': nsx_router, 'rules': nat_rules}) dnat_rules = [(rule['translated_network'], rule['match_destination_network']) for rule in nat_rules - if 'match_destination_network' in rule] + if rule['action'] == 'DNAT'] snat_rules = [(rule['translated_network'], rule['match_source_network']) for rule in nat_rules if 'match_source_network' in rule] @@ -149,7 +149,7 @@ class NSXv3FloatingIPTest(base.BaseNetworkTest): {'router': nsx_router, 'rules': nat_rules}) dnat_rules = [(rule['translated_network'], rule['match_destination_network']) for rule in nat_rules - if 'match_destination_network' in rule] + if rule['action'] == 'DNAT'] snat_rules = [(rule['translated_network'], rule['match_source_network']) for rule in nat_rules if 'match_source_network' in rule] diff --git a/vmware_nsx_tempest/tests/nsxv3/scenario/test_router_nonat_ops.py b/vmware_nsx_tempest/tests/nsxv3/scenario/test_router_nonat_ops.py index ca88b5b..6823438 100644 --- a/vmware_nsx_tempest/tests/nsxv3/scenario/test_router_nonat_ops.py +++ b/vmware_nsx_tempest/tests/nsxv3/scenario/test_router_nonat_ops.py @@ -273,7 +273,10 @@ class TestRouterNoNATOps(manager.NetworkScenarioTest): router_adv = self.nsx.get_logical_router_advertisement(nsx_router) adv_msg = "Tier1 router's advertise_nsx_connected_routes is not True" nat_msg = "Tier1 router's advertise_nat_routes is not False" - self.assertTrue(len(nat_rules) == 3) + if any(d['action'] == 'NO_DNAT' for d in nat_rules): + self.assertTrue(len(nat_rules) == 4) + else: + self.assertTrue(len(nat_rules) == 3) self.assertTrue(router_adv['advertise_nat_routes'], nat_msg) self.assertFalse(router_adv['advertise_nsx_connected_routes'], adv_msg) self._check_network_internal_connectivity(network=self.network) @@ -296,7 +299,10 @@ class TestRouterNoNATOps(manager.NetworkScenarioTest): nat_rules = self.nsx.get_logical_router_nat_rules(nsx_router) # Check router advertisement is correctly set router_adv = self.nsx.get_logical_router_advertisement(nsx_router) - self.assertTrue(len(nat_rules) == 0) + if len(nat_rules) == 1: + self.assertTrue(any(d['action'] == 'NO_DNAT' for d in nat_rules)) + else: + self.assertTrue(len(nat_rules) == 0) self.assertFalse(router_adv['advertise_nat_routes'], nat_msg) self.assertTrue(router_adv['advertise_nsx_connected_routes'], adv_msg) self._check_nonat_network_connectivity() @@ -315,7 +321,10 @@ class TestRouterNoNATOps(manager.NetworkScenarioTest): router_adv = self.nsx.get_logical_router_advertisement(nsx_router) adv_msg = "Tier1 router's advertise_nsx_connected_routes is not True" nat_msg = "Tier1 router's advertise_nat_routes is not False" - self.assertTrue(len(nat_rules) == 0) + if len(nat_rules) == 1: + self.assertTrue(any(d['action'] == 'NO_DNAT' for d in nat_rules)) + else: + self.assertTrue(len(nat_rules) == 0) self.assertFalse(router_adv['advertise_nat_routes'], nat_msg) self.assertTrue(router_adv['advertise_nsx_connected_routes'], adv_msg) self._check_nonat_network_connectivity() @@ -335,7 +344,10 @@ class TestRouterNoNATOps(manager.NetworkScenarioTest): nat_rules = self.nsx.get_logical_router_nat_rules(nsx_router) # Check router advertisement is correctly set router_adv = self.nsx.get_logical_router_advertisement(nsx_router) - self.assertTrue(len(nat_rules) == 3) + if any(d['action'] == 'NO_DNAT' for d in nat_rules): + self.assertTrue(len(nat_rules) == 4) + else: + self.assertTrue(len(nat_rules) == 3) self.assertTrue(router_adv['advertise_nat_routes'], nat_msg) self.assertFalse(router_adv['advertise_nsx_connected_routes'], adv_msg) self._check_network_internal_connectivity(network=self.network)