Align 1.2.1 tests sims/tpce management to 2.2.1
[transportpce.git] / tests / transportpce_tests / 2.2.1 / test_otn_topology.py
index 4c1fb6e69a38f6aa4f5bafd304d85bfa5e2f401c..89a2eef03d9c298ec0e1f64e718df49b1b852a96 100644 (file)
@@ -19,58 +19,44 @@ import subprocess
 import time
 import unittest
 import logging
-import test_utils
+from common import test_utils
 
 
 class TransportPCEtesting(unittest.TestCase):
 
-    honeynode_process1 = None
-    odl_process = None
+    processes = None
     restconf_baseurl = "http://localhost:8181/restconf"
 
     @classmethod
     def setUpClass(cls):
-        print ("starting honeynode1...")
-        cls.honeynode_process1 = test_utils.start_spdra_honeynode()
-        time.sleep(20)
-
-        print ("starting opendaylight...")
-        cls.odl_process = test_utils.start_tpce()
-        time.sleep(60)
-        print ("opendaylight started")
+        cls.processes = test_utils.start_tpce()
+        cls.processes = test_utils.start_sims(['spdrav2'])
 
     @classmethod
     def tearDownClass(cls):
-        for child in psutil.Process(cls.odl_process.pid).children():
-            child.send_signal(signal.SIGINT)
-            child.wait()
-        cls.odl_process.send_signal(signal.SIGINT)
-        cls.odl_process.wait()
-        for child in psutil.Process(cls.honeynode_process1.pid).children():
-            child.send_signal(signal.SIGINT)
-            child.wait()
-        cls.honeynode_process1.send_signal(signal.SIGINT)
-        cls.honeynode_process1.wait()
+        for process in cls.processes:
+            test_utils.shutdown_process(process)
+        print("all processes killed")
 
     def setUp(self):
         time.sleep(5)
 
     def test_01_connect_SPDR_SA1(self):
         url = ("{}/config/network-topology:"
-                "network-topology/topology/topology-netconf/node/SPDR-SA1"
+               "network-topology/topology/topology-netconf/node/SPDR-SA1"
                .format(self.restconf_baseurl))
         data = {"node": [{
-             "node-id": "SPDR-SA1",
-             "netconf-node-topology:username": "admin",
-             "netconf-node-topology:password": "admin",
-             "netconf-node-topology:host": "127.0.0.1",
-             "netconf-node-topology:port": "17845",
-             "netconf-node-topology:tcp-only": "false",
-             "netconf-node-topology:pass-through": {}}]}
+            "node-id": "SPDR-SA1",
+            "netconf-node-topology:username": "admin",
+            "netconf-node-topology:password": "admin",
+            "netconf-node-topology:host": "127.0.0.1",
+            "netconf-node-topology:port": test_utils.sims['spdrav2']['port'],
+            "netconf-node-topology:tcp-only": "false",
+            "netconf-node-topology:pass-through": {}}]}
         headers = {'content-type': 'application/json'}
         response = requests.request(
-             "PUT", url, data=json.dumps(data), headers=headers,
-             auth=('admin', 'admin'))
+            "PUT", url, data=json.dumps(data), headers=headers,
+            auth=('admin', 'admin'))
         self.assertEqual(response.status_code, requests.codes.created)
         time.sleep(10)
         url = ("{}/operational/network-topology:"
@@ -86,7 +72,7 @@ class TransportPCEtesting(unittest.TestCase):
 
     def test_02_getClliNetwork(self):
         url = ("{}/config/ietf-network:networks/network/clli-network"
-              .format(self.restconf_baseurl))
+               .format(self.restconf_baseurl))
         headers = {'content-type': 'application/json'}
         response = requests.request(
             "GET", url, headers=headers, auth=('admin', 'admin'))
@@ -98,7 +84,7 @@ class TransportPCEtesting(unittest.TestCase):
 
     def test_03_getOpenRoadmNetwork(self):
         url = ("{}/config/ietf-network:networks/network/openroadm-network"
-              .format(self.restconf_baseurl))
+               .format(self.restconf_baseurl))
         headers = {'content-type': 'application/json'}
         response = requests.request(
             "GET", url, headers=headers, auth=('admin', 'admin'))
@@ -107,14 +93,14 @@ class TransportPCEtesting(unittest.TestCase):
         self.assertEqual(res['network'][0]['node'][0]['node-id'], 'SPDR-SA1')
         self.assertEqual(res['network'][0]['node'][0]['supporting-node'][0]['network-ref'], 'clli-network')
         self.assertEqual(res['network'][0]['node'][0]['supporting-node'][0]['node-ref'], 'NodeSA')
-        self.assertEqual(res['network'][0]['node'][0]['org-openroadm-network:node-type'], 'XPONDER')
+        self.assertEqual(res['network'][0]['node'][0]['org-openroadm-common-network:node-type'], 'XPONDER')
         self.assertEqual(res['network'][0]['node'][0]['org-openroadm-network:model'], 'universal-switchponder')
         self.assertEqual(res['network'][0]['node'][0]['org-openroadm-network:vendor'], 'vendorA')
         self.assertEqual(res['network'][0]['node'][0]['org-openroadm-network:ip'], '1.2.3.4')
 
     def test_04_getLinks_OpenroadmTopology(self):
         url = ("{}/config/ietf-network:networks/network/openroadm-topology"
-              .format(self.restconf_baseurl))
+               .format(self.restconf_baseurl))
         headers = {'content-type': 'application/json'}
         response = requests.request(
             "GET", url, headers=headers, auth=('admin', 'admin'))
@@ -125,7 +111,7 @@ class TransportPCEtesting(unittest.TestCase):
 
     def test_05_getNodes_OpenRoadmTopology(self):
         url = ("{}/config/ietf-network:networks/network/openroadm-topology"
-              .format(self.restconf_baseurl))
+               .format(self.restconf_baseurl))
         headers = {'content-type': 'application/json'}
         response = requests.request(
             "GET", url, headers=headers, auth=('admin', 'admin'))
@@ -138,40 +124,44 @@ class TransportPCEtesting(unittest.TestCase):
             self.assertEqual(nbNode, 2)
             listNode = ['SPDR-SA1-XPDR1', 'SPDR-SA1-XPDR2']
             for i in range(0, nbNode):
-                nodeType = res['network'][0]['node'][i]['org-openroadm-network-topology:node-type']
+                nodeType = res['network'][0]['node'][i]['org-openroadm-common-network:node-type']
                 nodeId = res['network'][0]['node'][i]['node-id']
-                if(nodeId == 'SPDR-SA1-XPDR1'):
+                if (nodeId == 'SPDR-SA1-XPDR1'):
                     self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'SPDR-SA1'},
                                   res['network'][0]['node'][i]['supporting-node'])
+                    self.assertIn({'network-ref': 'clli-network', 'node-ref': 'NodeSA'},
+                                  res['network'][0]['node'][i]['supporting-node'])
                     self.assertEqual(nodeType, 'XPONDER')
                     nbTps = len(res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
                     client = 0
                     network = 0
                     for j in range(0, nbTps):
-                        tpType = res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['org-openroadm-network-topology:tp-type']
+                        tpType = res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['org-openroadm-common-network:tp-type']
                         tpId = res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['tp-id']
                         if (tpType == 'XPONDER-CLIENT'):
                             client += 1
                         elif (tpType == 'XPONDER-NETWORK'):
                             network += 1
-                    self.assertTrue(client == 4)
+                    self.assertTrue(client == 0)
                     self.assertTrue(network == 1)
                     listNode.remove(nodeId)
-                if(nodeId == 'SPDR-SA1-XPDR2'):
+                elif (nodeId == 'SPDR-SA1-XPDR2'):
                     self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'SPDR-SA1'},
                                   res['network'][0]['node'][i]['supporting-node'])
+                    self.assertIn({'network-ref': 'clli-network', 'node-ref': 'NodeSA'},
+                                  res['network'][0]['node'][i]['supporting-node'])
                     self.assertEqual(nodeType, 'XPONDER')
                     nbTps = len(res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
                     client = 0
                     network = 0
                     for j in range(0, nbTps):
-                        tpType = res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['org-openroadm-network-topology:tp-type']
+                        tpType = res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['org-openroadm-common-network:tp-type']
                         tpId = res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['tp-id']
                         if (tpType == 'XPONDER-CLIENT'):
                             client += 1
                         elif (tpType == 'XPONDER-NETWORK'):
                             network += 1
-                    self.assertTrue(client == 4)
+                    self.assertTrue(client == 0)
                     self.assertTrue(network == 4)
                     listNode.remove(nodeId)
                 else:
@@ -180,7 +170,7 @@ class TransportPCEtesting(unittest.TestCase):
 
     def test_06_getLinks_OtnTopology(self):
         url = ("{}/config/ietf-network:networks/network/otn-topology"
-              .format(self.restconf_baseurl))
+               .format(self.restconf_baseurl))
         headers = {'content-type': 'application/json'}
         response = requests.request(
             "GET", url, headers=headers, auth=('admin', 'admin'))
@@ -190,7 +180,7 @@ class TransportPCEtesting(unittest.TestCase):
 
     def test_07_getNodes_OtnTopology(self):
         url = ("{}/config/ietf-network:networks/network/otn-topology"
-              .format(self.restconf_baseurl))
+               .format(self.restconf_baseurl))
         headers = {'content-type': 'application/json'}
         response = requests.request(
             "GET", url, headers=headers, auth=('admin', 'admin'))
@@ -202,34 +192,45 @@ class TransportPCEtesting(unittest.TestCase):
         for i in range(0, nbNode):
             nodeId = res['network'][0]['node'][i]['node-id']
             if(nodeId == 'SPDR-SA1-XPDR1'):
-                nodeType = res['network'][0]['node'][i]['org-openroadm-otn-network-topology:node-type']
+                nodeType = res['network'][0]['node'][i]['org-openroadm-common-network:node-type']
                 self.assertEqual(nodeType, 'MUXPDR')
                 self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'SPDR-SA1'},
                               res['network'][0]['node'][i]['supporting-node'])
                 self.assertIn({'network-ref': 'openroadm-topology', 'node-ref': 'SPDR-SA1-XPDR1'},
                               res['network'][0]['node'][i]['supporting-node'])
-                self.assertEqual(res['network'][0]['node'][i]['org-openroadm-otn-network-topology:xpdr-attributes']['xpdr-number'], 1)
+                self.assertIn({'network-ref': 'clli-network', 'node-ref': 'NodeSA'},
+                              res['network'][0]['node'][i]['supporting-node'])
+                self.assertEqual(res['network'][0]['node'][i]
+                                 ['org-openroadm-otn-network-topology:xpdr-attributes']['xpdr-number'], 1)
                 nbTps = len(res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
                 client = 0
                 network = 0
                 for j in range(0, nbTps):
-                    tpType = res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['org-openroadm-otn-network-topology:tp-type']
+                    tpType = res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['org-openroadm-common-network:tp-type']
                     tpId = res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['tp-id']
                     if (tpType == 'XPONDER-CLIENT'):
                         client += 1
-                        self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['org-openroadm-otn-network-topology:tp-supported-interfaces']['supported-interface-capability'][0]['if-cap-type'], 'org-openroadm-port-types:if-10GE-ODU2e')
-                        self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['org-openroadm-otn-network-topology:xpdr-tp-port-connection-attributes']['rate'], 'org-openroadm-otn-common-types:ODU2e')
+                        self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['org-openroadm-otn-network-topology:tp-supported-interfaces']
+                                         ['supported-interface-capability'][0]['if-cap-type'], 'org-openroadm-port-types:if-10GE-ODU2e')
+                        self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]
+                                         ['org-openroadm-otn-network-topology:xpdr-tp-port-connection-attributes']['rate'], 'org-openroadm-otn-common-types:ODU2e')
                     elif (tpType == 'XPONDER-NETWORK'):
                         network += 1
-                        self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['org-openroadm-otn-network-topology:tp-supported-interfaces']['supported-interface-capability'][0]['if-cap-type'], 'org-openroadm-port-types:if-OCH-OTU4-ODU4')
-                        self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['org-openroadm-otn-network-topology:xpdr-tp-port-connection-attributes']['rate'], 'org-openroadm-otn-common-types:ODU4')
-                        self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['supporting-termination-point'][0]['network-ref'], 'openroadm-topology')
-                        self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['supporting-termination-point'][0]['node-ref'], 'SPDR-SA1-XPDR1')
-                        self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['supporting-termination-point'][0]['tp-ref'], 'XPDR1-NETWORK1')
+                        self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['org-openroadm-otn-network-topology:tp-supported-interfaces']
+                                         ['supported-interface-capability'][0]['if-cap-type'], 'org-openroadm-port-types:if-OCH-OTU4-ODU4')
+                        self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]
+                                         ['org-openroadm-otn-network-topology:xpdr-tp-port-connection-attributes']['rate'], 'org-openroadm-otn-common-types:ODU4')
+                        self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point']
+                                         [j]['supporting-termination-point'][0]['network-ref'], 'openroadm-topology')
+                        self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point']
+                                         [j]['supporting-termination-point'][0]['node-ref'], 'SPDR-SA1-XPDR1')
+                        self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point']
+                                         [j]['supporting-termination-point'][0]['tp-ref'], 'XPDR1-NETWORK1')
                 self.assertTrue(client == 4)
                 self.assertTrue(network == 1)
                 listNode.remove(nodeId)
-                nbNbl = len(res['network'][0]['node'][i]['org-openroadm-otn-network-topology:switching-pools']['odu-switching-pools'][0]['non-blocking-list'])
+                nbNbl = len(res['network'][0]['node'][i]['org-openroadm-otn-network-topology:switching-pools']
+                            ['odu-switching-pools'][0]['non-blocking-list'])
                 self.assertEqual(nbNbl, 4)
                 for k in range(0, nbNbl):
                     nbl = res['network'][0]['node'][i]['org-openroadm-otn-network-topology:switching-pools']['odu-switching-pools'][0]['non-blocking-list'][k]
@@ -240,34 +241,45 @@ class TransportPCEtesting(unittest.TestCase):
                         self.assertIn('XPDR1-CLIENT1', nbl['tp-list'])
                         self.assertNotIn('XPDR1-CLIENT2', nbl['tp-list'])
             elif(nodeId == 'SPDR-SA1-XPDR2'):
-                nodeType = res['network'][0]['node'][i]['org-openroadm-otn-network-topology:node-type']
+                nodeType = res['network'][0]['node'][i]['org-openroadm-common-network:node-type']
                 self.assertEqual(nodeType, 'SWITCH')
                 self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'SPDR-SA1'},
                               res['network'][0]['node'][i]['supporting-node'])
                 self.assertIn({'network-ref': 'openroadm-topology', 'node-ref': 'SPDR-SA1-XPDR2'},
                               res['network'][0]['node'][i]['supporting-node'])
-                self.assertEqual(res['network'][0]['node'][i]['org-openroadm-otn-network-topology:xpdr-attributes']['xpdr-number'], 2)
+                self.assertIn({'network-ref': 'clli-network', 'node-ref': 'NodeSA'},
+                              res['network'][0]['node'][i]['supporting-node'])
+                self.assertEqual(res['network'][0]['node'][i]
+                                 ['org-openroadm-otn-network-topology:xpdr-attributes']['xpdr-number'], 2)
                 nbTps = len(res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
                 client = 0
                 network = 0
                 for j in range(0, nbTps):
-                    tpType = res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['org-openroadm-otn-network-topology:tp-type']
+                    tpType = res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['org-openroadm-common-network:tp-type']
                     tpId = res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['tp-id']
                     if (tpType == 'XPONDER-CLIENT'):
                         client += 1
-                        self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['org-openroadm-otn-network-topology:tp-supported-interfaces']['supported-interface-capability'][0]['if-cap-type'], 'org-openroadm-port-types:if-100GE-ODU4')
-                        self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['org-openroadm-otn-network-topology:xpdr-tp-port-connection-attributes']['rate'], 'org-openroadm-otn-common-types:ODU4')
+                        self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['org-openroadm-otn-network-topology:tp-supported-interfaces']
+                                         ['supported-interface-capability'][0]['if-cap-type'], 'org-openroadm-port-types:if-100GE-ODU4')
+                        self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]
+                                         ['org-openroadm-otn-network-topology:xpdr-tp-port-connection-attributes']['rate'], 'org-openroadm-otn-common-types:ODU4')
                     elif (tpType == 'XPONDER-NETWORK'):
                         network += 1
-                        self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['org-openroadm-otn-network-topology:tp-supported-interfaces']['supported-interface-capability'][0]['if-cap-type'], 'org-openroadm-port-types:if-OCH-OTU4-ODU4')
-                        self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['org-openroadm-otn-network-topology:xpdr-tp-port-connection-attributes']['rate'], 'org-openroadm-otn-common-types:ODU4')
-                        self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['supporting-termination-point'][0]['network-ref'], 'openroadm-topology')
-                        self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['supporting-termination-point'][0]['node-ref'], 'SPDR-SA1-XPDR2')
-                        self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['supporting-termination-point'][0]['tp-ref'], tpId)
+                        self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['org-openroadm-otn-network-topology:tp-supported-interfaces']
+                                         ['supported-interface-capability'][0]['if-cap-type'], 'org-openroadm-port-types:if-OCH-OTU4-ODU4')
+                        self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]
+                                         ['org-openroadm-otn-network-topology:xpdr-tp-port-connection-attributes']['rate'], 'org-openroadm-otn-common-types:ODU4')
+                        self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point']
+                                         [j]['supporting-termination-point'][0]['network-ref'], 'openroadm-topology')
+                        self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point']
+                                         [j]['supporting-termination-point'][0]['node-ref'], 'SPDR-SA1-XPDR2')
+                        self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point']
+                                         [j]['supporting-termination-point'][0]['tp-ref'], tpId)
                 self.assertTrue(client == 4)
                 self.assertTrue(network == 4)
                 listNode.remove(nodeId)
-                nbNbl = len(res['network'][0]['node'][i]['org-openroadm-otn-network-topology:switching-pools']['odu-switching-pools'][0]['non-blocking-list'])
+                nbNbl = len(res['network'][0]['node'][i]['org-openroadm-otn-network-topology:switching-pools']
+                            ['odu-switching-pools'][0]['non-blocking-list'])
                 self.assertEqual(nbNbl, 1)
                 nbl = res['network'][0]['node'][i]['org-openroadm-otn-network-topology:switching-pools']['odu-switching-pools'][0]['non-blocking-list'][0]
                 self.assertIn('XPDR2-NETWORK1', nbl['tp-list'])
@@ -285,7 +297,7 @@ class TransportPCEtesting(unittest.TestCase):
     def test_08_disconnect_SPDR_SA1(self):
         url = ("{}/config/network-topology:"
                "network-topology/topology/topology-netconf/node/SPDR-SA1"
-              .format(self.restconf_baseurl))
+               .format(self.restconf_baseurl))
         data = {}
         headers = {'content-type': 'application/json'}
         response = requests.request(
@@ -295,7 +307,7 @@ class TransportPCEtesting(unittest.TestCase):
 
     def test_09_getClliNetwork(self):
         url = ("{}/config/ietf-network:networks/network/clli-network"
-              .format(self.restconf_baseurl))
+               .format(self.restconf_baseurl))
         headers = {'content-type': 'application/json'}
         response = requests.request(
             "GET", url, headers=headers, auth=('admin', 'admin'))
@@ -307,7 +319,7 @@ class TransportPCEtesting(unittest.TestCase):
 
     def test_10_getOpenRoadmNetwork(self):
         url = ("{}/config/ietf-network:networks/network/openroadm-network"
-              .format(self.restconf_baseurl))
+               .format(self.restconf_baseurl))
         headers = {'content-type': 'application/json'}
         response = requests.request(
             "GET", url, headers=headers, auth=('admin', 'admin'))
@@ -317,7 +329,7 @@ class TransportPCEtesting(unittest.TestCase):
 
     def test_11_getNodes_OpenRoadmTopology(self):
         url = ("{}/config/ietf-network:networks/network/openroadm-topology"
-              .format(self.restconf_baseurl))
+               .format(self.restconf_baseurl))
         headers = {'content-type': 'application/json'}
         response = requests.request(
             "GET", url, headers=headers, auth=('admin', 'admin'))
@@ -326,7 +338,7 @@ class TransportPCEtesting(unittest.TestCase):
 
     def test_12_getNodes_OtnTopology(self):
         url = ("{}/config/ietf-network:networks/network/otn-topology"
-              .format(self.restconf_baseurl))
+               .format(self.restconf_baseurl))
         headers = {'content-type': 'application/json'}
         response = requests.request(
             "GET", url, headers=headers, auth=('admin', 'admin'))