Merge "Add 100G if-OCH-OTU-ODU4 capability"
[transportpce.git] / tests / transportpce_tests / 7.1 / test02_otn_renderer.py
index 7d77949ce799b4cf2360774a5dd1d6cfb771b984..bf697475c57327e3945237aa59d9a6253068889d 100644 (file)
@@ -67,7 +67,7 @@ class TransportPCE400GPortMappingTesting(unittest.TestCase):
     # 1a) create a OTUC2 device renderer
     def test_02_service_path_create_otuc2(self):
         response = test_utils_rfc8040.device_renderer_service_path_request(
-            {'input': {
+            {
                 'service-name': 'service_OTUC2',
                 'wave-number': '0',
                 'modulation-format': 'dp-qpsk',
@@ -79,7 +79,7 @@ class TransportPCE400GPortMappingTesting(unittest.TestCase):
                 'max-freq': 196.125,
                 'lower-spectral-slot-number': 755,
                 'higher-spectral-slot-number': 768
-            }})
+            })
         self.assertEqual(response['status_code'], requests.codes.ok)
         self.assertIn('Interfaces created successfully for nodes: ', response['output']['result'])
         self.assertIn(
@@ -164,13 +164,13 @@ class TransportPCE400GPortMappingTesting(unittest.TestCase):
     # 1b) create a ODUC2 device renderer
     def test_07_otn_service_path_create_oduc2(self):
         response = test_utils_rfc8040.device_renderer_otn_service_path_request(
-            {'input': {
+            {
                 'service-name': 'service_ODUC2',
                 'operation': 'create',
                 'service-rate': '200',
                 'service-format': 'ODU',
                 'nodes': [{'node-id': 'XPDR-A2', 'network-tp': 'XPDR2-NETWORK1'}]
-            }})
+            })
         self.assertEqual(response['status_code'], requests.codes.ok)
         self.assertIn('Otn Service path was set up successfully for node :XPDR-A2', response['output']['result'])
         self.assertIn(
@@ -218,7 +218,7 @@ class TransportPCE400GPortMappingTesting(unittest.TestCase):
     # 1c) create Ethernet device renderer
     def test_10_otn_service_path_create_100ge(self):
         response = test_utils_rfc8040.device_renderer_otn_service_path_request(
-            {'input': {
+            {
                 'service-name': 'service_Ethernet',
                 'operation': 'create',
                 'service-rate': '100',
@@ -226,7 +226,7 @@ class TransportPCE400GPortMappingTesting(unittest.TestCase):
                 'nodes': [{'node-id': 'XPDR-A2', 'client-tp': 'XPDR2-CLIENT1', 'network-tp': 'XPDR2-NETWORK1'}],
                 'ethernet-encoding': 'eth encode',
                 'opucn-trib-slots': ['1.1', '1.20']
-            }})
+            })
         self.assertEqual(response['status_code'], requests.codes.ok)
         self.assertIn('Otn Service path was set up successfully for node :XPDR-A2', response['output']['result'])
         self.assertEqual('XPDR-A2', response['output']['node-interface'][0]['node-id'])
@@ -330,7 +330,7 @@ class TransportPCE400GPortMappingTesting(unittest.TestCase):
     # 1d) Delete Ethernet device interfaces
     def test_15_otn_service_path_delete_100ge(self):
         response = test_utils_rfc8040.device_renderer_otn_service_path_request(
-            {'input': {
+            {
                 'service-name': 'service_Ethernet',
                 'operation': 'delete',
                 'service-rate': '100',
@@ -339,7 +339,7 @@ class TransportPCE400GPortMappingTesting(unittest.TestCase):
                 'ethernet-encoding': 'eth encode',
                 'trib-slot': ['1'],
                 'trib-port-number': '1'
-            }})
+            })
         self.assertEqual(response['status_code'], requests.codes.ok)
         self.assertIn('Request processed', response['output']['result'])
 
@@ -367,24 +367,32 @@ class TransportPCE400GPortMappingTesting(unittest.TestCase):
     # 1e) Delete ODUC2 device interfaces
     def test_20_otn_service_path_delete_oduc2(self):
         response = test_utils_rfc8040.device_renderer_otn_service_path_request(
-            {'input': {
+            {
                 'service-name': 'service_ODUC2',
                 'operation': 'delete',
                 'service-rate': '200',
                 'service-format': 'ODU',
                 'nodes': [{'node-id': 'XPDR-A2', 'network-tp': 'XPDR2-NETWORK1'}]
-            }})
+            })
         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(
-            {'input': {
+            {
                 'service-name': 'service_OTUC2',
                 'wave-number': '0',
                 'modulation-format': 'dp-qpsk',
@@ -396,9 +404,10 @@ class TransportPCE400GPortMappingTesting(unittest.TestCase):
                 'max-freq': 196.125,
                 'lower-spectral-slot-number': 755,
                 'higher-spectral-slot-number': 768
-            }})
+            })
         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,10 +422,14 @@ 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(
-            {'input': {
+            {
                 'service-name': 'service_OTUC3',
                 'wave-number': '0',
                 'modulation-format': 'dp-qam8',
@@ -428,7 +441,7 @@ class TransportPCE400GPortMappingTesting(unittest.TestCase):
                 'max-freq': 196.125,
                 'lower-spectral-slot-number': 755,
                 'higher-spectral-slot-number': 768
-            }})
+            })
         self.assertEqual(response['status_code'], requests.codes.ok)
         self.assertIn('Interfaces created successfully for nodes: ', response['output']['result'])
         self.assertIn(
@@ -514,13 +527,13 @@ class TransportPCE400GPortMappingTesting(unittest.TestCase):
     # 2b) create a ODUC3 device renderer
     def test_31_otn_service_path_create_oduc3(self):
         response = test_utils_rfc8040.device_renderer_otn_service_path_request(
-            {'input': {
+            {
                 'service-name': 'service_ODUC3',
                 'operation': 'create',
                 'service-rate': '300',
                 'service-format': 'ODU',
                 'nodes': [{'node-id': 'XPDR-A2', 'network-tp': 'XPDR2-NETWORK1'}]
-            }})
+            })
         self.assertEqual(response['status_code'], requests.codes.ok)
         self.assertIn('Otn Service path was set up successfully for node :XPDR-A2', response['output']['result'])
         self.assertIn(
@@ -573,24 +586,29 @@ class TransportPCE400GPortMappingTesting(unittest.TestCase):
     # 2e) Delete ODUC3 device interfaces
     def test_34_otn_service_path_delete_oduc3(self):
         response = test_utils_rfc8040.device_renderer_otn_service_path_request(
-            {'input': {
+            {
                 'service-name': 'service_ODUC3',
                 'operation': 'delete',
                 'service-rate': '300',
                 'service-format': 'ODU',
                 'nodes': [{'node-id': 'XPDR-A2', 'network-tp': 'XPDR2-NETWORK1'}]
-            }})
+            })
         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(
-            {'input': {
+            {
                 'service-name': 'service_OTUC3',
                 'wave-number': '0',
                 'modulation-format': 'dp-qam8',
@@ -602,9 +620,10 @@ class TransportPCE400GPortMappingTesting(unittest.TestCase):
                 'max-freq': 196.125,
                 'lower-spectral-slot-number': 755,
                 'higher-spectral-slot-number': 768
-            }})
+            })
         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,10 +638,14 @@ 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(
-            {'input': {
+            {
                 'service-name': 'service_OTUC4',
                 'wave-number': '0',
                 'modulation-format': 'dp-qam16',
@@ -634,7 +657,7 @@ class TransportPCE400GPortMappingTesting(unittest.TestCase):
                 'max-freq': 196.125,
                 'lower-spectral-slot-number': 755,
                 'higher-spectral-slot-number': 768
-            }})
+            })
         self.assertEqual(response['status_code'], requests.codes.ok)
         self.assertIn('Interfaces created successfully for nodes: ', response['output']['result'])
         self.assertIn(
@@ -720,13 +743,13 @@ class TransportPCE400GPortMappingTesting(unittest.TestCase):
     # 3b) create a ODUC4 device renderer
     def test_45_otn_service_path_create_oduc3(self):
         response = test_utils_rfc8040.device_renderer_otn_service_path_request(
-            {'input': {
+            {
                 'service-name': 'service_ODUC4',
                 'operation': 'create',
                 'service-rate': '400',
                 'service-format': 'ODU',
                 'nodes': [{'node-id': 'XPDR-A2', 'network-tp': 'XPDR2-NETWORK1'}]
-            }})
+            })
         self.assertEqual(response['status_code'], requests.codes.ok)
         self.assertIn('Otn Service path was set up successfully for node :XPDR-A2', response['output']['result'])
         self.assertIn(
@@ -779,24 +802,29 @@ class TransportPCE400GPortMappingTesting(unittest.TestCase):
     # 3e) Delete ODUC4 device interfaces
     def test_48_otn_service_path_delete_oduc4(self):
         response = test_utils_rfc8040.device_renderer_otn_service_path_request(
-            {'input': {
+            {
                 'service-name': 'service_ODUC4',
                 'operation': 'delete',
                 'service-rate': '400',
                 'service-format': 'ODU',
                 'nodes': [{'node-id': 'XPDR-A2', 'network-tp': 'XPDR2-NETWORK1'}]
-            }})
+            })
         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(
-            {'input': {
+            {
                 'service-name': 'service_OTUC4',
                 'wave-number': '0',
                 'modulation-format': 'dp-qam16',
@@ -808,9 +836,10 @@ class TransportPCE400GPortMappingTesting(unittest.TestCase):
                 'max-freq': 196.125,
                 'lower-spectral-slot-number': 755,
                 'higher-spectral-slot-number': 768
-            }})
+            })
         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")