From b2ece496da421807353f4bd215daa4b6237cdd2f Mon Sep 17 00:00:00 2001 From: Balagangadhar Bathula Date: Wed, 16 Feb 2022 16:47:57 -0500 Subject: [PATCH] Bug in updating 7.1 port-mapping data - Data for supporting ODUCn and OTUCn is not getting updated after service/interface deletion - Add code to include supporting ODUCn and OTUCn in updateMappingInterfaces. JIRA: TRNSPRTPCE-608 Change-Id: Iffdfc46eff28044d2d48ad94cdc069249507fa69 Signed-off-by: Balagangadhar Bathula --- .../common/mapping/PortMappingVersion710.java | 4 ++- .../7.1/test02_otn_renderer.py | 35 ++++++++++++++++++- 2 files changed, 37 insertions(+), 2 deletions(-) diff --git a/common/src/main/java/org/opendaylight/transportpce/common/mapping/PortMappingVersion710.java b/common/src/main/java/org/opendaylight/transportpce/common/mapping/PortMappingVersion710.java index 01e97c7a5..d1697fd21 100644 --- a/common/src/main/java/org/opendaylight/transportpce/common/mapping/PortMappingVersion710.java +++ b/common/src/main/java/org/opendaylight/transportpce/common/mapping/PortMappingVersion710.java @@ -942,7 +942,9 @@ public class PortMappingVersion710 { private MappingBuilder updateMappingInterfaces(String nodeId, MappingBuilder mpBldr, Ports port) { mpBldr.setSupportingOtu4(null) - .setSupportingOdu4(null); + .setSupportingOdu4(null) + .setSupportingOducn(null) + .setSupportingOtucn(null); for (Interfaces interfaces : port.getInterfaces()) { Optional openRoadmInterface = getInterfaceFromDevice(nodeId, interfaces.getInterfaceName()); diff --git a/tests/transportpce_tests/7.1/test02_otn_renderer.py b/tests/transportpce_tests/7.1/test02_otn_renderer.py index 2ef26c1e2..bf697475c 100644 --- a/tests/transportpce_tests/7.1/test02_otn_renderer.py +++ b/tests/transportpce_tests/7.1/test02_otn_renderer.py @@ -376,12 +376,20 @@ class TransportPCE400GPortMappingTesting(unittest.TestCase): }) self.assertEqual(response['status_code'], requests.codes.ok) self.assertIn('Request processed', response['output']['result']) + # Here you have remove the added oducn supporting port interface + del self.NETWORK2_CHECK_DICT["supporting-oducn"] def test_21_check_no_interface_oduc2(self): response = test_utils_rfc8040.check_node_attribute_request("XPDR-A2", "interface", "XPDR2-NETWORK1-ODUC2") self.assertEqual(response['status_code'], requests.codes.conflict) + # Check if port-mapping data is updated, where the supporting-oducn is deleted + def test_21a_check_no_oduc2(self): + response = test_utils_rfc8040.portmapping_request("XPDR-A2", "XPDR2-NETWORK1") + self.assertRaises(KeyError, lambda: response["supporting-oducn"]) + # 1f) Delete OTUC2 device interfaces + def test_22_service_path_delete_otuc2(self): response = test_utils_rfc8040.device_renderer_service_path_request( { @@ -399,6 +407,7 @@ class TransportPCE400GPortMappingTesting(unittest.TestCase): }) self.assertEqual(response['status_code'], requests.codes.ok) self.assertIn('Request processed', response['output']['result']) + del self.NETWORK2_CHECK_DICT["supporting-otucn"] def test_23_check_no_interface_otuc2(self): response = test_utils_rfc8040.check_node_attribute_request("XPDR-A1", "interface", "XPDR2-NETWORK1-OTUC2") @@ -413,6 +422,10 @@ class TransportPCE400GPortMappingTesting(unittest.TestCase): response = test_utils_rfc8040.check_node_attribute_request("XPDR-A1", "interface", "XPDR2-NETWORK1-755:768") self.assertEqual(response['status_code'], requests.codes.conflict) + def test_25a_check_no_otuc2(self): + response = test_utils_rfc8040.portmapping_request("XPDR-A2", "XPDR2-NETWORK1") + self.assertRaises(KeyError, lambda: response["supporting-otucn"]) + # 2a) create a OTUC3 device renderer def test_26_service_path_create_otuc3(self): response = test_utils_rfc8040.device_renderer_service_path_request( @@ -582,11 +595,16 @@ class TransportPCE400GPortMappingTesting(unittest.TestCase): }) self.assertEqual(response['status_code'], requests.codes.ok) self.assertIn('Request processed', response['output']['result']) + del self.NETWORK2_CHECK_DICT["supporting-oducn"] def test_35_check_no_interface_oduc3(self): response = test_utils_rfc8040.check_node_attribute_request("XPDR-A2", "interface", "XPDR2-NETWORK1-ODUC3") self.assertEqual(response['status_code'], requests.codes.conflict) + def test_35a_check_no_oduc3(self): + response = test_utils_rfc8040.portmapping_request("XPDR-A2", "XPDR2-NETWORK1") + self.assertRaises(KeyError, lambda: response["supporting-oducn"]) + # 2f) Delete OTUC3 device interfaces def test_36_service_path_delete_otuc3(self): response = test_utils_rfc8040.device_renderer_service_path_request( @@ -605,6 +623,7 @@ class TransportPCE400GPortMappingTesting(unittest.TestCase): }) self.assertEqual(response['status_code'], requests.codes.ok) self.assertIn('Request processed', response['output']['result']) + del self.NETWORK2_CHECK_DICT["supporting-otucn"] def test_37_check_no_interface_otuc3(self): response = test_utils_rfc8040.check_node_attribute_request("XPDR-A1", "interface", "XPDR2-NETWORK1-OTUC3") @@ -619,8 +638,12 @@ class TransportPCE400GPortMappingTesting(unittest.TestCase): response = test_utils_rfc8040.check_node_attribute_request("XPDR-A1", "interface", "XPDR2-NETWORK1-755:768") self.assertEqual(response['status_code'], requests.codes.conflict) + def test_39a_check_no_otuc3(self): + response = test_utils_rfc8040.portmapping_request("XPDR-A2", "XPDR2-NETWORK1") + self.assertRaises(KeyError, lambda: response["supporting-otucn"]) + # 3a) create a OTUC4 device renderer - def test_40_service_path_create_otuc3(self): + def test_40_service_path_create_otuc4(self): response = test_utils_rfc8040.device_renderer_service_path_request( { 'service-name': 'service_OTUC4', @@ -788,11 +811,16 @@ class TransportPCE400GPortMappingTesting(unittest.TestCase): }) self.assertEqual(response['status_code'], requests.codes.ok) self.assertIn('Request processed', response['output']['result']) + del self.NETWORK2_CHECK_DICT["supporting-oducn"] def test_49_check_no_interface_oduc4(self): response = test_utils_rfc8040.check_node_attribute_request("XPDR-A2", "interface", "XPDR2-NETWORK1-ODUC4") self.assertEqual(response['status_code'], requests.codes.conflict) + def test_49a_check_no_oduc4(self): + response = test_utils_rfc8040.portmapping_request("XPDR-A2", "XPDR2-NETWORK1") + self.assertRaises(KeyError, lambda: response["supporting-oducn"]) + # 3f) Delete OTUC4 device interfaces def test_50_service_path_delete_otuc4(self): response = test_utils_rfc8040.device_renderer_service_path_request( @@ -811,6 +839,7 @@ class TransportPCE400GPortMappingTesting(unittest.TestCase): }) self.assertEqual(response['status_code'], requests.codes.ok) self.assertIn('Request processed', response['output']['result']) + del self.NETWORK2_CHECK_DICT["supporting-otucn"] def test_51_check_no_interface_otuc4(self): response = test_utils_rfc8040.check_node_attribute_request("XPDR-A1", "interface", "XPDR2-NETWORK1-OTUC4") @@ -825,6 +854,10 @@ class TransportPCE400GPortMappingTesting(unittest.TestCase): response = test_utils_rfc8040.check_node_attribute_request("XPDR-A1", "interface", "XPDR2-NETWORK1-755:768") self.assertEqual(response['status_code'], requests.codes.conflict) + def test_53a_check_no_otuc4(self): + response = test_utils_rfc8040.portmapping_request("XPDR-A2", "XPDR2-NETWORK1") + self.assertRaises(KeyError, lambda: response["supporting-otucn"]) + # Disconnect the XPDR def test_54_xpdr_device_disconnection(self): response = test_utils_rfc8040.unmount_device("XPDR-A2") -- 2.36.6