X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=tests%2Ftransportpce_tests%2F2.2.1%2Ftest_otn_topology.py;h=89a2eef03d9c298ec0e1f64e718df49b1b852a96;hb=f4d7679be9ffcc5ef14241cbfe9040c1c177b260;hp=4c1fb6e69a38f6aa4f5bafd304d85bfa5e2f401c;hpb=30434b53a9108db56e63f6743e149b8495a29b97;p=transportpce.git diff --git a/tests/transportpce_tests/2.2.1/test_otn_topology.py b/tests/transportpce_tests/2.2.1/test_otn_topology.py index 4c1fb6e69..89a2eef03 100644 --- a/tests/transportpce_tests/2.2.1/test_otn_topology.py +++ b/tests/transportpce_tests/2.2.1/test_otn_topology.py @@ -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'))