From: Guillaume Lambert Date: Fri, 17 Apr 2020 08:46:09 +0000 (+0200) Subject: improve functional tests pylint score X-Git-Tag: 1.1.0~19 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=dc7b349402cc6e568f3c8ef4e30cfc7a1e1a7ba4;p=transportpce.git improve functional tests pylint score - run autopep8 - fix some issues reported by pylint Signed-off-by: Guillaume Lambert Change-Id: I74d797d82dff3690d4c1a372d5a1510b66c1f610 --- diff --git a/tests/transportpce_tests/1.2.1/test_end2end.py b/tests/transportpce_tests/1.2.1/test_end2end.py index b5c7711fa..58dd332d3 100644 --- a/tests/transportpce_tests/1.2.1/test_end2end.py +++ b/tests/transportpce_tests/1.2.1/test_end2end.py @@ -95,13 +95,13 @@ class TransportPCEFulltesting(unittest.TestCase): "network-topology/topology/topology-netconf/node/XPDRA01" .format(self.restconf_baseurl)) data = {"node": [{ - "node-id": "XPDRA01", - "netconf-node-topology:username": "admin", - "netconf-node-topology:password": "admin", - "netconf-node-topology:host": "127.0.0.1", - "netconf-node-topology:port": "17830", - "netconf-node-topology:tcp-only": "false", - "netconf-node-topology:pass-through": {}}]} + "node-id": "XPDRA01", + "netconf-node-topology:username": "admin", + "netconf-node-topology:password": "admin", + "netconf-node-topology:host": "127.0.0.1", + "netconf-node-topology:port": "17830", + "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, @@ -114,13 +114,13 @@ class TransportPCEFulltesting(unittest.TestCase): "network-topology/topology/topology-netconf/node/XPDRC01" .format(self.restconf_baseurl)) data = {"node": [{ - "node-id": "XPDRC01", - "netconf-node-topology:username": "admin", - "netconf-node-topology:password": "admin", - "netconf-node-topology:host": "127.0.0.1", - "netconf-node-topology:port": "17834", - "netconf-node-topology:tcp-only": "false", - "netconf-node-topology:pass-through": {}}]} + "node-id": "XPDRC01", + "netconf-node-topology:username": "admin", + "netconf-node-topology:password": "admin", + "netconf-node-topology:host": "127.0.0.1", + "netconf-node-topology:port": "17834", + "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, @@ -133,13 +133,13 @@ class TransportPCEFulltesting(unittest.TestCase): "network-topology/topology/topology-netconf/node/ROADMA01" .format(self.restconf_baseurl)) data = {"node": [{ - "node-id": "ROADMA01", - "netconf-node-topology:username": "admin", - "netconf-node-topology:password": "admin", - "netconf-node-topology:host": "127.0.0.1", - "netconf-node-topology:port": "17821", - "netconf-node-topology:tcp-only": "false", - "netconf-node-topology:pass-through": {}}]} + "node-id": "ROADMA01", + "netconf-node-topology:username": "admin", + "netconf-node-topology:password": "admin", + "netconf-node-topology:host": "127.0.0.1", + "netconf-node-topology:port": "17821", + "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, @@ -152,13 +152,13 @@ class TransportPCEFulltesting(unittest.TestCase): "network-topology/topology/topology-netconf/node/ROADMC01" .format(self.restconf_baseurl)) data = {"node": [{ - "node-id": "ROADMC01", - "netconf-node-topology:username": "admin", - "netconf-node-topology:password": "admin", - "netconf-node-topology:host": "127.0.0.1", - "netconf-node-topology:port": "17823", - "netconf-node-topology:tcp-only": "false", - "netconf-node-topology:pass-through": {}}]} + "node-id": "ROADMC01", + "netconf-node-topology:username": "admin", + "netconf-node-topology:password": "admin", + "netconf-node-topology:host": "127.0.0.1", + "netconf-node-topology:port": "17823", + "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, @@ -170,16 +170,16 @@ class TransportPCEFulltesting(unittest.TestCase): url = "{}/operations/transportpce-networkutils:init-xpdr-rdm-links".\ format(self.restconf_baseurl) data = { - "networkutils:input": { - "networkutils:links-input": { - "networkutils:xpdr-node": "XPDRA01", - "networkutils:xpdr-num": "1", - "networkutils:network-num": "1", - "networkutils:rdm-node": "ROADMA01", - "networkutils:srg-num": "1", - "networkutils:termination-point-num": "SRG1-PP1-TXRX" + "networkutils:input": { + "networkutils:links-input": { + "networkutils:xpdr-node": "XPDRA01", + "networkutils:xpdr-num": "1", + "networkutils:network-num": "1", + "networkutils:rdm-node": "ROADMA01", + "networkutils:srg-num": "1", + "networkutils:termination-point-num": "SRG1-PP1-TXRX" + } } - } } headers = {'content-type': 'application/json'} response = requests.request( @@ -195,16 +195,16 @@ class TransportPCEFulltesting(unittest.TestCase): url = "{}/operations/transportpce-networkutils:init-rdm-xpdr-links".\ format(self.restconf_baseurl) data = { - "networkutils:input": { - "networkutils:links-input": { - "networkutils:xpdr-node": "XPDRA01", - "networkutils:xpdr-num": "1", - "networkutils:network-num": "1", - "networkutils:rdm-node": "ROADMA01", - "networkutils:srg-num": "1", - "networkutils:termination-point-num": "SRG1-PP1-TXRX" + "networkutils:input": { + "networkutils:links-input": { + "networkutils:xpdr-node": "XPDRA01", + "networkutils:xpdr-num": "1", + "networkutils:network-num": "1", + "networkutils:rdm-node": "ROADMA01", + "networkutils:srg-num": "1", + "networkutils:termination-point-num": "SRG1-PP1-TXRX" + } } - } } headers = {'content-type': 'application/json'} response = requests.request( @@ -220,16 +220,16 @@ class TransportPCEFulltesting(unittest.TestCase): url = "{}/operations/transportpce-networkutils:init-xpdr-rdm-links".\ format(self.restconf_baseurl) data = { - "networkutils:input": { - "networkutils:links-input": { - "networkutils:xpdr-node": "XPDRC01", - "networkutils:xpdr-num": "1", - "networkutils:network-num": "1", - "networkutils:rdm-node": "ROADMC01", - "networkutils:srg-num": "1", - "networkutils:termination-point-num": "SRG1-PP1-TXRX" + "networkutils:input": { + "networkutils:links-input": { + "networkutils:xpdr-node": "XPDRC01", + "networkutils:xpdr-num": "1", + "networkutils:network-num": "1", + "networkutils:rdm-node": "ROADMC01", + "networkutils:srg-num": "1", + "networkutils:termination-point-num": "SRG1-PP1-TXRX" + } } - } } headers = {'content-type': 'application/json'} response = requests.request( @@ -245,16 +245,16 @@ class TransportPCEFulltesting(unittest.TestCase): url = "{}/operations/transportpce-networkutils:init-rdm-xpdr-links".\ format(self.restconf_baseurl) data = { - "networkutils:input": { - "networkutils:links-input": { - "networkutils:xpdr-node": "XPDRC01", - "networkutils:xpdr-num": "1", - "networkutils:network-num": "1", - "networkutils:rdm-node": "ROADMC01", - "networkutils:srg-num": "1", - "networkutils:termination-point-num": "SRG1-PP1-TXRX" + "networkutils:input": { + "networkutils:links-input": { + "networkutils:xpdr-node": "XPDRC01", + "networkutils:xpdr-num": "1", + "networkutils:network-num": "1", + "networkutils:rdm-node": "ROADMC01", + "networkutils:srg-num": "1", + "networkutils:termination-point-num": "SRG1-PP1-TXRX" + } } - } } headers = {'content-type': 'application/json'} response = requests.request( @@ -269,12 +269,12 @@ class TransportPCEFulltesting(unittest.TestCase): def test_09_add_omsAttributes_ROADMA_ROADMC(self): # Config ROADMA-ROADMC oms-attributes url = ( - "{}/config/ietf-network:" - "networks/network/openroadm-topology/ietf-network-topology:" - "link/ROADMA01-DEG1-DEG1-TTP-TXRXtoROADMC01-DEG2-DEG2-TTP-TXRX/" - "org-openroadm-network-topology:" - "OMS-attributes/span" - .format(self.restconf_baseurl)) + "{}/config/ietf-network:" + "networks/network/openroadm-topology/ietf-network-topology:" + "link/ROADMA01-DEG1-DEG1-TTP-TXRXtoROADMC01-DEG2-DEG2-TTP-TXRX/" + "org-openroadm-network-topology:" + "OMS-attributes/span" + .format(self.restconf_baseurl)) data = {"span": { "clfi": "fiber1", "auto-spanloss": "true", @@ -295,23 +295,23 @@ class TransportPCEFulltesting(unittest.TestCase): def test_10_add_omsAttributes_ROADMC_ROADMA(self): # Config ROADMC-ROADMA oms-attributes url = ( - "{}/config/ietf-network:" - "networks/network/openroadm-topology/ietf-network-topology:" - "link/ROADMC01-DEG2-DEG2-TTP-TXRXtoROADMA01-DEG1-DEG1-TTP-TXRX/" - "org-openroadm-network-topology:" - "OMS-attributes/span" - .format(self.restconf_baseurl)) + "{}/config/ietf-network:" + "networks/network/openroadm-topology/ietf-network-topology:" + "link/ROADMC01-DEG2-DEG2-TTP-TXRXtoROADMA01-DEG1-DEG1-TTP-TXRX/" + "org-openroadm-network-topology:" + "OMS-attributes/span" + .format(self.restconf_baseurl)) data = {"span": { - "clfi": "fiber1", - "auto-spanloss": "true", - "spanloss-base": 11.4, - "spanloss-current": 12, - "engineered-spanloss": 12.2, - "link-concatenation": [{ - "SRLG-Id": 0, - "fiber-type": "smf", - "SRLG-length": 100000, - "pmd": 0.5}]}} + "clfi": "fiber1", + "auto-spanloss": "true", + "spanloss-base": 11.4, + "spanloss-current": 12, + "engineered-spanloss": 12.2, + "link-concatenation": [{ + "SRLG-Id": 0, + "fiber-type": "smf", + "SRLG-length": 100000, + "pmd": 0.5}]}} headers = {'content-type': 'application/json'} response = requests.request( "PUT", url, data=json.dumps(data), headers=headers, @@ -429,7 +429,7 @@ class TransportPCEFulltesting(unittest.TestCase): res = response.json() self.assertIn('PCE calculation in progress', res['output']['configuration-response-common'][ - 'response-message']) + 'response-message']) time.sleep(self.WAITING) def test_12_get_eth_service1(self): diff --git a/tests/transportpce_tests/1.2.1/test_gnpy.py b/tests/transportpce_tests/1.2.1/test_gnpy.py index 447d74cd5..6fbe52ffd 100644 --- a/tests/transportpce_tests/1.2.1/test_gnpy.py +++ b/tests/transportpce_tests/1.2.1/test_gnpy.py @@ -58,8 +58,8 @@ class TransportGNPYtesting(unittest.TestCase): body = clli_net.read() headers = {'content-type': 'application/json'} response = requests.request( - "PUT", url, data=body, headers=headers, - auth=('admin', 'admin')) + "PUT", url, data=body, headers=headers, + auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) time.sleep(3) @@ -72,8 +72,8 @@ class TransportGNPYtesting(unittest.TestCase): body = ord_net.read() headers = {'content-type': 'application/json'} response = requests.request( - "PUT", url, data=body, headers=headers, - auth=('admin', 'admin')) + "PUT", url, data=body, headers=headers, + auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) time.sleep(3) @@ -86,8 +86,8 @@ class TransportGNPYtesting(unittest.TestCase): body = ord_topo.read() headers = {'content-type': 'application/json'} response = requests.request( - "PUT", url, data=body, headers=headers, - auth=('admin', 'admin')) + "PUT", url, data=body, headers=headers, + auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) time.sleep(3) @@ -125,10 +125,10 @@ class TransportGNPYtesting(unittest.TestCase): self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertEqual(res['output']['configuration-response-common'][ - 'response-code'], '200') + 'response-code'], '200') self.assertEqual(res['output']['configuration-response-common'][ - 'response-message'], - 'Path is calculated by PCE') + 'response-message'], + 'Path is calculated by PCE') self.assertEqual(res['output']['gnpy-response'][0]['path-dir'], 'A-to-Z') self.assertEqual(res['output']['gnpy-response'][0]['feasibility'], True) @@ -196,10 +196,10 @@ class TransportGNPYtesting(unittest.TestCase): self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertEqual(res['output']['configuration-response-common'][ - 'response-code'], '500') + 'response-code'], '500') self.assertEqual(res['output']['configuration-response-common'][ - 'response-message'], - 'No path available by PCE and GNPy ') + 'response-message'], + 'No path available by PCE and GNPy ') self.assertEqual(res['output']['gnpy-response'][0]['path-dir'], 'A-to-Z') self.assertEqual(res['output']['gnpy-response'][0]['feasibility'], @@ -262,10 +262,10 @@ class TransportGNPYtesting(unittest.TestCase): self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertEqual(res['output']['configuration-response-common'][ - 'response-code'], '200') + 'response-code'], '200') self.assertEqual(res['output']['configuration-response-common'][ - 'response-message'], - 'Path is calculated by GNPy') + 'response-message'], + 'Path is calculated by GNPy') self.assertEqual(res['output']['gnpy-response'][0]['path-dir'], 'A-to-Z') self.assertEqual(res['output']['gnpy-response'][0]['feasibility'], True) @@ -338,10 +338,10 @@ class TransportGNPYtesting(unittest.TestCase): self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertEqual(res['output']['configuration-response-common'][ - 'response-code'], '500') + 'response-code'], '500') self.assertEqual(res['output']['configuration-response-common'][ - 'response-message'], - 'No path available by PCE and GNPy ') + 'response-message'], + 'No path available by PCE and GNPy ') time.sleep(5) # Disconnect the different topologies @@ -351,8 +351,8 @@ class TransportGNPYtesting(unittest.TestCase): data = {} headers = {'content-type': 'application/json'} response = requests.request( - "DELETE", url, data=json.dumps(data), headers=headers, - auth=('admin', 'admin')) + "DELETE", url, data=json.dumps(data), headers=headers, + auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) time.sleep(3) @@ -362,8 +362,8 @@ class TransportGNPYtesting(unittest.TestCase): data = {} headers = {'content-type': 'application/json'} response = requests.request( - "DELETE", url, data=json.dumps(data), headers=headers, - auth=('admin', 'admin')) + "DELETE", url, data=json.dumps(data), headers=headers, + auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) time.sleep(3) @@ -373,8 +373,8 @@ class TransportGNPYtesting(unittest.TestCase): data = {} headers = {'content-type': 'application/json'} response = requests.request( - "DELETE", url, data=json.dumps(data), headers=headers, - auth=('admin', 'admin')) + "DELETE", url, data=json.dumps(data), headers=headers, + auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) time.sleep(3) diff --git a/tests/transportpce_tests/1.2.1/test_olm.py b/tests/transportpce_tests/1.2.1/test_olm.py index 770af549b..b284f3d7d 100644 --- a/tests/transportpce_tests/1.2.1/test_olm.py +++ b/tests/transportpce_tests/1.2.1/test_olm.py @@ -31,31 +31,31 @@ class TransportOlmTesting(unittest.TestCase): odl_process = None restconf_baseurl = "http://localhost:8181/restconf" -#START_IGNORE_XTESTING +# START_IGNORE_XTESTING @classmethod def setUpClass(cls): - print ("starting honeynode1...") + print("starting honeynode1...") cls.honeynode_process1 = test_utils.start_xpdra_honeynode() time.sleep(20) - print ("starting honeynode2...") + print("starting honeynode2...") cls.honeynode_process2 = test_utils.start_roadma_full_honeynode() time.sleep(20) - print ("starting honeynode3...") + print("starting honeynode3...") cls.honeynode_process3 = test_utils.start_roadmc_full_honeynode() time.sleep(20) - print ("starting honeynode4...") + print("starting honeynode4...") cls.honeynode_process4 = test_utils.start_xpdrc_honeynode() time.sleep(20) - print ("all honeynodes started") + print("all honeynodes started") - print ("starting opendaylight...") + print("starting opendaylight...") cls.odl_process = test_utils.start_tpce() time.sleep(60) - print ("opendaylight started") + print("opendaylight started") @classmethod def tearDownClass(cls): @@ -86,15 +86,15 @@ class TransportOlmTesting(unittest.TestCase): cls.honeynode_process4.wait() def setUp(self): - print ("execution of {}".format(self.id().split(".")[-1])) + print("execution of {}".format(self.id().split(".")[-1])) time.sleep(1) -#END_IGNORE_XTESTING +# END_IGNORE_XTESTING def test_01_xpdrA_device_connected(self): url = ("{}/config/network-topology:" "network-topology/topology/topology-netconf/node/XPDRA01" - .format(self.restconf_baseurl)) + .format(self.restconf_baseurl)) data = {"node": [{ "node-id": "XPDRA01", "netconf-node-topology:username": "admin", @@ -113,7 +113,7 @@ class TransportOlmTesting(unittest.TestCase): def test_02_xpdrC_device_connected(self): url = ("{}/config/network-topology:" "network-topology/topology/topology-netconf/node/XPDRC01" - .format(self.restconf_baseurl)) + .format(self.restconf_baseurl)) data = {"node": [{ "node-id": "XPDRC01", "netconf-node-topology:username": "admin", @@ -134,17 +134,17 @@ class TransportOlmTesting(unittest.TestCase): "network-topology/topology/topology-netconf/node/ROADMA01" .format(self.restconf_baseurl)) data = {"node": [{ - "node-id": "ROADMA01", - "netconf-node-topology:username": "admin", - "netconf-node-topology:password": "admin", - "netconf-node-topology:host": "127.0.0.1", - "netconf-node-topology:port": "17821", - "netconf-node-topology:tcp-only": "false", - "netconf-node-topology:pass-through": {}}]} + "node-id": "ROADMA01", + "netconf-node-topology:username": "admin", + "netconf-node-topology:password": "admin", + "netconf-node-topology:host": "127.0.0.1", + "netconf-node-topology:port": "17821", + "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(20) @@ -153,17 +153,17 @@ class TransportOlmTesting(unittest.TestCase): "network-topology/topology/topology-netconf/node/ROADMC01" .format(self.restconf_baseurl)) data = {"node": [{ - "node-id": "ROADMC01", - "netconf-node-topology:username": "admin", - "netconf-node-topology:password": "admin", - "netconf-node-topology:host": "127.0.0.1", - "netconf-node-topology:port": "17823", - "netconf-node-topology:tcp-only": "false", - "netconf-node-topology:pass-through": {}}]} + "node-id": "ROADMC01", + "netconf-node-topology:username": "admin", + "netconf-node-topology:password": "admin", + "netconf-node-topology:host": "127.0.0.1", + "netconf-node-topology:port": "17823", + "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(20) @@ -183,8 +183,8 @@ class TransportOlmTesting(unittest.TestCase): } headers = {'content-type': 'application/json'} response = requests.request( - "POST", url, data=json.dumps(data), - headers=headers, auth=('admin', 'admin')) + "POST", url, data=json.dumps(data), + headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn('Xponder Roadm Link created successfully', res["output"]["result"]) @@ -205,8 +205,8 @@ class TransportOlmTesting(unittest.TestCase): } headers = {'content-type': 'application/json'} response = requests.request( - "POST", url, data=json.dumps(data), - headers=headers, auth=('admin', 'admin')) + "POST", url, data=json.dumps(data), + headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn('Roadm Xponder links created successfully', res["output"]["result"]) @@ -227,8 +227,8 @@ class TransportOlmTesting(unittest.TestCase): } headers = {'content-type': 'application/json'} response = requests.request( - "POST", url, data=json.dumps(data), - headers=headers, auth=('admin', 'admin')) + "POST", url, data=json.dumps(data), + headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn('Xponder Roadm Link created successfully', res["output"]["result"]) @@ -249,8 +249,8 @@ class TransportOlmTesting(unittest.TestCase): } headers = {'content-type': 'application/json'} response = requests.request( - "POST", url, data=json.dumps(data), - headers=headers, auth=('admin', 'admin')) + "POST", url, data=json.dumps(data), + headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn('Roadm Xponder links created successfully', res["output"]["result"]) @@ -258,15 +258,15 @@ class TransportOlmTesting(unittest.TestCase): def test_09_create_OTS_ROADMA(self): url = "{}/operations/transportpce-device-renderer:create-ots-oms".format(self.restconf_baseurl) data = { - "input" : { - "node-id" : "ROADMA01", - "logical-connection-point" : "DEG1-TTP-TXRX" + "input": { + "node-id": "ROADMA01", + "logical-connection-point": "DEG1-TTP-TXRX" } } headers = {'content-type': 'application/json'} response = requests.request( - "POST", url, data=json.dumps(data), - headers=headers, auth=('admin', 'admin')) + "POST", url, data=json.dumps(data), + headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn('Interfaces OTS-DEG1-TTP-TXRX - OMS-DEG1-TTP-TXRX successfully created on node ROADMA01', @@ -275,15 +275,15 @@ class TransportOlmTesting(unittest.TestCase): def test_10_create_OTS_ROADMC(self): url = "{}/operations/transportpce-device-renderer:create-ots-oms".format(self.restconf_baseurl) data = { - "input" : { - "node-id" : "ROADMC01", - "logical-connection-point" : "DEG2-TTP-TXRX" + "input": { + "node-id": "ROADMC01", + "logical-connection-point": "DEG2-TTP-TXRX" } } headers = {'content-type': 'application/json'} response = requests.request( - "POST", url, data=json.dumps(data), - headers=headers, auth=('admin', 'admin')) + "POST", url, data=json.dumps(data), + headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn('Interfaces OTS-DEG2-TTP-TXRX - OMS-DEG2-TTP-TXRX successfully created on node ROADMC01', @@ -297,28 +297,28 @@ class TransportOlmTesting(unittest.TestCase): "resource-type": "interface", "granularity": "15min", "resource-identifier": { - "resource-name" : "OTS-DEG1-TTP-TXRX" + "resource-name": "OTS-DEG1-TTP-TXRX" } } } headers = {'content-type': 'application/json'} response = requests.request( - "POST", url, data=json.dumps(data), - headers=headers, auth=('admin', 'admin')) + "POST", url, data=json.dumps(data), + headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn({ - "pmparameter-name": "OpticalPowerOutput", - "pmparameter-value": "2.5" - }, res["output"]["measurements"]) + "pmparameter-name": "OpticalPowerOutput", + "pmparameter-value": "2.5" + }, res["output"]["measurements"]) self.assertIn({ - "pmparameter-name": "OpticalReturnLoss", - "pmparameter-value": "49.9" - }, res["output"]["measurements"]) + "pmparameter-name": "OpticalReturnLoss", + "pmparameter-value": "49.9" + }, res["output"]["measurements"]) self.assertIn({ - "pmparameter-name": "OpticalPowerInput", - "pmparameter-value": "3" - }, res["output"]["measurements"]) + "pmparameter-name": "OpticalPowerInput", + "pmparameter-value": "3" + }, res["output"]["measurements"]) def test_12_get_PM_ROADMC(self): url = "{}/operations/transportpce-olm:get-pm".format(self.restconf_baseurl) @@ -328,28 +328,28 @@ class TransportOlmTesting(unittest.TestCase): "resource-type": "interface", "granularity": "15min", "resource-identifier": { - "resource-name" : "OTS-DEG2-TTP-TXRX" + "resource-name": "OTS-DEG2-TTP-TXRX" } } } headers = {'content-type': 'application/json'} response = requests.request( - "POST", url, data=json.dumps(data), - headers=headers, auth=('admin', 'admin')) + "POST", url, data=json.dumps(data), + headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn({ - "pmparameter-name": "OpticalPowerOutput", - "pmparameter-value": "18.1" - }, res["output"]["measurements"]) + "pmparameter-name": "OpticalPowerOutput", + "pmparameter-value": "18.1" + }, res["output"]["measurements"]) self.assertIn({ - "pmparameter-name": "OpticalReturnLoss", - "pmparameter-value": "48.8" - }, res["output"]["measurements"]) + "pmparameter-name": "OpticalReturnLoss", + "pmparameter-value": "48.8" + }, res["output"]["measurements"]) self.assertIn({ - "pmparameter-name": "OpticalPowerInput", - "pmparameter-value": "-3.2" - }, res["output"]["measurements"]) + "pmparameter-name": "OpticalPowerInput", + "pmparameter-value": "-3.2" + }, res["output"]["measurements"]) def test_13_calculate_span_loss_base_ROADMA_ROADMC(self): url = "{}/operations/transportpce-olm:calculate-spanloss-base".format(self.restconf_baseurl) @@ -361,16 +361,16 @@ class TransportOlmTesting(unittest.TestCase): } headers = {'content-type': 'application/json'} response = requests.request( - "POST", url, data=json.dumps(data), - headers=headers, auth=('admin', 'admin')) + "POST", url, data=json.dumps(data), + headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn('Success', res["output"]["result"]) self.assertIn({ "spanloss": "6", - "link-id": "ROADMA01-DEG1-DEG1-TTP-TXRXtoROADMC01-DEG2-DEG2-TTP-TXRX" - }, res["output"]["spans"]) + "link-id": "ROADMA01-DEG1-DEG1-TTP-TXRXtoROADMC01-DEG2-DEG2-TTP-TXRX" + }, res["output"]["spans"]) time.sleep(5) def test_14_calculate_span_loss_base_all(self): @@ -382,20 +382,20 @@ class TransportOlmTesting(unittest.TestCase): } headers = {'content-type': 'application/json'} response = requests.request( - "POST", url, data=json.dumps(data), - headers=headers, auth=('admin', 'admin')) + "POST", url, data=json.dumps(data), + headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn('Success', res["output"]["result"]) self.assertIn({ - "spanloss": "15", - "link-id": "ROADMC01-DEG2-DEG2-TTP-TXRXtoROADMA01-DEG1-DEG1-TTP-TXRX" - }, res["output"]["spans"]) + "spanloss": "15", + "link-id": "ROADMC01-DEG2-DEG2-TTP-TXRXtoROADMA01-DEG1-DEG1-TTP-TXRX" + }, res["output"]["spans"]) self.assertIn({ - "spanloss": "6", - "link-id": "ROADMA01-DEG1-DEG1-TTP-TXRXtoROADMC01-DEG2-DEG2-TTP-TXRX" - }, res["output"]["spans"]) + "spanloss": "6", + "link-id": "ROADMA01-DEG1-DEG1-TTP-TXRXtoROADMC01-DEG2-DEG2-TTP-TXRX" + }, res["output"]["spans"]) time.sleep(5) def test_15_get_OTS_DEG1_TTP_TXRX_ROADMA(self): @@ -456,12 +456,12 @@ class TransportOlmTesting(unittest.TestCase): } headers = {'content-type': 'application/json'} response = requests.request( - "POST", url, data=json.dumps(data), - headers=headers, auth=('admin', 'admin')) + "POST", url, data=json.dumps(data), + headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn('Roadm-connection successfully created for nodes', res["output"]["result"]) - #time.sleep(40) + # time.sleep(40) time.sleep(10) def test_18_servicePath_create_ZToA(self): @@ -498,12 +498,12 @@ class TransportOlmTesting(unittest.TestCase): } headers = {'content-type': 'application/json'} response = requests.request( - "POST", url, data=json.dumps(data), - headers=headers, auth=('admin', 'admin')) + "POST", url, data=json.dumps(data), + headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn('Roadm-connection successfully created for nodes', res["output"]["result"]) - #time.sleep(40) + # time.sleep(40) time.sleep(10) def test_19_service_power_setup_XPDRA_XPDRC(self): @@ -538,8 +538,8 @@ class TransportOlmTesting(unittest.TestCase): } headers = {'content-type': 'application/json'} response = requests.request( - "POST", url, data=json.dumps(data), - headers=headers, auth=('admin', 'admin')) + "POST", url, data=json.dumps(data), + headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn('Success', res["output"]["result"]) @@ -611,8 +611,8 @@ class TransportOlmTesting(unittest.TestCase): } headers = {'content-type': 'application/json'} response = requests.request( - "POST", url, data=json.dumps(data), - headers=headers, auth=('admin', 'admin')) + "POST", url, data=json.dumps(data), + headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn('Success', res["output"]["result"]) @@ -673,8 +673,8 @@ class TransportOlmTesting(unittest.TestCase): } headers = {'content-type': 'application/json'} response = requests.request( - "POST", url, data=json.dumps(data), - headers=headers, auth=('admin', 'admin')) + "POST", url, data=json.dumps(data), + headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn('Success', res["output"]["result"]) @@ -736,8 +736,8 @@ class TransportOlmTesting(unittest.TestCase): } headers = {'content-type': 'application/json'} response = requests.request( - "POST", url, data=json.dumps(data), - headers=headers, auth=('admin', 'admin')) + "POST", url, data=json.dumps(data), + headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn('Request processed', res["output"]["result"]) @@ -777,8 +777,8 @@ class TransportOlmTesting(unittest.TestCase): } headers = {'content-type': 'application/json'} response = requests.request( - "POST", url, data=json.dumps(data), - headers=headers, auth=('admin', 'admin')) + "POST", url, data=json.dumps(data), + headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn('Request processed', res["output"]["result"]) @@ -802,8 +802,8 @@ class TransportOlmTesting(unittest.TestCase): } headers = {'content-type': 'application/json'} response = requests.request( - "POST", url, data=json.dumps(data), - headers=headers, auth=('admin', 'admin')) + "POST", url, data=json.dumps(data), + headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn('Xponder Roadm Link created successfully', res["output"]["result"]) @@ -824,8 +824,8 @@ class TransportOlmTesting(unittest.TestCase): } headers = {'content-type': 'application/json'} response = requests.request( - "POST", url, data=json.dumps(data), - headers=headers, auth=('admin', 'admin')) + "POST", url, data=json.dumps(data), + headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn('Roadm Xponder links created successfully', res["output"]["result"]) @@ -854,12 +854,12 @@ class TransportOlmTesting(unittest.TestCase): } headers = {'content-type': 'application/json'} response = requests.request( - "POST", url, data=json.dumps(data), - headers=headers, auth=('admin', 'admin')) + "POST", url, data=json.dumps(data), + headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn('Roadm-connection successfully created for nodes', res["output"]["result"]) - #time.sleep(40) + # time.sleep(40) time.sleep(10) def test_34_get_interface_XPDRA_XPDR1_NETWORK2(self): @@ -898,8 +898,8 @@ class TransportOlmTesting(unittest.TestCase): } headers = {'content-type': 'application/json'} response = requests.request( - "POST", url, data=json.dumps(data), - headers=headers, auth=('admin', 'admin')) + "POST", url, data=json.dumps(data), + headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn('Request processed', res["output"]["result"]) @@ -907,23 +907,23 @@ class TransportOlmTesting(unittest.TestCase): def test_36_xpdrA_device_disconnected(self): url = ("{}/config/network-topology:" - "network-topology/topology/topology-netconf/node/XPDRA01" + "network-topology/topology/topology-netconf/node/XPDRA01" .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "DELETE", url, headers=headers, - auth=('admin', 'admin')) + "DELETE", url, headers=headers, + auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) time.sleep(10) def test_37_xpdrC_device_disconnected(self): url = ("{}/config/network-topology:" - "network-topology/topology/topology-netconf/node/XPDRC01" + "network-topology/topology/topology-netconf/node/XPDRC01" .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "DELETE", url, headers=headers, - auth=('admin', 'admin')) + "DELETE", url, headers=headers, + auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) time.sleep(10) @@ -931,7 +931,7 @@ class TransportOlmTesting(unittest.TestCase): url = "{}/operations/transportpce-olm:calculate-spanloss-current".format(self.restconf_baseurl) headers = {'content-type': 'application/json'} response = requests.request( - "POST", url, headers=headers, auth=('admin', 'admin')) + "POST", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn('Success', @@ -940,25 +940,26 @@ class TransportOlmTesting(unittest.TestCase): def test_39_rdmA_device_disconnected(self): url = ("{}/config/network-topology:" - "network-topology/topology/topology-netconf/node/ROADMA01" + "network-topology/topology/topology-netconf/node/ROADMA01" .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "DELETE", url, headers=headers, - auth=('admin', 'admin')) + "DELETE", url, headers=headers, + auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) time.sleep(10) def test_40_rdmC_device_disconnected(self): url = ("{}/config/network-topology:" - "network-topology/topology/topology-netconf/node/ROADMC01" + "network-topology/topology/topology-netconf/node/ROADMC01" .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "DELETE", url, headers=headers, - auth=('admin', 'admin')) + "DELETE", url, headers=headers, + auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) time.sleep(10) + if __name__ == "__main__": unittest.main(verbosity=2) diff --git a/tests/transportpce_tests/1.2.1/test_pce.py b/tests/transportpce_tests/1.2.1/test_pce.py index 2cad24181..84d2e37ac 100644 --- a/tests/transportpce_tests/1.2.1/test_pce.py +++ b/tests/transportpce_tests/1.2.1/test_pce.py @@ -33,23 +33,23 @@ class TransportPCEtesting(unittest.TestCase): topo_bi_dir_file = "sample_configs/honeynode-topo.xml" if os.path.isfile(topo_bi_dir_file): with open(topo_bi_dir_file, 'r') as topo_bi_dir: - cls.simple_topo_bi_dir_data = topo_bi_dir.read(); + cls.simple_topo_bi_dir_data = topo_bi_dir.read() topo_uni_dir_file = "sample_configs/NW-simple-topology.xml" if os.path.isfile(topo_uni_dir_file): with open(topo_uni_dir_file, 'r') as topo_uni_dir: - cls.simple_topo_uni_dir_data = topo_uni_dir.read(); + cls.simple_topo_uni_dir_data = topo_uni_dir.read() topo_uni_dir_complex_file = "sample_configs/NW-for-test-5-4.xml" if os.path.isfile(topo_uni_dir_complex_file): with open(topo_uni_dir_complex_file, 'r') as topo_uni_dir_complex: - cls.complex_topo_uni_dir_data = topo_uni_dir_complex.read(); + cls.complex_topo_uni_dir_data = topo_uni_dir_complex.read() @classmethod def setUpClass(cls): # a class method called before tests in an individual class run. cls._get_file() - print ("starting opendaylight...") + print("starting opendaylight...") cls.odl_process = test_utils.start_tpce() time.sleep(90) - print ("opendaylight started") + print("opendaylight started") @classmethod def tearDownClass(cls): @@ -65,10 +65,10 @@ class TransportPCEtesting(unittest.TestCase): # Load simple bidirectional topology def test_01_load_simple_topology_bi(self): url = ("{}/config/ietf-network:networks/network/openroadm-topology" - .format(self.restconf_baseurl)) + .format(self.restconf_baseurl)) body = self.simple_topo_bi_dir_data headers = {'content-type': 'application/xml', - "Accept": "application/xml"} + "Accept": "application/xml"} response = requests.request( "PUT", url, data=body, headers=headers, auth=('admin', 'admin')) @@ -78,9 +78,9 @@ class TransportPCEtesting(unittest.TestCase): # Get existing nodeId def test_02_get_nodeId(self): url = ("{}/config/ietf-network:networks/network/openroadm-topology/node/ROADMA01-SRG1" - .format(self.restconf_baseurl)) + .format(self.restconf_baseurl)) headers = {'content-type': 'application/json', - "Accept": "application/json"} + "Accept": "application/json"} response = requests.request( "GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) @@ -92,9 +92,9 @@ class TransportPCEtesting(unittest.TestCase): # Get existing linkId def test_03_get_linkId(self): url = ("{}/config/ietf-network:networks/network/openroadm-topology/link/XPDRA01-XPDR1-XPDR1-NETWORK1toROADMA01-SRG1-SRG1-PP1-TXRX" - .format(self.restconf_baseurl)) + .format(self.restconf_baseurl)) headers = {'content-type': 'application/json', - "Accept": "application/json"} + "Accept": "application/json"} response = requests.request( "GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) @@ -107,7 +107,7 @@ class TransportPCEtesting(unittest.TestCase): # Path Computation success def test_04_path_computation_xpdr_bi(self): url = ("{}/operations/transportpce-pce:path-computation-request" - .format(self.restconf_baseurl)) + .format(self.restconf_baseurl)) body = {"input": { "service-name": "service-1", "resource-reserve": "true", @@ -127,23 +127,23 @@ class TransportPCEtesting(unittest.TestCase): "service-format": "Ethernet", "clli": "nodeC" } - } - } + } + } headers = {'content-type': 'application/json', - "Accept": "application/json"} + "Accept": "application/json"} response = requests.request( "POST", url, data=json.dumps(body), headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn('Path is calculated', - res['output']['configuration-response-common']['response-message']) + res['output']['configuration-response-common']['response-message']) time.sleep(5) # Path Computation success def test_05_path_computation_rdm_bi(self): url = ("{}/operations/transportpce-pce:path-computation-request" - .format(self.restconf_baseurl)) + .format(self.restconf_baseurl)) body = {"input": { "service-name": "service-1", "resource-reserve": "true", @@ -163,25 +163,25 @@ class TransportPCEtesting(unittest.TestCase): "service-format": "Ethernet", "clli": "NodeC" } - } - } + } + } headers = {'content-type': 'application/json', - "Accept": "application/json"} + "Accept": "application/json"} response = requests.request( "POST", url, data=json.dumps(body), headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn('Path is calculated', - res['output']['configuration-response-common']['response-message']) + res['output']['configuration-response-common']['response-message']) time.sleep(5) # Delete topology def test_06_delete_simple_topology_bi(self): url = ("{}/config/ietf-network:networks/network/openroadm-topology" - .format(self.restconf_baseurl)) + .format(self.restconf_baseurl)) headers = {'content-type': 'application/xml', - "Accept": "application/json"} + "Accept": "application/json"} response = requests.request( "DELETE", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) @@ -190,9 +190,9 @@ class TransportPCEtesting(unittest.TestCase): # Test deleted topology def test_07_test_topology_simple_bi_deleted(self): url = ("{}/config/ietf-network:networks/network/openroadm-topology/node/ROADMA01-SRG1" - .format(self.restconf_baseurl)) + .format(self.restconf_baseurl)) headers = {'content-type': 'application/json', - "Accept": "application/json"} + "Accept": "application/json"} response = requests.request( "GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, 404) @@ -201,10 +201,10 @@ class TransportPCEtesting(unittest.TestCase): # Load simple bidirectional topology def test_08_load_simple_topology_uni(self): url = ("{}/config/ietf-network:networks/network/openroadm-topology" - .format(self.restconf_baseurl)) + .format(self.restconf_baseurl)) body = self.simple_topo_uni_dir_data headers = {'content-type': 'application/xml', - "Accept": "application/xml"} + "Accept": "application/xml"} response = requests.request( "PUT", url, data=body, headers=headers, auth=('admin', 'admin')) @@ -214,9 +214,9 @@ class TransportPCEtesting(unittest.TestCase): # Get existing nodeId def test_09_get_nodeId(self): url = ("{}/config/ietf-network:networks/network/openroadm-topology/node/XPONDER-1-2" - .format(self.restconf_baseurl)) + .format(self.restconf_baseurl)) headers = {'content-type': 'application/json', - "Accept": "application/json"} + "Accept": "application/json"} response = requests.request( "GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) @@ -229,9 +229,9 @@ class TransportPCEtesting(unittest.TestCase): # Get existing linkId def test_10_get_linkId(self): url = ("{}/config/ietf-network:networks/network/openroadm-topology/link/XPONDER-1-2XPDR-NW1-TX-toOpenROADM-1-2-SRG1-SRG1-PP1-RX" - .format(self.restconf_baseurl)) + .format(self.restconf_baseurl)) headers = {'content-type': 'application/json', - "Accept": "application/json"} + "Accept": "application/json"} response = requests.request( "GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) @@ -244,7 +244,7 @@ class TransportPCEtesting(unittest.TestCase): # Path Computation success def test_11_path_computation_xpdr_uni(self): url = ("{}/operations/transportpce-pce:path-computation-request" - .format(self.restconf_baseurl)) + .format(self.restconf_baseurl)) body = {"input": { "service-name": "service-1", "resource-reserve": "true", @@ -264,59 +264,59 @@ class TransportPCEtesting(unittest.TestCase): "service-format": "Ethernet", "clli": "ORANGE3" } - } - } + } + } headers = {'content-type': 'application/json', - "Accept": "application/json"} + "Accept": "application/json"} response = requests.request( "POST", url, data=json.dumps(body), headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn('Path is calculated', - res['output']['configuration-response-common']['response-message']) + res['output']['configuration-response-common']['response-message']) time.sleep(5) # Path Computation success def test_12_path_computation_rdm_uni(self): url = ("{}/operations/transportpce-pce:path-computation-request" - .format(self.restconf_baseurl)) + .format(self.restconf_baseurl)) body = {"input": { "service-name": "service1", "resource-reserve": "true", "service-handler-header": { - "request-id": "request1" + "request-id": "request1" }, "service-a-end": { - "service-rate": "100", - "service-format": "Ethernet", - "clli": "cll21", - "node-id": "OpenROADM-2-1" + "service-rate": "100", + "service-format": "Ethernet", + "clli": "cll21", + "node-id": "OpenROADM-2-1" }, "service-z-end": { - "service-rate": "100", - "service-format": "Ethernet", - "clli": "ncli22", - "node-id": "OpenROADM-2-2" - }, + "service-rate": "100", + "service-format": "Ethernet", + "clli": "ncli22", + "node-id": "OpenROADM-2-2" + }, "pce-metric": "hop-count" - } - } + } + } headers = {'content-type': 'application/json', - "Accept": "application/json"} + "Accept": "application/json"} response = requests.request( "POST", url, data=json.dumps(body), headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn('Path is calculated', - res['output']['configuration-response-common']['response-message']) - #ZtoA path test + res['output']['configuration-response-common']['response-message']) + # ZtoA path test atozList = len(res['output']['response-parameters']['path-description']['aToZ-direction']['aToZ']) ztoaList = len(res['output']['response-parameters']['path-description']['zToA-direction']['zToA']) - self.assertEqual(atozList,15) - self.assertEqual(ztoaList,15) - for i in range(0,15): + self.assertEqual(atozList, 15) + self.assertEqual(ztoaList, 15) + for i in range(0, 15): atoz = res['output']['response-parameters']['path-description']['aToZ-direction']['aToZ'][i] ztoa = res['output']['response-parameters']['path-description']['zToA-direction']['zToA'][i] if (atoz['id'] == '14'): @@ -328,9 +328,9 @@ class TransportPCEtesting(unittest.TestCase): # Delete topology def test_13_delete_simple_topology(self): url = ("{}/config/ietf-network:networks/network/openroadm-topology" - .format(self.restconf_baseurl)) + .format(self.restconf_baseurl)) headers = {'content-type': 'application/xml', - "Accept": "application/json"} + "Accept": "application/json"} response = requests.request( "DELETE", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) @@ -339,9 +339,9 @@ class TransportPCEtesting(unittest.TestCase): # Test deleted topology def test_14_test_topology_simple_deleted(self): url = ("{}/config/ietf-network:networks/network/openroadm-topology/node/XPONDER-1-2" - .format(self.restconf_baseurl)) + .format(self.restconf_baseurl)) headers = {'content-type': 'application/json', - "Accept": "application/json"} + "Accept": "application/json"} response = requests.request( "GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, 404) @@ -350,10 +350,10 @@ class TransportPCEtesting(unittest.TestCase): # Load simple topology def test_15_load_complex_topology(self): url = ("{}/config/ietf-network:networks/network/openroadm-topology" - .format(self.restconf_baseurl)) + .format(self.restconf_baseurl)) body = self.complex_topo_uni_dir_data headers = {'content-type': 'application/xml', - "Accept": "application/json"} + "Accept": "application/json"} response = requests.request( "PUT", url, data=body, headers=headers, auth=('admin', 'admin')) @@ -363,9 +363,9 @@ class TransportPCEtesting(unittest.TestCase): # Get existing nodeId def test_16_get_nodeId(self): url = ("{}/config/ietf-network:networks/network/openroadm-topology/node/XPONDER-3-2" - .format(self.restconf_baseurl)) + .format(self.restconf_baseurl)) headers = {'content-type': 'application/json', - "Accept": "application/json"} + "Accept": "application/json"} response = requests.request( "GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) @@ -378,129 +378,129 @@ class TransportPCEtesting(unittest.TestCase): # Test failed path computation def test_17_fail_path_computation(self): url = ("{}/operations/transportpce-pce:path-computation-request" - .format(self.restconf_baseurl)) + .format(self.restconf_baseurl)) body = {"input": { "service-handler-header": { "request-id": "request-1" } - } - } + } + } headers = {'content-type': 'application/json', - "Accept": "application/json"} + "Accept": "application/json"} response = requests.request( "POST", url, data=json.dumps(body), headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn('Service Name is not set', - res['output']['configuration-response-common']['response-message']) + res['output']['configuration-response-common']['response-message']) time.sleep(2) # Test1 success path computation def test_18_success1_path_computation(self): url = ("{}/operations/transportpce-pce:path-computation-request" - .format(self.restconf_baseurl)) + .format(self.restconf_baseurl)) body = {"input": { "service-name": "service1", "resource-reserve": "true", "service-handler-header": { - "request-id": "request1" + "request-id": "request1" }, "service-a-end": { - "service-format": "Ethernet", - "service-rate": "100", - "clli": "ORANGE2", - "node-id": "XPONDER-2-2", - "tx-direction": { - "port": { - "port-device-name": "Some port-device-name", - "port-type": "Some port-type", - "port-name": "Some port-name", - "port-rack": "Some port-rack", - "port-shelf": "Some port-shelf", - "port-slot": "Some port-slot", - "port-sub-slot": "Some port-sub-slot" - } - }, - "rx-direction": { - "port": { - "port-device-name": "Some port-device-name", - "port-type": "Some port-type", - "port-name": "Some port-name", - "port-rack": "Some port-rack", - "port-shelf": "Some port-shelf", - "port-slot": "Some port-slot", - "port-sub-slot": "Some port-sub-slot" + "service-format": "Ethernet", + "service-rate": "100", + "clli": "ORANGE2", + "node-id": "XPONDER-2-2", + "tx-direction": { + "port": { + "port-device-name": "Some port-device-name", + "port-type": "Some port-type", + "port-name": "Some port-name", + "port-rack": "Some port-rack", + "port-shelf": "Some port-shelf", + "port-slot": "Some port-slot", + "port-sub-slot": "Some port-sub-slot" + } + }, + "rx-direction": { + "port": { + "port-device-name": "Some port-device-name", + "port-type": "Some port-type", + "port-name": "Some port-name", + "port-rack": "Some port-rack", + "port-shelf": "Some port-shelf", + "port-slot": "Some port-slot", + "port-sub-slot": "Some port-sub-slot" + } } - } }, "service-z-end": { - "service-format": "Ethernet", - "service-rate": "100", - "clli": "ORANGE1", - "node-id": "XPONDER-1-2", - "tx-direction": { - "port": { - "port-device-name": "Some port-device-name", - "port-type": "Some port-type", - "port-name": "Some port-name", - "port-rack": "Some port-rack", - "port-shelf": "Some port-shelf", - "port-slot": "Some port-slot", - "port-sub-slot": "Some port-sub-slot" - } - }, - "rx-direction": { - "port": { - "port-device-name": "Some port-device-name", - "port-type": "Some port-type", - "port-name": "Some port-name", - "port-rack": "Some port-rack", - "port-shelf": "Some port-shelf", - "port-slot": "Some port-slot", - "port-sub-slot": "Some port-sub-slot" + "service-format": "Ethernet", + "service-rate": "100", + "clli": "ORANGE1", + "node-id": "XPONDER-1-2", + "tx-direction": { + "port": { + "port-device-name": "Some port-device-name", + "port-type": "Some port-type", + "port-name": "Some port-name", + "port-rack": "Some port-rack", + "port-shelf": "Some port-shelf", + "port-slot": "Some port-slot", + "port-sub-slot": "Some port-sub-slot" + } + }, + "rx-direction": { + "port": { + "port-device-name": "Some port-device-name", + "port-type": "Some port-type", + "port-name": "Some port-name", + "port-rack": "Some port-rack", + "port-shelf": "Some port-shelf", + "port-slot": "Some port-slot", + "port-sub-slot": "Some port-sub-slot" + } } - } }, "hard-constraints": { - "customer-code": [ - "Some customer-code" - ], - "co-routing": { - "existing-service": [ - "Some existing-service" - ] - } + "customer-code": [ + "Some customer-code" + ], + "co-routing": { + "existing-service": [ + "Some existing-service" + ] + } }, "soft-constraints": { - "customer-code": [ - "Some customer-code" - ], - "co-routing": { - "existing-service": [ - "Some existing-service" - ] - } + "customer-code": [ + "Some customer-code" + ], + "co-routing": { + "existing-service": [ + "Some existing-service" + ] + } }, "pce-metric": "hop-count", "locally-protected-links": "true" - } - } + } + } headers = {'content-type': 'application/json', - "Accept": "application/json"} + "Accept": "application/json"} response = requests.request( "POST", url, data=json.dumps(body), headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn('Path is calculated', - res['output']['configuration-response-common']['response-message']) + res['output']['configuration-response-common']['response-message']) time.sleep(5) # Test2 success path computation with path description def test_19_success2_path_computation(self): url = ("{}/operations/transportpce-pce:path-computation-request" - .format(self.restconf_baseurl)) + .format(self.restconf_baseurl)) body = {"input": { "service-name": "service 1", "resource-reserve": "true", @@ -518,29 +518,29 @@ class TransportPCEtesting(unittest.TestCase): "service-format": "Ethernet", "node-id": "XPONDER-3-2", "clli": "ORANGE3" - }, - "pce-metric": "hop-count" - } - } + }, + "pce-metric": "hop-count" + } + } headers = {'content-type': 'application/json', - "Accept": "application/json"} + "Accept": "application/json"} response = requests.request( "POST", url, data=json.dumps(body), headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn('Path is calculated', - res['output']['configuration-response-common']['response-message']) - self.assertEqual(5 , res['output']['response-parameters']['path-description'] - ['aToZ-direction']['aToZ-wavelength-number']) - self.assertEqual(5 , res['output']['response-parameters']['path-description'] - ['zToA-direction']['zToA-wavelength-number']) + res['output']['configuration-response-common']['response-message']) + self.assertEqual(5, res['output']['response-parameters']['path-description'] + ['aToZ-direction']['aToZ-wavelength-number']) + self.assertEqual(5, res['output']['response-parameters']['path-description'] + ['zToA-direction']['zToA-wavelength-number']) time.sleep(5) # Test3 success path computation with hard-constraints exclude def test_20_success3_path_computation(self): url = ("{}/operations/transportpce-pce:path-computation-request" - .format(self.restconf_baseurl)) + .format(self.restconf_baseurl)) body = {"input": { "service-name": "service 1", "resource-reserve": "true", @@ -565,29 +565,29 @@ class TransportPCEtesting(unittest.TestCase): } }, "pce-metric": "hop-count" - } - } + } + } headers = {'content-type': 'application/json', - "Accept": "application/json"} + "Accept": "application/json"} response = requests.request( "POST", url, data=json.dumps(body), headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn('Path is calculated', - res['output']['configuration-response-common']['response-message']) - self.assertEqual(9 , res['output']['response-parameters']['path-description'] - ['aToZ-direction']['aToZ-wavelength-number']) - self.assertEqual(9 , res['output']['response-parameters']['path-description'] - ['zToA-direction']['zToA-wavelength-number']) + res['output']['configuration-response-common']['response-message']) + self.assertEqual(9, res['output']['response-parameters']['path-description'] + ['aToZ-direction']['aToZ-wavelength-number']) + self.assertEqual(9, res['output']['response-parameters']['path-description'] + ['zToA-direction']['zToA-wavelength-number']) time.sleep(5) # Delete complex topology def test_21_delete_complex_topology(self): url = ("{}/config/ietf-network:networks/network/openroadm-topology" - .format(self.restconf_baseurl)) + .format(self.restconf_baseurl)) headers = {'content-type': 'application/xml', - "Accept": "application/json"} + "Accept": "application/json"} response = requests.request( "DELETE", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) @@ -596,9 +596,9 @@ class TransportPCEtesting(unittest.TestCase): # Test deleted complex topology def test_22_test_topology_complex_deleted(self): url = ("{}/config/ietf-network:networks/network/openroadm-topology/node/XPONDER-3-2" - .format(self.restconf_baseurl)) + .format(self.restconf_baseurl)) headers = {'content-type': 'application/json', - "Accept": "application/json"} + "Accept": "application/json"} response = requests.request( "GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, 404) diff --git a/tests/transportpce_tests/1.2.1/test_portmapping.py b/tests/transportpce_tests/1.2.1/test_portmapping.py index 424e6f7d6..91f82770c 100644 --- a/tests/transportpce_tests/1.2.1/test_portmapping.py +++ b/tests/transportpce_tests/1.2.1/test_portmapping.py @@ -10,14 +10,11 @@ ############################################################################## import json -import os -import psutil -import requests import signal -import shutil -import subprocess -import time import unittest +import time +import requests +import psutil import test_utils @@ -28,22 +25,22 @@ class TransportPCEPortMappingTesting(unittest.TestCase): odl_process = None restconf_baseurl = "http://localhost:8181/restconf" -#START_IGNORE_XTESTING +# START_IGNORE_XTESTING @classmethod def setUpClass(cls): - print ("starting honeynode1...") + print("starting honeynode1...") cls.honeynode_process1 = test_utils.start_xpdra_honeynode() time.sleep(20) - print ("starting honeynode2...") + print("starting honeynode2...") cls.honeynode_process2 = test_utils.start_roadma_honeynode() time.sleep(20) - print ("starting opendaylight...") + print("starting opendaylight...") cls.odl_process = test_utils.start_tpce() time.sleep(60) - print ("opendaylight started") + print("opendaylight started") @classmethod def tearDownClass(cls): @@ -64,10 +61,10 @@ class TransportPCEPortMappingTesting(unittest.TestCase): cls.honeynode_process2.wait() def setUp(self): - print ("execution of {}".format(self.id().split(".")[-1])) + print("execution of {}".format(self.id().split(".")[-1])) time.sleep(10) -#END_IGNORE_XTESTING +# END_IGNORE_XTESTING # def test_01_restconfAPI(self): # url = ("{}/operational/network-topology:network-topology/topology/" @@ -88,13 +85,13 @@ class TransportPCEPortMappingTesting(unittest.TestCase): # res = response.json() # self.assertIn( # {"error-type":"application", "error-tag":"data-missing", -# "error-message":"Request could not be completed because the relevant data model content does not exist "}, +# "error-message":"Request could not be completed because the relevant data model content does not exist "}, # res['errors']['error']) def test_01_rdm_device_connected(self): url = ("{}/config/network-topology:" "network-topology/topology/topology-netconf/node/ROADMA01" - .format(self.restconf_baseurl)) + .format(self.restconf_baseurl)) data = {"node": [{ "node-id": "ROADMA01", "netconf-node-topology:username": "admin", @@ -135,10 +132,10 @@ class TransportPCEPortMappingTesting(unittest.TestCase): res = response.json() self.assertEqual( {u'node-info': {u'node-type': u'rdm', - u'node-ip-address': u'127.0.0.12', - u'node-clli': u'NodeA', - u'openroadm-version': u'1.2.1', u'node-vendor': u'vendorA', - u'node-model': u'2'}}, + u'node-ip-address': u'127.0.0.12', + u'node-clli': u'NodeA', + u'openroadm-version': u'1.2.1', u'node-vendor': u'vendorA', + u'node-model': u'2'}}, res) time.sleep(3) @@ -187,7 +184,7 @@ class TransportPCEPortMappingTesting(unittest.TestCase): def test_07_xpdr_device_connected(self): url = ("{}/config/network-topology:" "network-topology/topology/topology-netconf/node/XPDRA01" - .format(self.restconf_baseurl)) + .format(self.restconf_baseurl)) data = {"node": [{ "node-id": "XPDRA01", "netconf-node-topology:username": "admin", @@ -228,10 +225,10 @@ class TransportPCEPortMappingTesting(unittest.TestCase): res = response.json() self.assertEqual( {u'node-info': {u'node-type': u'xpdr', - u'node-ip-address': u'127.0.0.10', - u'node-clli': u'NodeA', - u'openroadm-version': u'1.2.1', u'node-vendor': u'vendorA', - u'node-model': u'1'}}, + u'node-ip-address': u'127.0.0.10', + u'node-clli': u'NodeA', + u'openroadm-version': u'1.2.1', u'node-vendor': u'vendorA', + u'node-model': u'1'}}, res) time.sleep(3) @@ -332,12 +329,12 @@ class TransportPCEPortMappingTesting(unittest.TestCase): def test_16_xpdr_device_disconnected(self): url = ("{}/config/network-topology:" - "network-topology/topology/topology-netconf/node/XPDRA01" + "network-topology/topology/topology-netconf/node/XPDRA01" .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "DELETE", url, headers=headers, - auth=('admin', 'admin')) + "DELETE", url, headers=headers, + auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) time.sleep(20) @@ -350,8 +347,8 @@ class TransportPCEPortMappingTesting(unittest.TestCase): self.assertEqual(response.status_code, requests.codes.not_found) res = response.json() self.assertIn( - {"error-type":"application", "error-tag":"data-missing", - "error-message":"Request could not be completed because the relevant data model content does not exist"}, + {"error-type": "application", "error-tag": "data-missing", + "error-message": "Request could not be completed because the relevant data model content does not exist"}, res['errors']['error']) def test_18_xpdr_device_disconnected(self): @@ -362,8 +359,8 @@ class TransportPCEPortMappingTesting(unittest.TestCase): self.assertEqual(response.status_code, requests.codes.not_found) res = response.json() self.assertIn( - {"error-type":"application", "error-tag":"data-missing", - "error-message":"Request could not be completed because the relevant data model content does not exist"}, + {"error-type": "application", "error-tag": "data-missing", + "error-message": "Request could not be completed because the relevant data model content does not exist"}, res['errors']['error']) def test_19_rdm_device_disconnected(self): @@ -371,8 +368,8 @@ class TransportPCEPortMappingTesting(unittest.TestCase): .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "DELETE", url, headers=headers, - auth=('admin', 'admin')) + "DELETE", url, headers=headers, + auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) time.sleep(20) @@ -385,8 +382,8 @@ class TransportPCEPortMappingTesting(unittest.TestCase): self.assertEqual(response.status_code, requests.codes.not_found) res = response.json() self.assertIn( - {"error-type":"application", "error-tag":"data-missing", - "error-message":"Request could not be completed because the relevant data model content does not exist"}, + {"error-type": "application", "error-tag": "data-missing", + "error-message": "Request could not be completed because the relevant data model content does not exist"}, res['errors']['error']) def test_21_rdm_device_disconnected(self): @@ -397,8 +394,8 @@ class TransportPCEPortMappingTesting(unittest.TestCase): self.assertEqual(response.status_code, requests.codes.not_found) res = response.json() self.assertIn( - {"error-type":"application", "error-tag":"data-missing", - "error-message":"Request could not be completed because the relevant data model content does not exist"}, + {"error-type": "application", "error-tag": "data-missing", + "error-message": "Request could not be completed because the relevant data model content does not exist"}, res['errors']['error']) diff --git a/tests/transportpce_tests/1.2.1/test_renderer_service_path_nominal.py b/tests/transportpce_tests/1.2.1/test_renderer_service_path_nominal.py index 807cbde8c..9533a64f3 100644 --- a/tests/transportpce_tests/1.2.1/test_renderer_service_path_nominal.py +++ b/tests/transportpce_tests/1.2.1/test_renderer_service_path_nominal.py @@ -29,22 +29,22 @@ class TransportPCERendererTesting(unittest.TestCase): odl_process = None restconf_baseurl = "http://localhost:8181/restconf" -#START_IGNORE_XTESTING +# START_IGNORE_XTESTING @classmethod def setUpClass(cls): - print ("starting honeynode1...") + print("starting honeynode1...") cls.honeynode_process1 = test_utils.start_xpdra_honeynode() time.sleep(20) - print ("starting honeynode2...") + print("starting honeynode2...") cls.honeynode_process2 = test_utils.start_roadma_honeynode() time.sleep(20) - print ("starting opendaylight...") + print("starting opendaylight...") cls.odl_process = test_utils.start_tpce() time.sleep(60) - print ("opendaylight started") + print("opendaylight started") @classmethod def tearDownClass(cls): @@ -65,34 +65,34 @@ class TransportPCERendererTesting(unittest.TestCase): cls.honeynode_process2.wait() def setUp(self): - print ("execution of {}".format(self.id().split(".")[-1])) + print("execution of {}".format(self.id().split(".")[-1])) time.sleep(10) -#END_IGNORE_XTESTING +# END_IGNORE_XTESTING def test_01_rdm_device_connected(self): url = ("{}/config/network-topology:" "network-topology/topology/topology-netconf/node/ROADMA01" .format(self.restconf_baseurl)) data = {"node": [{ - "node-id": "ROADMA01", - "netconf-node-topology:username": "admin", - "netconf-node-topology:password": "admin", - "netconf-node-topology:host": "127.0.0.1", - "netconf-node-topology:port": "17831", - "netconf-node-topology:tcp-only": "false", - "netconf-node-topology:pass-through": {}}]} + "node-id": "ROADMA01", + "netconf-node-topology:username": "admin", + "netconf-node-topology:password": "admin", + "netconf-node-topology:host": "127.0.0.1", + "netconf-node-topology:port": "17831", + "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(20) def test_02_xpdr_device_connected(self): url = ("{}/config/network-topology:" "network-topology/topology/topology-netconf/node/XPDRA01" - .format(self.restconf_baseurl)) + .format(self.restconf_baseurl)) data = {"node": [{ "node-id": "XPDRA01", "netconf-node-topology:username": "admin", @@ -114,17 +114,17 @@ class TransportPCERendererTesting(unittest.TestCase): .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "GET", url, headers=headers, auth=('admin', 'admin')) + "GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn( - {'supporting-port': 'L1', 'supporting-circuit-pack-name': '2/0', - 'logical-connection-point': 'DEG1-TTP-TXRX', 'port-direction': 'bidirectional'}, - res['nodes'][0]['mapping']) + {'supporting-port': 'L1', 'supporting-circuit-pack-name': '2/0', + 'logical-connection-point': 'DEG1-TTP-TXRX', 'port-direction': 'bidirectional'}, + res['nodes'][0]['mapping']) self.assertIn( - {'supporting-port': 'C7', 'supporting-circuit-pack-name': '4/0', - 'logical-connection-point': 'SRG1-PP7-TXRX', 'port-direction': 'bidirectional'}, - res['nodes'][0]['mapping']) + {'supporting-port': 'C7', 'supporting-circuit-pack-name': '4/0', + 'logical-connection-point': 'SRG1-PP7-TXRX', 'port-direction': 'bidirectional'}, + res['nodes'][0]['mapping']) def test_04_xpdr_portmapping(self): url = ("{}/config/transportpce-portmapping:network/" @@ -132,80 +132,80 @@ class TransportPCERendererTesting(unittest.TestCase): .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "GET", url, headers=headers, auth=('admin', 'admin')) + "GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn( - {'supporting-port': '1', 'supporting-circuit-pack-name': '1/0/1-PLUG-NET', - 'logical-connection-point': 'XPDR1-NETWORK1', 'port-direction': 'bidirectional', - 'connection-map-lcp': 'XPDR1-CLIENT1', 'port-qual': 'xpdr-network'}, - res['nodes'][0]['mapping']) + {'supporting-port': '1', 'supporting-circuit-pack-name': '1/0/1-PLUG-NET', + 'logical-connection-point': 'XPDR1-NETWORK1', 'port-direction': 'bidirectional', + 'connection-map-lcp': 'XPDR1-CLIENT1', 'port-qual': 'xpdr-network'}, + res['nodes'][0]['mapping']) self.assertIn( - {'supporting-port': 'C1', - 'supporting-circuit-pack-name': '1/0/C1-PLUG-CLIENT', - 'logical-connection-point': 'XPDR1-CLIENT1', 'port-direction': 'bidirectional', - 'connection-map-lcp': 'XPDR1-NETWORK1', 'port-qual': 'xpdr-client'}, - res['nodes'][0]['mapping']) + {'supporting-port': 'C1', + 'supporting-circuit-pack-name': '1/0/C1-PLUG-CLIENT', + 'logical-connection-point': 'XPDR1-CLIENT1', 'port-direction': 'bidirectional', + 'connection-map-lcp': 'XPDR1-NETWORK1', 'port-qual': 'xpdr-client'}, + res['nodes'][0]['mapping']) def test_05_service_path_create(self): url = "{}/operations/transportpce-device-renderer:service-path".format(self.restconf_baseurl) data = {"renderer:input": { - "renderer:service-name": "service_test", - "renderer:wave-number": "7", - "renderer:modulation-format": "qpsk", - "renderer:operation": "create", - "renderer:nodes": [ - {"renderer:node-id": "ROADMA01", - "renderer:src-tp": "SRG1-PP7-TXRX", - "renderer:dest-tp": "DEG1-TTP-TXRX"}, - {"renderer:node-id": "XPDRA01", - "renderer:src-tp": "XPDR1-CLIENT1", - "renderer:dest-tp": "XPDR1-NETWORK1"}]}} + "renderer:service-name": "service_test", + "renderer:wave-number": "7", + "renderer:modulation-format": "qpsk", + "renderer:operation": "create", + "renderer:nodes": [ + {"renderer:node-id": "ROADMA01", + "renderer:src-tp": "SRG1-PP7-TXRX", + "renderer:dest-tp": "DEG1-TTP-TXRX"}, + {"renderer:node-id": "XPDRA01", + "renderer:src-tp": "XPDR1-CLIENT1", + "renderer:dest-tp": "XPDR1-NETWORK1"}]}} headers = {'content-type': 'application/json'} response = requests.request( - "POST", url, data=json.dumps(data), - headers=headers, auth=('admin', 'admin')) + "POST", url, data=json.dumps(data), + headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn('Roadm-connection successfully created for nodes: ROADMA01', res["output"]["result"]) def test_06_service_path_create_rdm_check(self): url = ("{}/config/network-topology:network-topology/topology/topology-netconf/" - "node/ROADMA01/yang-ext:mount/org-openroadm-device:org-openroadm-device/" - "interface/DEG1-TTP-TXRX-7" - .format(self.restconf_baseurl)) + "node/ROADMA01/yang-ext:mount/org-openroadm-device:org-openroadm-device/" + "interface/DEG1-TTP-TXRX-7" + .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "GET", url, headers=headers, auth=('admin', 'admin')) + "GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertDictContainsSubset({'name': 'DEG1-TTP-TXRX-7', 'administrative-state': 'inService', - 'supporting-circuit-pack-name': '2/0', - 'type': 'org-openroadm-interfaces:opticalChannel', - 'supporting-port': 'L1'}, res['interface'][0]) + 'supporting-circuit-pack-name': '2/0', + 'type': 'org-openroadm-interfaces:opticalChannel', + 'supporting-port': 'L1'}, res['interface'][0]) self.assertDictEqual( - {'wavelength-number': 7}, - res['interface'][0]['org-openroadm-optical-channel-interfaces:och']) + {'wavelength-number': 7}, + res['interface'][0]['org-openroadm-optical-channel-interfaces:och']) def test_07_service_path_create_rdm_check(self): url = ("{}/config/network-topology:network-topology/topology/topology-netconf/" - "node/ROADMA01/yang-ext:mount/org-openroadm-device:org-openroadm-device/" - "interface/SRG1-PP7-TXRX-7" - .format(self.restconf_baseurl)) + "node/ROADMA01/yang-ext:mount/org-openroadm-device:org-openroadm-device/" + "interface/SRG1-PP7-TXRX-7" + .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "GET", url, headers=headers, auth=('admin', 'admin')) + "GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertDictContainsSubset( - {'name': 'SRG1-PP7-TXRX-7', 'administrative-state': 'inService', - 'supporting-circuit-pack-name': '4/0', - 'type': 'org-openroadm-interfaces:opticalChannel', - 'supporting-port': 'C7'}, - res['interface'][0]) + {'name': 'SRG1-PP7-TXRX-7', 'administrative-state': 'inService', + 'supporting-circuit-pack-name': '4/0', + 'type': 'org-openroadm-interfaces:opticalChannel', + 'supporting-port': 'C7'}, + res['interface'][0]) self.assertDictEqual( - {'wavelength-number': 7}, - res['interface'][0]['org-openroadm-optical-channel-interfaces:och']) + {'wavelength-number': 7}, + res['interface'][0]['org-openroadm-optical-channel-interfaces:och']) def test_08_service_path_create_rdm_check(self): url = ("{}/config/network-topology:network-topology/topology/topology-netconf/" @@ -214,89 +214,89 @@ class TransportPCERendererTesting(unittest.TestCase): .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "GET", url, headers=headers, auth=('admin', 'admin')) + "GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertDictContainsSubset( - {'connection-number': 'SRG1-PP7-TXRX-DEG1-TTP-TXRX-7', - 'wavelength-number': 7, - 'opticalControlMode': 'off'}, - res['roadm-connections'][0]) + {'connection-number': 'SRG1-PP7-TXRX-DEG1-TTP-TXRX-7', + 'wavelength-number': 7, + 'opticalControlMode': 'off'}, + res['roadm-connections'][0]) self.assertDictEqual( - {'src-if': 'SRG1-PP7-TXRX-7'}, - res['roadm-connections'][0]['source']) + {'src-if': 'SRG1-PP7-TXRX-7'}, + res['roadm-connections'][0]['source']) self.assertDictEqual( - {'dst-if': 'DEG1-TTP-TXRX-7'}, - res['roadm-connections'][0]['destination']) + {'dst-if': 'DEG1-TTP-TXRX-7'}, + res['roadm-connections'][0]['destination']) def test_09_service_path_create_xpdr_check(self): url = ("{}/config/network-topology:network-topology/topology/topology-netconf/" - "node/XPDRA01/yang-ext:mount/org-openroadm-device:org-openroadm-device/" - "interface/XPDR1-NETWORK1-7" - .format(self.restconf_baseurl)) + "node/XPDRA01/yang-ext:mount/org-openroadm-device:org-openroadm-device/" + "interface/XPDR1-NETWORK1-7" + .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "GET", url, headers=headers, auth=('admin', 'admin')) + "GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertDictContainsSubset( - {'name': 'XPDR1-NETWORK1-7', 'administrative-state': 'inService', - 'supporting-circuit-pack-name': '1/0/1-PLUG-NET', - 'type': 'org-openroadm-interfaces:opticalChannel', - 'supporting-port': '1'}, - res['interface'][0]) + {'name': 'XPDR1-NETWORK1-7', 'administrative-state': 'inService', + 'supporting-circuit-pack-name': '1/0/1-PLUG-NET', + 'type': 'org-openroadm-interfaces:opticalChannel', + 'supporting-port': '1'}, + res['interface'][0]) self.assertDictEqual( - {u'rate': u'org-openroadm-optical-channel-interfaces:R100G', - u'transmit-power':-5, - u'wavelength-number': 7, - u'modulation-format': u'dp-qpsk'}, - res['interface'][0]['org-openroadm-optical-channel-interfaces:och']) + {u'rate': u'org-openroadm-optical-channel-interfaces:R100G', + u'transmit-power': -5, + u'wavelength-number': 7, + u'modulation-format': u'dp-qpsk'}, + res['interface'][0]['org-openroadm-optical-channel-interfaces:och']) def test_10_service_path_create_xpdr_check(self): url = ("{}/config/network-topology:network-topology/topology/topology-netconf/" - "node/XPDRA01/yang-ext:mount/org-openroadm-device:org-openroadm-device/" - "interface/XPDR1-NETWORK1-OTU" - .format(self.restconf_baseurl)) + "node/XPDRA01/yang-ext:mount/org-openroadm-device:org-openroadm-device/" + "interface/XPDR1-NETWORK1-OTU" + .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "GET", url, headers=headers, auth=('admin', 'admin')) + "GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertDictContainsSubset( - {'name': 'XPDR1-NETWORK1-OTU', 'administrative-state': 'inService', - 'supporting-circuit-pack-name': '1/0/1-PLUG-NET', - 'type': 'org-openroadm-interfaces:otnOtu', - 'supporting-port': '1', - 'supporting-interface': 'XPDR1-NETWORK1-7'}, - res['interface'][0]) + {'name': 'XPDR1-NETWORK1-OTU', 'administrative-state': 'inService', + 'supporting-circuit-pack-name': '1/0/1-PLUG-NET', + 'type': 'org-openroadm-interfaces:otnOtu', + 'supporting-port': '1', + 'supporting-interface': 'XPDR1-NETWORK1-7'}, + res['interface'][0]) self.assertDictEqual( - {u'rate': u'org-openroadm-otn-otu-interfaces:OTU4', - u'fec': u'scfec'}, - res['interface'][0]['org-openroadm-otn-otu-interfaces:otu']) + {u'rate': u'org-openroadm-otn-otu-interfaces:OTU4', + u'fec': u'scfec'}, + res['interface'][0]['org-openroadm-otn-otu-interfaces:otu']) def test_11_service_path_create_xpdr_check(self): url = ("{}/config/network-topology:network-topology/topology/topology-netconf/" - "node/XPDRA01/yang-ext:mount/org-openroadm-device:org-openroadm-device/" - "interface/XPDR1-NETWORK1-ODU" - .format(self.restconf_baseurl)) + "node/XPDRA01/yang-ext:mount/org-openroadm-device:org-openroadm-device/" + "interface/XPDR1-NETWORK1-ODU" + .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "GET", url, headers=headers, auth=('admin', 'admin')) + "GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertDictContainsSubset( - {'name': 'XPDR1-NETWORK1-ODU', 'administrative-state': 'inService', - 'supporting-circuit-pack-name': '1/0/1-PLUG-NET', - 'type': 'org-openroadm-interfaces:otnOdu', - 'supporting-port': '1', - 'supporting-interface': 'XPDR1-NETWORK1-OTU'}, - res['interface'][0]) + {'name': 'XPDR1-NETWORK1-ODU', 'administrative-state': 'inService', + 'supporting-circuit-pack-name': '1/0/1-PLUG-NET', + 'type': 'org-openroadm-interfaces:otnOdu', + 'supporting-port': '1', + 'supporting-interface': 'XPDR1-NETWORK1-OTU'}, + res['interface'][0]) self.assertDictContainsSubset( - {'rate': 'org-openroadm-otn-odu-interfaces:ODU4', - u'monitoring-mode': u'terminated'}, - res['interface'][0]['org-openroadm-otn-odu-interfaces:odu']) + {'rate': 'org-openroadm-otn-odu-interfaces:ODU4', + u'monitoring-mode': u'terminated'}, + res['interface'][0]['org-openroadm-otn-odu-interfaces:odu']) self.assertDictEqual({u'exp-payload-type': u'07', u'payload-type': u'07'}, - res['interface'][0]['org-openroadm-otn-odu-interfaces:odu']['opu']) + res['interface'][0]['org-openroadm-otn-odu-interfaces:odu']['opu']) def test_12_service_path_create_xpdr_check(self): url = ("{}/config/network-topology:network-topology/topology/topology-netconf/" @@ -305,31 +305,31 @@ class TransportPCERendererTesting(unittest.TestCase): .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "GET", url, headers=headers, auth=('admin', 'admin')) + "GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertDictContainsSubset( - {'name': 'XPDR1-CLIENT1-ETHERNET', 'administrative-state': 'inService', - 'supporting-circuit-pack-name': '1/0/C1-PLUG-CLIENT', - 'type': 'org-openroadm-interfaces:ethernetCsmacd', - 'supporting-port': 'C1'}, - res['interface'][0]) + {'name': 'XPDR1-CLIENT1-ETHERNET', 'administrative-state': 'inService', + 'supporting-circuit-pack-name': '1/0/C1-PLUG-CLIENT', + 'type': 'org-openroadm-interfaces:ethernetCsmacd', + 'supporting-port': 'C1'}, + res['interface'][0]) self.assertDictEqual( - {'speed': 100000, - 'mtu': 9000, - 'auto-negotiation': 'enabled', - 'duplex': 'full', - 'fec': 'off'}, - res['interface'][0]['org-openroadm-ethernet-interfaces:ethernet']) + {'speed': 100000, + 'mtu': 9000, + 'auto-negotiation': 'enabled', + 'duplex': 'full', + 'fec': 'off'}, + res['interface'][0]['org-openroadm-ethernet-interfaces:ethernet']) def test_13_service_path_create_xpdr_check(self): url = ("{}/config/network-topology:network-topology/topology/topology-netconf/" - "node/XPDRA01/yang-ext:mount/org-openroadm-device:org-openroadm-device/" - "circuit-packs/1%2F0%2F1-PLUG-NET" - .format(self.restconf_baseurl)) + "node/XPDRA01/yang-ext:mount/org-openroadm-device:org-openroadm-device/" + "circuit-packs/1%2F0%2F1-PLUG-NET" + .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "GET", url, headers=headers, auth=('admin', 'admin')) + "GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn('not-reserved-inuse', res['circuit-packs'][0]["equipment-state"]) @@ -337,38 +337,38 @@ class TransportPCERendererTesting(unittest.TestCase): def test_14_service_path_delete(self): url = "{}/operations/transportpce-device-renderer:service-path".format(self.restconf_baseurl) data = {"renderer:input": { - "renderer:service-name": "service_test", - "renderer:wave-number": "7", - "renderer:operation": "delete", - "renderer:nodes": [ - {"renderer:node-id": "ROADMA01", - "renderer:src-tp": "SRG1-PP7-TXRX", - "renderer:dest-tp": "DEG1-TTP-TXRX"}, - {"renderer:node-id": "XPDRA01", - "renderer:src-tp": "XPDR1-CLIENT1", - "renderer:dest-tp": "XPDR1-NETWORK1"}]}} + "renderer:service-name": "service_test", + "renderer:wave-number": "7", + "renderer:operation": "delete", + "renderer:nodes": [ + {"renderer:node-id": "ROADMA01", + "renderer:src-tp": "SRG1-PP7-TXRX", + "renderer:dest-tp": "DEG1-TTP-TXRX"}, + {"renderer:node-id": "XPDRA01", + "renderer:src-tp": "XPDR1-CLIENT1", + "renderer:dest-tp": "XPDR1-NETWORK1"}]}} headers = {'content-type': 'application/json'} response = requests.request( - "POST", url, data=json.dumps(data), - headers=headers, auth=('admin', 'admin')) + "POST", url, data=json.dumps(data), + headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) self.assertEqual(response.json(), { - 'output': {'result': 'Request processed', 'success': True}}) + 'output': {'result': 'Request processed', 'success': True}}) def test_15_service_path_delete_rdm_check(self): url = ("{}/config/network-topology:network-topology/topology/topology-netconf/" - "node/ROADMA01/yang-ext:mount/org-openroadm-device:org-openroadm-device/" - "interface/DEG1-TTP-TXRX-7" - .format(self.restconf_baseurl)) + "node/ROADMA01/yang-ext:mount/org-openroadm-device:org-openroadm-device/" + "interface/DEG1-TTP-TXRX-7" + .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "GET", url, headers=headers, auth=('admin', 'admin')) + "GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.not_found) res = response.json() self.assertIn( - {"error-type":"application", "error-tag":"data-missing", - "error-message":"Request could not be completed because the relevant data model content does not exist"}, - res['errors']['error']) + {"error-type": "application", "error-tag": "data-missing", + "error-message": "Request could not be completed because the relevant data model content does not exist"}, + res['errors']['error']) def test_16_service_path_delete_rdm_check(self): url = ("{}/config/network-topology:network-topology/topology/topology-netconf/" @@ -377,12 +377,13 @@ class TransportPCERendererTesting(unittest.TestCase): .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "GET", url, headers=headers, auth=('admin', 'admin')) + "GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.not_found) res = response.json() self.assertIn( - {"error-type":"application", "error-tag":"data-missing", "error-message":"Request could not be completed because the relevant data model content does not exist"}, - res['errors']['error']) + {"error-type": "application", "error-tag": "data-missing", + "error-message": "Request could not be completed because the relevant data model content does not exist"}, + res['errors']['error']) def test_17_service_path_delete_rdm_check(self): url = ("{}/config/network-topology:network-topology/topology/topology-netconf/" @@ -391,12 +392,13 @@ class TransportPCERendererTesting(unittest.TestCase): .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "GET", url, headers=headers, auth=('admin', 'admin')) + "GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.not_found) res = response.json() self.assertIn( - {"error-type":"application", "error-tag":"data-missing", "error-message":"Request could not be completed because the relevant data model content does not exist"}, - res['errors']['error']) + {"error-type": "application", "error-tag": "data-missing", + "error-message": "Request could not be completed because the relevant data model content does not exist"}, + res['errors']['error']) def test_18_service_path_delete_xpdr_check(self): url = ("{}/config/network-topology:network-topology/topology/topology-netconf/" @@ -405,12 +407,13 @@ class TransportPCERendererTesting(unittest.TestCase): .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "GET", url, headers=headers, auth=('admin', 'admin')) + "GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.not_found) res = response.json() self.assertIn( - {"error-type":"application", "error-tag":"data-missing", "error-message":"Request could not be completed because the relevant data model content does not exist"}, - res['errors']['error']) + {"error-type": "application", "error-tag": "data-missing", + "error-message": "Request could not be completed because the relevant data model content does not exist"}, + res['errors']['error']) def test_19_service_path_delete_xpdr_check(self): url = ("{}/config/network-topology:network-topology/topology/topology-netconf/" @@ -419,12 +422,13 @@ class TransportPCERendererTesting(unittest.TestCase): .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "GET", url, headers=headers, auth=('admin', 'admin')) + "GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.not_found) res = response.json() self.assertIn( - {"error-type":"application", "error-tag":"data-missing", "error-message":"Request could not be completed because the relevant data model content does not exist"}, - res['errors']['error']) + {"error-type": "application", "error-tag": "data-missing", + "error-message": "Request could not be completed because the relevant data model content does not exist"}, + res['errors']['error']) def test_20_service_path_delete_xpdr_check(self): url = ("{}/config/network-topology:network-topology/topology/topology-netconf/" @@ -433,12 +437,13 @@ class TransportPCERendererTesting(unittest.TestCase): .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "GET", url, headers=headers, auth=('admin', 'admin')) + "GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.not_found) res = response.json() self.assertIn( - {"error-type":"application", "error-tag":"data-missing", "error-message":"Request could not be completed because the relevant data model content does not exist"}, - res['errors']['error']) + {"error-type": "application", "error-tag": "data-missing", + "error-message": "Request could not be completed because the relevant data model content does not exist"}, + res['errors']['error']) def test_21_service_path_delete_xpdr_check(self): url = ("{}/config/network-topology:network-topology/topology/topology-netconf/" @@ -447,12 +452,13 @@ class TransportPCERendererTesting(unittest.TestCase): .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "GET", url, headers=headers, auth=('admin', 'admin')) + "GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.not_found) res = response.json() self.assertIn( - {"error-type":"application", "error-tag":"data-missing", "error-message":"Request could not be completed because the relevant data model content does not exist"}, - res['errors']['error']) + {"error-type": "application", "error-tag": "data-missing", + "error-message": "Request could not be completed because the relevant data model content does not exist"}, + res['errors']['error']) def test_22_service_path_delete_xpdr_check(self): url = ("{}/config/network-topology:network-topology/topology/topology-netconf/" @@ -472,19 +478,19 @@ class TransportPCERendererTesting(unittest.TestCase): .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "DELETE", url, headers=headers, - auth=('admin', 'admin')) + "DELETE", url, headers=headers, + auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) time.sleep(20) def test_24_xpdr_device_disconnected(self): url = ("{}/config/network-topology:" - "network-topology/topology/topology-netconf/node/XPDRA01" + "network-topology/topology/topology-netconf/node/XPDRA01" .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "DELETE", url, headers=headers, - auth=('admin', 'admin')) + "DELETE", url, headers=headers, + auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) time.sleep(20) diff --git a/tests/transportpce_tests/1.2.1/test_topoPortMapping.py b/tests/transportpce_tests/1.2.1/test_topoPortMapping.py index 31cf866b3..b9b4bccd7 100644 --- a/tests/transportpce_tests/1.2.1/test_topoPortMapping.py +++ b/tests/transportpce_tests/1.2.1/test_topoPortMapping.py @@ -1,7 +1,7 @@ #!/usr/bin/env python ############################################################################## -#Copyright (c) 2017 Orange, Inc. and others. All rights reserved. +# Copyright (c) 2017 Orange, Inc. and others. All rights reserved. # # All rights reserved. This program and the accompanying materials # are made available under the terms of the Apache License, Version 2.0 @@ -10,17 +10,14 @@ ############################################################################## import json -import os -import psutil -import requests import signal -import shutil -import subprocess import time import unittest -import logging +import requests +import psutil import test_utils + class TransportPCEtesting(unittest.TestCase): honeynode_process1 = None @@ -28,22 +25,22 @@ class TransportPCEtesting(unittest.TestCase): odl_process = None restconf_baseurl = "http://localhost:8181/restconf" -#START_IGNORE_XTESTING +# START_IGNORE_XTESTING @classmethod def setUpClass(cls): - print ("starting honeynode1...") + print("starting honeynode1...") cls.honeynode_process1 = test_utils.start_xpdra_honeynode() time.sleep(20) - print ("starting honeynode2...") + print("starting honeynode2...") cls.honeynode_process2 = test_utils.start_roadma_honeynode() time.sleep(20) - print ("starting opendaylight...") + print("starting opendaylight...") cls.odl_process = test_utils.start_tpce() time.sleep(60) - print ("opendaylight started") + print("opendaylight started") @classmethod def tearDownClass(cls): @@ -66,36 +63,35 @@ class TransportPCEtesting(unittest.TestCase): def setUp(self): time.sleep(10) -#END_IGNORE_XTESTING +# END_IGNORE_XTESTING - #Connect the ROADMA + # Connect the ROADMA def test_01_connect_rdm(self): - #Config ROADMA + # Config ROADMA url = ("{}/config/network-topology:" - "network-topology/topology/topology-netconf/node/ROADMA01" + "network-topology/topology/topology-netconf/node/ROADMA01" .format(self.restconf_baseurl)) data = {"node": [{ - "node-id": "ROADMA01", - "netconf-node-topology:username": "admin", - "netconf-node-topology:password": "admin", - "netconf-node-topology:host": "127.0.0.1", - "netconf-node-topology:port": "17831", - "netconf-node-topology:tcp-only": "false", - "netconf-node-topology:pass-through": {}}]} + "node-id": "ROADMA01", + "netconf-node-topology:username": "admin", + "netconf-node-topology:password": "admin", + "netconf-node-topology:host": "127.0.0.1", + "netconf-node-topology:port": "17831", + "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(20) - #Verify the termination points of the ROADMA + # Verify the termination points of the ROADMA def test_02_compareOpenroadmTopologyPortMapping_rdm(self): urlTopo = ("{}/config/ietf-network:networks/network/openroadm-topology" - .format(self.restconf_baseurl)) + .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} - responseTopo = requests.request( - "GET", urlTopo, headers=headers, auth=('admin', 'admin')) + responseTopo = requests.request("GET", urlTopo, headers=headers, auth=('admin', 'admin')) resTopo = responseTopo.json() nbNode = len(resTopo['network'][0]['node']) nbMapCumul = 0 @@ -105,8 +101,7 @@ class TransportPCEtesting(unittest.TestCase): nodeMapId = nodeId.split("-")[0] urlMapList = "{}/config/transportpce-portmapping:network/nodes/" + nodeMapId urlMapListFull = urlMapList.format(self.restconf_baseurl) - responseMapList = requests.request( - "GET", urlMapListFull, headers=headers, auth=('admin', 'admin')) + responseMapList = requests.request("GET", urlMapListFull, headers=headers, auth=('admin', 'admin')) resMapList = responseMapList.json() nbMappings = len(resMapList['nodes'][0]['mapping']) - nbMapCumul @@ -115,59 +110,58 @@ class TransportPCEtesting(unittest.TestCase): for j in range(0, nbTp): tpId = resTopo['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['tp-id'] if((not "CP" in tpId) and (not "CTP" in tpId)): - urlMap = "{}/config/transportpce-portmapping:network/nodes/" + nodeMapId + "/mapping/" + tpId - urlMapFull = urlMap.format(self.restconf_baseurl) - responseMap = requests.request( - "GET", urlMapFull, headers=headers, auth=('admin', 'admin')) - self.assertEqual(responseMap.status_code, requests.codes.ok) - if(responseMap.status_code == requests.codes.ok): + urlMap = "{}/config/transportpce-portmapping:network/nodes/" + nodeMapId + "/mapping/" + tpId + urlMapFull = urlMap.format(self.restconf_baseurl) + responseMap = requests.request("GET", urlMapFull, headers=headers, auth=('admin', 'admin')) + self.assertEqual(responseMap.status_code, requests.codes.ok) + if responseMap.status_code == requests.codes.ok: nbMapCurrent += 1 nbMapCumul += nbMapCurrent nbMappings -= nbMapCurrent self.assertEqual(nbMappings, 0) - #Disconnect the ROADMA + # Disconnect the ROADMA def test_03_disconnect_rdm(self): url = ("{}/config/network-topology:" - "network-topology/topology/topology-netconf/node/ROADMA01" + "network-topology/topology/topology-netconf/node/ROADMA01" .format(self.restconf_baseurl)) data = {} headers = {'content-type': 'application/json'} response = requests.request( - "DELETE", url, data=json.dumps(data), headers=headers, - auth=('admin', 'admin')) + "DELETE", url, data=json.dumps(data), headers=headers, + auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) # #Connect the XPDRA def test_04_connect_xpdr(self): - #Config XPDRA - url = ("{}/config/network-topology:" - "network-topology/topology/topology-netconf/node/XPDRA01" - .format(self.restconf_baseurl)) - data = {"node": [{ - "node-id": "XPDRA01", - "netconf-node-topology:username": "admin", - "netconf-node-topology:password": "admin", - "netconf-node-topology:host": "127.0.0.1", - "netconf-node-topology:port": "17830", - "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')) - self.assertEqual(response.status_code, requests.codes.created) - time.sleep(20) + # Config XPDRA + url = ("{}/config/network-topology:" + "network-topology/topology/topology-netconf/node/XPDRA01" + .format(self.restconf_baseurl)) + data = {"node": [{ + "node-id": "XPDRA01", + "netconf-node-topology:username": "admin", + "netconf-node-topology:password": "admin", + "netconf-node-topology:host": "127.0.0.1", + "netconf-node-topology:port": "17830", + "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')) + self.assertEqual(response.status_code, requests.codes.created) + time.sleep(20) # #Verify the termination points related to XPDR def test_05_compareOpenroadmTopologyPortMapping_xpdr(self): self.test_02_compareOpenroadmTopologyPortMapping_rdm() - #Disconnect the XPDRA + # Disconnect the XPDRA def test_06_disconnect_device(self): url = ("{}/config/network-topology:" "network-topology/topology/topology-netconf/node/XPDRA01" - .format(self.restconf_baseurl)) + .format(self.restconf_baseurl)) data = {} headers = {'content-type': 'application/json'} response = requests.request( @@ -175,7 +169,8 @@ class TransportPCEtesting(unittest.TestCase): auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) + if __name__ == "__main__": - #logging.basicConfig(filename='./transportpce_tests/log/response.log',filemode='w',level=logging.DEBUG) + # logging.basicConfig(filename='./transportpce_tests/log/response.log',filemode='w',level=logging.DEBUG) #logging.debug('I am there') unittest.main(verbosity=2) diff --git a/tests/transportpce_tests/1.2.1/test_topology.py b/tests/transportpce_tests/1.2.1/test_topology.py index 3aaa1a6cf..b017b40f8 100644 --- a/tests/transportpce_tests/1.2.1/test_topology.py +++ b/tests/transportpce_tests/1.2.1/test_topology.py @@ -1,7 +1,7 @@ #!/usr/bin/env python ############################################################################## -#Copyright (c) 2017 Orange, Inc. and others. All rights reserved. +# Copyright (c) 2017 Orange, Inc. and others. All rights reserved. # # All rights reserved. This program and the accompanying materials # are made available under the terms of the Apache License, Version 2.0 @@ -10,17 +10,14 @@ ############################################################################## import json -import os -import psutil -import requests import signal -import shutil -import subprocess import time import unittest -import logging +import requests +import psutil import test_utils + class TransportPCETopologyTesting(unittest.TestCase): honeynode_process1 = None @@ -30,31 +27,31 @@ class TransportPCETopologyTesting(unittest.TestCase): odl_process = None restconf_baseurl = "http://localhost:8181/restconf" -#START_IGNORE_XTESTING +# START_IGNORE_XTESTING @classmethod def setUpClass(cls): - print ("starting honeynode1...") + print("starting honeynode1...") cls.honeynode_process1 = test_utils.start_xpdra_honeynode() time.sleep(20) - print ("starting honeynode2...") + print("starting honeynode2...") cls.honeynode_process2 = test_utils.start_roadma_honeynode() time.sleep(20) - print ("starting honeynode3...") + print("starting honeynode3...") cls.honeynode_process3 = test_utils.start_roadmb_honeynode() time.sleep(20) - print ("starting honeynode4...") + print("starting honeynode4...") cls.honeynode_process4 = test_utils.start_roadmc_honeynode() time.sleep(20) - print ("all honeynodes started") + print("all honeynodes started") - print ("starting opendaylight...") + print("starting opendaylight...") cls.odl_process = test_utils.start_tpce() time.sleep(60) - print ("opendaylight started") + print("opendaylight started") @classmethod def tearDownClass(cls): @@ -89,110 +86,110 @@ class TransportPCETopologyTesting(unittest.TestCase): def setUp(self): time.sleep(5) -#END_IGNORE_XTESTING +# END_IGNORE_XTESTING def test_01_connect_ROADMA(self): - #Config ROADMA + # Config ROADMA url = ("{}/config/network-topology:" - "network-topology/topology/topology-netconf/node/ROADMA01" + "network-topology/topology/topology-netconf/node/ROADMA01" .format(self.restconf_baseurl)) data = {"node": [{ - "node-id": "ROADMA01", - "netconf-node-topology:username": "admin", - "netconf-node-topology:password": "admin", - "netconf-node-topology:host": "127.0.0.1", - "netconf-node-topology:port": "17831", - "netconf-node-topology:tcp-only": "false", - "netconf-node-topology:pass-through": {}}]} + "node-id": "ROADMA01", + "netconf-node-topology:username": "admin", + "netconf-node-topology:password": "admin", + "netconf-node-topology:host": "127.0.0.1", + "netconf-node-topology:port": "17831", + "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(20) 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')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() - self.assertEqual(res['network'][0]['node'][0]['node-id'],'NodeA') - self.assertEqual(res['network'][0]['node'][0]['org-openroadm-clli-network:clli'],'NodeA') + self.assertEqual(res['network'][0]['node'][0]['node-id'], 'NodeA') + self.assertEqual(res['network'][0]['node'][0]['org-openroadm-clli-network:clli'], 'NodeA') 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')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() - self.assertEqual(res['network'][0]['node'][0]['node-id'],'ROADMA01') - 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'],'NodeA') - self.assertEqual(res['network'][0]['node'][0]['org-openroadm-common-network:node-type'],'ROADM') - self.assertEqual(res['network'][0]['node'][0]['org-openroadm-network:model'],'2') + self.assertEqual(res['network'][0]['node'][0]['node-id'], 'ROADMA01') + 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'], 'NodeA') + self.assertEqual(res['network'][0]['node'][0]['org-openroadm-common-network:node-type'], 'ROADM') + self.assertEqual(res['network'][0]['node'][0]['org-openroadm-network:model'], '2') 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')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() - #Tests related to links - nbLink=len(res['network'][0]['ietf-network-topology:link']) - self.assertEqual(nbLink,10) - expressLink=['ROADMA01-DEG2-DEG2-CTP-TXRXtoROADMA01-DEG1-DEG1-CTP-TXRX','ROADMA01-DEG1-DEG1-CTP-TXRXtoROADMA01-DEG2-DEG2-CTP-TXRX'] - addLink=['ROADMA01-SRG1-SRG1-CP-TXRXtoROADMA01-DEG2-DEG2-CTP-TXRX','ROADMA01-SRG1-SRG1-CP-TXRXtoROADMA01-DEG1-DEG1-CTP-TXRX', - 'ROADMA01-SRG3-SRG3-CP-TXRXtoROADMA01-DEG2-DEG2-CTP-TXRX','ROADMA01-SRG3-SRG3-CP-TXRXtoROADMA01-DEG1-DEG1-CTP-TXRX'] - dropLink=['ROADMA01-DEG1-DEG1-CTP-TXRXtoROADMA01-SRG1-SRG1-CP-TXRX','ROADMA01-DEG2-DEG2-CTP-TXRXtoROADMA01-SRG1-SRG1-CP-TXRX', - 'ROADMA01-DEG1-DEG1-CTP-TXRXtoROADMA01-SRG3-SRG3-CP-TXRX','ROADMA01-DEG2-DEG2-CTP-TXRXtoROADMA01-SRG3-SRG3-CP-TXRX'] - for i in range(0,nbLink): + # Tests related to links + nbLink = len(res['network'][0]['ietf-network-topology:link']) + self.assertEqual(nbLink, 10) + expressLink = ['ROADMA01-DEG2-DEG2-CTP-TXRXtoROADMA01-DEG1-DEG1-CTP-TXRX', + 'ROADMA01-DEG1-DEG1-CTP-TXRXtoROADMA01-DEG2-DEG2-CTP-TXRX'] + addLink = ['ROADMA01-SRG1-SRG1-CP-TXRXtoROADMA01-DEG2-DEG2-CTP-TXRX', 'ROADMA01-SRG1-SRG1-CP-TXRXtoROADMA01-DEG1-DEG1-CTP-TXRX', + 'ROADMA01-SRG3-SRG3-CP-TXRXtoROADMA01-DEG2-DEG2-CTP-TXRX', 'ROADMA01-SRG3-SRG3-CP-TXRXtoROADMA01-DEG1-DEG1-CTP-TXRX'] + dropLink = ['ROADMA01-DEG1-DEG1-CTP-TXRXtoROADMA01-SRG1-SRG1-CP-TXRX', 'ROADMA01-DEG2-DEG2-CTP-TXRXtoROADMA01-SRG1-SRG1-CP-TXRX', + 'ROADMA01-DEG1-DEG1-CTP-TXRXtoROADMA01-SRG3-SRG3-CP-TXRX', 'ROADMA01-DEG2-DEG2-CTP-TXRXtoROADMA01-SRG3-SRG3-CP-TXRX'] + for i in range(0, nbLink): linkId = res['network'][0]['ietf-network-topology:link'][i]['link-id'] - if (res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type']=='EXPRESS-LINK'): - find= linkId in expressLink + if res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type'] == 'EXPRESS-LINK': + find = linkId in expressLink self.assertEqual(find, True) expressLink.remove(linkId) - elif (res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type']=='ADD-LINK'): - find= linkId in addLink + elif res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type'] == 'ADD-LINK': + find = linkId in addLink self.assertEqual(find, True) addLink.remove(linkId) - elif (res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type']=='DROP-LINK'): - find= linkId in dropLink + elif res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type'] == 'DROP-LINK': + find = linkId in dropLink self.assertEqual(find, True) dropLink.remove(linkId) else: self.assertFalse(True) - self.assertEqual(len(expressLink),0) - self.assertEqual(len(addLink),0) - self.assertEqual(len(dropLink),0) + self.assertEqual(len(expressLink), 0) + self.assertEqual(len(addLink), 0) + self.assertEqual(len(dropLink), 0) 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')) + response = requests.request("GET", url, headers=headers, auth=('admin', 'admin')) res = response.json() - #Tests related to nodes + # Tests related to nodes self.assertEqual(response.status_code, requests.codes.ok) - nbNode=len(res['network'][0]['node']) - self.assertEqual(nbNode,4) - listNode=['ROADMA01-SRG1','ROADMA01-SRG3','ROADMA01-DEG1','ROADMA01-DEG2'] - for i in range(0,nbNode): + nbNode = len(res['network'][0]['node']) + self.assertEqual(nbNode, 4) + listNode = ['ROADMA01-SRG1', 'ROADMA01-SRG3', 'ROADMA01-DEG1', 'ROADMA01-DEG2'] + for i in range(0, nbNode): self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADMA01'}, res['network'][0]['node'][i]['supporting-node']) - nodeType=res['network'][0]['node'][i]['org-openroadm-common-network:node-type'] - nodeId=res['network'][0]['node'][i]['node-id'] - if(nodeId=='ROADMA01-SRG1'): - #Test related to SRG1 - self.assertEqual(nodeType,'SRG') - self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']),17) + nodeType = res['network'][0]['node'][i]['org-openroadm-common-network:node-type'] + nodeId = res['network'][0]['node'][i]['node-id'] + if nodeId == 'ROADMA01-SRG1': + # Test related to SRG1 + self.assertEqual(nodeType, 'SRG') + self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']), 17) self.assertIn({'tp-id': 'SRG1-CP-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-CP'}, res['network'][0]['node'][i]['ietf-network-topology:termination-point']) self.assertIn({'tp-id': 'SRG1-PP1-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-PP'}, @@ -202,10 +199,10 @@ class TransportPCETopologyTesting(unittest.TestCase): self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADMA01'}, res['network'][0]['node'][i]['supporting-node']) listNode.remove(nodeId) - elif(nodeId=='ROADMA01-SRG3'): - #Test related to SRG1 - self.assertEqual(nodeType,'SRG') - self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']),17) + elif nodeId == 'ROADMA01-SRG3': + # Test related to SRG1 + self.assertEqual(nodeType, 'SRG') + self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']), 17) self.assertIn({'tp-id': 'SRG3-CP-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-CP'}, res['network'][0]['node'][i]['ietf-network-topology:termination-point']) self.assertIn({'tp-id': 'SRG3-PP1-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-PP'}, @@ -215,9 +212,9 @@ class TransportPCETopologyTesting(unittest.TestCase): self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADMA01'}, res['network'][0]['node'][i]['supporting-node']) listNode.remove(nodeId) - elif(nodeId=='ROADMA01-DEG1'): - #Test related to DEG1 - self.assertEqual(nodeType,'DEGREE') + elif nodeId == 'ROADMA01-DEG1': + # Test related to DEG1 + self.assertEqual(nodeType, 'DEGREE') self.assertIn({'tp-id': 'DEG1-TTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-TTP'}, res['network'][0]['node'][i]['ietf-network-topology:termination-point']) self.assertIn({'tp-id': 'DEG1-CTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-CTP'}, @@ -227,9 +224,9 @@ class TransportPCETopologyTesting(unittest.TestCase): res['network'][0]['node'][i]['supporting-node']) self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADMA01'}, res['network'][0]['node'][i]['supporting-node']) - elif(nodeId=='ROADMA01-DEG2'): - #Test related to DEG2 - self.assertEqual(nodeType,'DEGREE') + elif nodeId == 'ROADMA01-DEG2': + # Test related to DEG2 + self.assertEqual(nodeType, 'DEGREE') self.assertIn({'tp-id': 'DEG2-TTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-TTP'}, res['network'][0]['node'][i]['ietf-network-topology:termination-point']) self.assertIn({'tp-id': 'DEG2-CTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-CTP'}, @@ -241,125 +238,126 @@ class TransportPCETopologyTesting(unittest.TestCase): listNode.remove(nodeId) else: self.assertFalse(True) - self.assertEqual(len(listNode),0) + self.assertEqual(len(listNode), 0) def test_06_connect_XPDRA(self): - url = ("{}/config/network-topology:" - "network-topology/topology/topology-netconf/node/XPDRA01" - .format(self.restconf_baseurl)) - data = {"node": [{ - "node-id": "XPDRA01", - "netconf-node-topology:username": "admin", - "netconf-node-topology:password": "admin", - "netconf-node-topology:host": "127.0.0.1", - "netconf-node-topology:port": "17830", - "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')) - self.assertEqual(response.status_code, requests.codes.created) - time.sleep(30) + url = ("{}/config/network-topology:" + "network-topology/topology/topology-netconf/node/XPDRA01" + .format(self.restconf_baseurl)) + data = {"node": [{ + "node-id": "XPDRA01", + "netconf-node-topology:username": "admin", + "netconf-node-topology:password": "admin", + "netconf-node-topology:host": "127.0.0.1", + "netconf-node-topology:port": "17830", + "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')) + self.assertEqual(response.status_code, requests.codes.created) + time.sleep(30) def test_07_getClliNetwork(self): - url = ("{}/config/ietf-network:networks/network/clli-network" + url = ("{}/config/ietf-network:networks/network/clli-network" .format(self.restconf_baseurl)) - headers = {'content-type': 'application/json'} - response = requests.request( - "GET", url, headers=headers, auth=('admin', 'admin')) - self.assertEqual(response.status_code, requests.codes.ok) - res = response.json() - self.assertEqual(res['network'][0]['node'][0]['node-id'],'NodeA') - self.assertEqual(res['network'][0]['node'][0]['org-openroadm-clli-network:clli'],'NodeA') + headers = {'content-type': 'application/json'} + response = requests.request("GET", url, headers=headers, auth=('admin', 'admin')) + self.assertEqual(response.status_code, requests.codes.ok) + res = response.json() + self.assertEqual(res['network'][0]['node'][0]['node-id'], 'NodeA') + self.assertEqual(res['network'][0]['node'][0]['org-openroadm-clli-network:clli'], 'NodeA') def test_08_getOpenRoadmNetwork(self): - url = ("{}/config/ietf-network:networks/network/openroadm-network" + url = ("{}/config/ietf-network:networks/network/openroadm-network" .format(self.restconf_baseurl)) - headers = {'content-type': 'application/json'} - response = requests.request( - "GET", url, headers=headers, auth=('admin', 'admin')) - self.assertEqual(response.status_code, requests.codes.ok) - res = response.json() - nbNode=len(res['network'][0]['node']) - self.assertEqual(nbNode,2) - for i in range(0,nbNode): - self.assertEqual(res['network'][0]['node'][i]['supporting-node'][0]['network-ref'],'clli-network') - self.assertEqual(res['network'][0]['node'][i]['supporting-node'][0]['node-ref'],'NodeA') - nodeId=res['network'][0]['node'][i]['node-id'] - if(nodeId=='XPDRA01'): - self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'],'XPONDER') - self.assertEqual(res['network'][0]['node'][i]['org-openroadm-network:model'],'1') - elif(nodeId=='ROADMA01'): - self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'],'ROADM') - self.assertEqual(res['network'][0]['node'][i]['org-openroadm-network:model'],'2') - else: + headers = {'content-type': 'application/json'} + response = requests.request( + "GET", url, headers=headers, auth=('admin', 'admin')) + self.assertEqual(response.status_code, requests.codes.ok) + res = response.json() + nbNode = len(res['network'][0]['node']) + self.assertEqual(nbNode, 2) + for i in range(0, nbNode): + self.assertEqual(res['network'][0]['node'][i]['supporting-node'][0]['network-ref'], 'clli-network') + self.assertEqual(res['network'][0]['node'][i]['supporting-node'][0]['node-ref'], 'NodeA') + nodeId = res['network'][0]['node'][i]['node-id'] + if(nodeId == 'XPDRA01'): + self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'], 'XPONDER') + self.assertEqual(res['network'][0]['node'][i]['org-openroadm-network:model'], '1') + elif(nodeId == 'ROADMA01'): + self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'], 'ROADM') + self.assertEqual(res['network'][0]['node'][i]['org-openroadm-network:model'], '2') + else: self.assertFalse(True) def test_09_getNodes_OpenRoadmTopology(self): - url = ("{}/config/ietf-network:networks/network/openroadm-topology" + url = ("{}/config/ietf-network:networks/network/openroadm-topology" .format(self.restconf_baseurl)) - headers = {'content-type': 'application/json'} - response = requests.request( - "GET", url, headers=headers, auth=('admin', 'admin')) - res = response.json() - #Tests related to nodes - self.assertEqual(response.status_code, requests.codes.ok) - nbNode=len(res['network'][0]['node']) - self.assertEqual(nbNode,5) - listNode=['XPDRA01-XPDR1','ROADMA01-SRG1','ROADMA01-SRG3','ROADMA01-DEG1','ROADMA01-DEG2'] - for i in range(0,nbNode): - nodeType=res['network'][0]['node'][i]['org-openroadm-common-network:node-type'] - nodeId=res['network'][0]['node'][i]['node-id'] - #Tests related to XPDRA nodes - if(nodeId=='XPDRA01-XPDR1'): - self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'XPDRA01'}, - res['network'][0]['node'][i]['supporting-node']) - self.assertIn({'network-ref': 'clli-network', 'node-ref': 'NodeA'}, - 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-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 - if (tpId == 'XPDR1-NETWORK2'): - self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['transportpce-topology:associated-connection-map-port'],'XPDR1-CLIENT3') - if (tpId == 'XPDR1-CLIENT3'): - self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['transportpce-topology:associated-connection-map-port'],'XPDR1-NETWORK2') - self.assertTrue(client == 4) - self.assertTrue(network == 2) - listNode.remove(nodeId) - elif(nodeId=='ROADMA01-SRG1'): - #Test related to SRG1 - self.assertEqual(nodeType,'SRG') - self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']),17) - self.assertIn({'tp-id': 'SRG1-CP-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-CP'}, - res['network'][0]['node'][i]['ietf-network-topology:termination-point']) - self.assertIn({'tp-id': 'SRG1-PP1-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-PP'}, - res['network'][0]['node'][i]['ietf-network-topology:termination-point']) - self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADMA01'}, - res['network'][0]['node'][i]['supporting-node']) - listNode.remove(nodeId) - elif(nodeId=='ROADMA01-SRG3'): - #Test related to SRG1 - self.assertEqual(nodeType,'SRG') - self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']),17) - self.assertIn({'tp-id': 'SRG3-CP-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-CP'}, - res['network'][0]['node'][i]['ietf-network-topology:termination-point']) - self.assertIn({'tp-id': 'SRG3-PP1-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-PP'}, - res['network'][0]['node'][i]['ietf-network-topology:termination-point']) - self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADMA01'}, - res['network'][0]['node'][i]['supporting-node']) - listNode.remove(nodeId) - elif(nodeId=='ROADMA01-DEG1'): - #Test related to DEG1 - self.assertEqual(nodeType,'DEGREE') + headers = {'content-type': 'application/json'} + response = requests.request( + "GET", url, headers=headers, auth=('admin', 'admin')) + res = response.json() + # Tests related to nodes + self.assertEqual(response.status_code, requests.codes.ok) + nbNode = len(res['network'][0]['node']) + self.assertEqual(nbNode, 5) + listNode = ['XPDRA01-XPDR1', 'ROADMA01-SRG1', 'ROADMA01-SRG3', 'ROADMA01-DEG1', 'ROADMA01-DEG2'] + for i in range(0, nbNode): + nodeType = res['network'][0]['node'][i]['org-openroadm-common-network:node-type'] + nodeId = res['network'][0]['node'][i]['node-id'] + # Tests related to XPDRA nodes + if(nodeId == 'XPDRA01-XPDR1'): + self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'XPDRA01'}, + res['network'][0]['node'][i]['supporting-node']) + self.assertIn({'network-ref': 'clli-network', 'node-ref': 'NodeA'}, + 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-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 + if (tpId == 'XPDR1-NETWORK2'): + self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'] + [j]['transportpce-topology:associated-connection-map-port'], 'XPDR1-CLIENT3') + if (tpId == 'XPDR1-CLIENT3'): + self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'] + [j]['transportpce-topology:associated-connection-map-port'], 'XPDR1-NETWORK2') + self.assertTrue(client == 4) + self.assertTrue(network == 2) + listNode.remove(nodeId) + elif(nodeId == 'ROADMA01-SRG1'): + # Test related to SRG1 + self.assertEqual(nodeType, 'SRG') + self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']), 17) + self.assertIn({'tp-id': 'SRG1-CP-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-CP'}, + res['network'][0]['node'][i]['ietf-network-topology:termination-point']) + self.assertIn({'tp-id': 'SRG1-PP1-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-PP'}, + res['network'][0]['node'][i]['ietf-network-topology:termination-point']) + self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADMA01'}, + res['network'][0]['node'][i]['supporting-node']) + listNode.remove(nodeId) + elif(nodeId == 'ROADMA01-SRG3'): + # Test related to SRG1 + self.assertEqual(nodeType, 'SRG') + self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']), 17) + self.assertIn({'tp-id': 'SRG3-CP-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-CP'}, + res['network'][0]['node'][i]['ietf-network-topology:termination-point']) + self.assertIn({'tp-id': 'SRG3-PP1-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-PP'}, + res['network'][0]['node'][i]['ietf-network-topology:termination-point']) + self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADMA01'}, + res['network'][0]['node'][i]['supporting-node']) + listNode.remove(nodeId) + elif(nodeId == 'ROADMA01-DEG1'): + # Test related to DEG1 + self.assertEqual(nodeType, 'DEGREE') self.assertIn({'tp-id': 'DEG1-TTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-TTP'}, res['network'][0]['node'][i]['ietf-network-topology:termination-point']) self.assertIn({'tp-id': 'DEG1-CTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-CTP'}, @@ -367,9 +365,9 @@ class TransportPCETopologyTesting(unittest.TestCase): self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADMA01'}, res['network'][0]['node'][i]['supporting-node']) listNode.remove(nodeId) - elif(nodeId=='ROADMA01-DEG2'): - #Test related to DEG2 - self.assertEqual(nodeType,'DEGREE') + elif(nodeId == 'ROADMA01-DEG2'): + # Test related to DEG2 + self.assertEqual(nodeType, 'DEGREE') self.assertIn({'tp-id': 'DEG2-TTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-TTP'}, res['network'][0]['node'][i]['ietf-network-topology:termination-point']) self.assertIn({'tp-id': 'DEG2-CTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-CTP'}, @@ -377,51 +375,51 @@ class TransportPCETopologyTesting(unittest.TestCase): self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADMA01'}, res['network'][0]['node'][i]['supporting-node']) listNode.remove(nodeId) - else: + else: self.assertFalse(True) - self.assertEqual(len(listNode),0) + self.assertEqual(len(listNode), 0) - #Connect the tail XPDRA to ROADMA and vice versa + # Connect the tail XPDRA to ROADMA and vice versa def test_10_connect_tail_xpdr_rdm(self): - #Connect the tail: XPDRA to ROADMA + # Connect the tail: XPDRA to ROADMA url = ("{}/operations/transportpce-networkutils:init-xpdr-rdm-links" - .format(self.restconf_baseurl)) + .format(self.restconf_baseurl)) data = {"networkutils:input": { - "networkutils:links-input": { - "networkutils:xpdr-node": "XPDRA01", - "networkutils:xpdr-num": "1", - "networkutils:network-num": "1", - "networkutils:rdm-node": "ROADMA01", - "networkutils:srg-num": "1", - "networkutils:termination-point-num": "SRG1-PP1-TXRX" + "networkutils:links-input": { + "networkutils:xpdr-node": "XPDRA01", + "networkutils:xpdr-num": "1", + "networkutils:network-num": "1", + "networkutils:rdm-node": "ROADMA01", + "networkutils:srg-num": "1", + "networkutils:termination-point-num": "SRG1-PP1-TXRX" } - } + } } headers = {'content-type': 'application/json'} response = requests.request( - "POST", url, data=json.dumps(data), headers=headers, - auth=('admin', 'admin')) + "POST", url, data=json.dumps(data), headers=headers, + auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) def test_11_connect_tail_rdm_xpdr(self): - #Connect the tail: ROADMA to XPDRA + # Connect the tail: ROADMA to XPDRA url = ("{}/operations/transportpce-networkutils:init-rdm-xpdr-links" - .format(self.restconf_baseurl)) + .format(self.restconf_baseurl)) data = {"networkutils:input": { - "networkutils:links-input": { - "networkutils:xpdr-node": "XPDRA01", - "networkutils:xpdr-num": "1", - "networkutils:network-num": "1", - "networkutils:rdm-node": "ROADMA01", - "networkutils:srg-num": "1", - "networkutils:termination-point-num": "SRG1-PP1-TXRX" + "networkutils:links-input": { + "networkutils:xpdr-node": "XPDRA01", + "networkutils:xpdr-num": "1", + "networkutils:network-num": "1", + "networkutils:rdm-node": "ROADMA01", + "networkutils:srg-num": "1", + "networkutils:termination-point-num": "SRG1-PP1-TXRX" } - } + } } headers = {'content-type': 'application/json'} response = requests.request( - "POST", url, data=json.dumps(data), headers=headers, - auth=('admin', 'admin')) + "POST", url, data=json.dumps(data), headers=headers, + auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) def test_12_getLinks_OpenRoadmTopology(self): @@ -429,67 +427,68 @@ class TransportPCETopologyTesting(unittest.TestCase): .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "GET", url, headers=headers, auth=('admin', 'admin')) + "GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() - #Tests related to links - nbLink=len(res['network'][0]['ietf-network-topology:link']) - self.assertEqual(nbLink,12) - expressLink=['ROADMA01-DEG2-DEG2-CTP-TXRXtoROADMA01-DEG1-DEG1-CTP-TXRX','ROADMA01-DEG1-DEG1-CTP-TXRXtoROADMA01-DEG2-DEG2-CTP-TXRX'] - addLink=['ROADMA01-SRG1-SRG1-CP-TXRXtoROADMA01-DEG2-DEG2-CTP-TXRX','ROADMA01-SRG1-SRG1-CP-TXRXtoROADMA01-DEG1-DEG1-CTP-TXRX', - 'ROADMA01-SRG3-SRG3-CP-TXRXtoROADMA01-DEG2-DEG2-CTP-TXRX','ROADMA01-SRG3-SRG3-CP-TXRXtoROADMA01-DEG1-DEG1-CTP-TXRX'] - dropLink=['ROADMA01-DEG1-DEG1-CTP-TXRXtoROADMA01-SRG1-SRG1-CP-TXRX','ROADMA01-DEG2-DEG2-CTP-TXRXtoROADMA01-SRG1-SRG1-CP-TXRX', - 'ROADMA01-DEG1-DEG1-CTP-TXRXtoROADMA01-SRG3-SRG3-CP-TXRX','ROADMA01-DEG2-DEG2-CTP-TXRXtoROADMA01-SRG3-SRG3-CP-TXRX'] - XPDR_IN=['ROADMA01-SRG1-SRG1-PP1-TXRXtoXPDRA01-XPDR1-XPDR1-NETWORK1'] - XPDR_OUT=['XPDRA01-XPDR1-XPDR1-NETWORK1toROADMA01-SRG1-SRG1-PP1-TXRX'] - for i in range(0,nbLink): - nodeType=res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type'] - linkId=res['network'][0]['ietf-network-topology:link'][i]['link-id'] - if(nodeType=='EXPRESS-LINK'): - find= linkId in expressLink + # Tests related to links + nbLink = len(res['network'][0]['ietf-network-topology:link']) + self.assertEqual(nbLink, 12) + expressLink = ['ROADMA01-DEG2-DEG2-CTP-TXRXtoROADMA01-DEG1-DEG1-CTP-TXRX', + 'ROADMA01-DEG1-DEG1-CTP-TXRXtoROADMA01-DEG2-DEG2-CTP-TXRX'] + addLink = ['ROADMA01-SRG1-SRG1-CP-TXRXtoROADMA01-DEG2-DEG2-CTP-TXRX', 'ROADMA01-SRG1-SRG1-CP-TXRXtoROADMA01-DEG1-DEG1-CTP-TXRX', + 'ROADMA01-SRG3-SRG3-CP-TXRXtoROADMA01-DEG2-DEG2-CTP-TXRX', 'ROADMA01-SRG3-SRG3-CP-TXRXtoROADMA01-DEG1-DEG1-CTP-TXRX'] + dropLink = ['ROADMA01-DEG1-DEG1-CTP-TXRXtoROADMA01-SRG1-SRG1-CP-TXRX', 'ROADMA01-DEG2-DEG2-CTP-TXRXtoROADMA01-SRG1-SRG1-CP-TXRX', + 'ROADMA01-DEG1-DEG1-CTP-TXRXtoROADMA01-SRG3-SRG3-CP-TXRX', 'ROADMA01-DEG2-DEG2-CTP-TXRXtoROADMA01-SRG3-SRG3-CP-TXRX'] + XPDR_IN = ['ROADMA01-SRG1-SRG1-PP1-TXRXtoXPDRA01-XPDR1-XPDR1-NETWORK1'] + XPDR_OUT = ['XPDRA01-XPDR1-XPDR1-NETWORK1toROADMA01-SRG1-SRG1-PP1-TXRX'] + for i in range(0, nbLink): + nodeType = res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type'] + linkId = res['network'][0]['ietf-network-topology:link'][i]['link-id'] + if(nodeType == 'EXPRESS-LINK'): + find = linkId in expressLink self.assertEqual(find, True) expressLink.remove(linkId) - elif(nodeType=='ADD-LINK'): - find= linkId in addLink + elif(nodeType == 'ADD-LINK'): + find = linkId in addLink self.assertEqual(find, True) addLink.remove(linkId) - elif(nodeType=='DROP-LINK'): - find= linkId in dropLink + elif(nodeType == 'DROP-LINK'): + find = linkId in dropLink self.assertEqual(find, True) dropLink.remove(linkId) - elif(nodeType=='XPONDER-INPUT'): - find= linkId in XPDR_IN + elif(nodeType == 'XPONDER-INPUT'): + find = linkId in XPDR_IN self.assertEqual(find, True) XPDR_IN.remove(linkId) - elif(nodeType=='XPONDER-OUTPUT'): - find= linkId in XPDR_OUT + elif(nodeType == 'XPONDER-OUTPUT'): + find = linkId in XPDR_OUT self.assertEqual(find, True) XPDR_OUT.remove(linkId) else: self.assertFalse(True) - self.assertEqual(len(expressLink),0) - self.assertEqual(len(addLink),0) - self.assertEqual(len(dropLink),0) - self.assertEqual(len(XPDR_IN),0) - self.assertEqual(len(XPDR_OUT),0) + self.assertEqual(len(expressLink), 0) + self.assertEqual(len(addLink), 0) + self.assertEqual(len(dropLink), 0) + self.assertEqual(len(XPDR_IN), 0) + self.assertEqual(len(XPDR_OUT), 0) def test_13_connect_ROADMC(self): - #Config ROADMC + # Config ROADMC url = ("{}/config/network-topology:" - "network-topology/topology/topology-netconf/node/ROADMC01" - .format(self.restconf_baseurl)) + "network-topology/topology/topology-netconf/node/ROADMC01" + .format(self.restconf_baseurl)) data = {"node": [{ - "node-id": "ROADMC01", - "netconf-node-topology:username": "admin", - "netconf-node-topology:password": "admin", - "netconf-node-topology:host": "127.0.0.1", - "netconf-node-topology:port": "17833", - "netconf-node-topology:tcp-only": "false", - "netconf-node-topology:pass-through": {}}]} + "node-id": "ROADMC01", + "netconf-node-topology:username": "admin", + "netconf-node-topology:password": "admin", + "netconf-node-topology:host": "127.0.0.1", + "netconf-node-topology:port": "17833", + "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(20) @@ -535,273 +534,274 @@ class TransportPCETopologyTesting(unittest.TestCase): def test_16_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')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() - nbNode=len(res['network'][0]['node']) - listNode=['NodeA','NodeC'] - for i in range(0,nbNode): + nbNode = len(res['network'][0]['node']) + listNode = ['NodeA', 'NodeC'] + for i in range(0, nbNode): nodeId = res['network'][0]['node'][i]['node-id'] - find= nodeId in listNode + find = nodeId in listNode self.assertEqual(find, True) - if(nodeId=='NodeA'): - self.assertEqual(res['network'][0]['node'][i]['org-openroadm-clli-network:clli'],'NodeA') + if(nodeId == 'NodeA'): + self.assertEqual(res['network'][0]['node'][i]['org-openroadm-clli-network:clli'], 'NodeA') else: - self.assertEqual(res['network'][0]['node'][i]['org-openroadm-clli-network:clli'],'NodeC') + self.assertEqual(res['network'][0]['node'][i]['org-openroadm-clli-network:clli'], 'NodeC') listNode.remove(nodeId) - self.assertEqual(len(listNode),0) + self.assertEqual(len(listNode), 0) def test_17_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')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() - nbNode=len(res['network'][0]['node']) - self.assertEqual(nbNode,3) - listNode=['XPDRA01','ROADMA01','ROADMC01'] - for i in range(0,nbNode): - self.assertEqual(res['network'][0]['node'][i]['supporting-node'][0]['network-ref'],'clli-network') - nodeId=res['network'][0]['node'][i]['node-id'] - if(nodeId=='XPDRA01'): - self.assertEqual(res['network'][0]['node'][i]['supporting-node'][0]['node-ref'],'NodeA') - self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'],'XPONDER') - self.assertEqual(res['network'][0]['node'][i]['org-openroadm-network:model'],'1') + nbNode = len(res['network'][0]['node']) + self.assertEqual(nbNode, 3) + listNode = ['XPDRA01', 'ROADMA01', 'ROADMC01'] + for i in range(0, nbNode): + self.assertEqual(res['network'][0]['node'][i]['supporting-node'][0]['network-ref'], 'clli-network') + nodeId = res['network'][0]['node'][i]['node-id'] + if(nodeId == 'XPDRA01'): + self.assertEqual(res['network'][0]['node'][i]['supporting-node'][0]['node-ref'], 'NodeA') + self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'], 'XPONDER') + self.assertEqual(res['network'][0]['node'][i]['org-openroadm-network:model'], '1') listNode.remove(nodeId) - elif(nodeId=='ROADMA01'): - self.assertEqual(res['network'][0]['node'][i]['supporting-node'][0]['node-ref'],'NodeA') - self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'],'ROADM') - self.assertEqual(res['network'][0]['node'][i]['org-openroadm-network:model'],'2') + elif(nodeId == 'ROADMA01'): + self.assertEqual(res['network'][0]['node'][i]['supporting-node'][0]['node-ref'], 'NodeA') + self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'], 'ROADM') + self.assertEqual(res['network'][0]['node'][i]['org-openroadm-network:model'], '2') listNode.remove(nodeId) - elif(nodeId=='ROADMC01'): - self.assertEqual(res['network'][0]['node'][i]['supporting-node'][0]['node-ref'],'NodeC') - self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'],'ROADM') - self.assertEqual(res['network'][0]['node'][i]['org-openroadm-network:model'],'2') + elif(nodeId == 'ROADMC01'): + self.assertEqual(res['network'][0]['node'][i]['supporting-node'][0]['node-ref'], 'NodeC') + self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'], 'ROADM') + self.assertEqual(res['network'][0]['node'][i]['org-openroadm-network:model'], '2') listNode.remove(nodeId) else: self.assertFalse(True) - self.assertEqual(len(listNode),0) + self.assertEqual(len(listNode), 0) def test_18_getROADMLinkOpenRoadmTopology(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')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() - #Tests related to links - nbLink=len(res['network'][0]['ietf-network-topology:link']) - self.assertEqual(nbLink,20) - expressLink=['ROADMA01-DEG2-DEG2-CTP-TXRXtoROADMA01-DEG1-DEG1-CTP-TXRX','ROADMA01-DEG1-DEG1-CTP-TXRXtoROADMA01-DEG2-DEG2-CTP-TXRX', - 'ROADMC01-DEG2-DEG2-CTP-TXRXtoROADMC01-DEG1-DEG1-CTP-TXRX','ROADMC01-DEG1-DEG1-CTP-TXRXtoROADMC01-DEG2-DEG2-CTP-TXRX'] - addLink=['ROADMA01-SRG1-SRG1-CP-TXRXtoROADMA01-DEG2-DEG2-CTP-TXRX','ROADMA01-SRG1-SRG1-CP-TXRXtoROADMA01-DEG1-DEG1-CTP-TXRX', - 'ROADMA01-SRG3-SRG3-CP-TXRXtoROADMA01-DEG2-DEG2-CTP-TXRX','ROADMA01-SRG3-SRG3-CP-TXRXtoROADMA01-DEG1-DEG1-CTP-TXRX', - 'ROADMC01-SRG1-SRG1-CP-TXRXtoROADMC01-DEG2-DEG2-CTP-TXRX','ROADMC01-SRG1-SRG1-CP-TXRXtoROADMC01-DEG1-DEG1-CTP-TXRX'] - dropLink=['ROADMA01-DEG1-DEG1-CTP-TXRXtoROADMA01-SRG1-SRG1-CP-TXRX','ROADMA01-DEG2-DEG2-CTP-TXRXtoROADMA01-SRG1-SRG1-CP-TXRX', - 'ROADMA01-DEG1-DEG1-CTP-TXRXtoROADMA01-SRG3-SRG3-CP-TXRX','ROADMA01-DEG2-DEG2-CTP-TXRXtoROADMA01-SRG3-SRG3-CP-TXRX', - 'ROADMC01-DEG1-DEG1-CTP-TXRXtoROADMC01-SRG1-SRG1-CP-TXRX','ROADMC01-DEG2-DEG2-CTP-TXRXtoROADMC01-SRG1-SRG1-CP-TXRX'] - R2RLink=['ROADMA01-DEG1-DEG1-TTP-TXRXtoROADMC01-DEG2-DEG2-TTP-TXRX','ROADMC01-DEG2-DEG2-TTP-TXRXtoROADMA01-DEG1-DEG1-TTP-TXRX'] - XPDR_IN=['ROADMA01-SRG1-SRG1-PP1-TXRXtoXPDRA01-XPDR1-XPDR1-NETWORK1'] - XPDR_OUT=['XPDRA01-XPDR1-XPDR1-NETWORK1toROADMA01-SRG1-SRG1-PP1-TXRX'] - for i in range(0,nbLink): - nodeType=res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type'] - linkId=res['network'][0]['ietf-network-topology:link'][i]['link-id'] - if(nodeType=='EXPRESS-LINK'): - find= linkId in expressLink + # Tests related to links + nbLink = len(res['network'][0]['ietf-network-topology:link']) + self.assertEqual(nbLink, 20) + expressLink = ['ROADMA01-DEG2-DEG2-CTP-TXRXtoROADMA01-DEG1-DEG1-CTP-TXRX', 'ROADMA01-DEG1-DEG1-CTP-TXRXtoROADMA01-DEG2-DEG2-CTP-TXRX', + 'ROADMC01-DEG2-DEG2-CTP-TXRXtoROADMC01-DEG1-DEG1-CTP-TXRX', 'ROADMC01-DEG1-DEG1-CTP-TXRXtoROADMC01-DEG2-DEG2-CTP-TXRX'] + addLink = ['ROADMA01-SRG1-SRG1-CP-TXRXtoROADMA01-DEG2-DEG2-CTP-TXRX', 'ROADMA01-SRG1-SRG1-CP-TXRXtoROADMA01-DEG1-DEG1-CTP-TXRX', + 'ROADMA01-SRG3-SRG3-CP-TXRXtoROADMA01-DEG2-DEG2-CTP-TXRX', 'ROADMA01-SRG3-SRG3-CP-TXRXtoROADMA01-DEG1-DEG1-CTP-TXRX', + 'ROADMC01-SRG1-SRG1-CP-TXRXtoROADMC01-DEG2-DEG2-CTP-TXRX', 'ROADMC01-SRG1-SRG1-CP-TXRXtoROADMC01-DEG1-DEG1-CTP-TXRX'] + dropLink = ['ROADMA01-DEG1-DEG1-CTP-TXRXtoROADMA01-SRG1-SRG1-CP-TXRX', 'ROADMA01-DEG2-DEG2-CTP-TXRXtoROADMA01-SRG1-SRG1-CP-TXRX', + 'ROADMA01-DEG1-DEG1-CTP-TXRXtoROADMA01-SRG3-SRG3-CP-TXRX', 'ROADMA01-DEG2-DEG2-CTP-TXRXtoROADMA01-SRG3-SRG3-CP-TXRX', + 'ROADMC01-DEG1-DEG1-CTP-TXRXtoROADMC01-SRG1-SRG1-CP-TXRX', 'ROADMC01-DEG2-DEG2-CTP-TXRXtoROADMC01-SRG1-SRG1-CP-TXRX'] + R2RLink = ['ROADMA01-DEG1-DEG1-TTP-TXRXtoROADMC01-DEG2-DEG2-TTP-TXRX', + 'ROADMC01-DEG2-DEG2-TTP-TXRXtoROADMA01-DEG1-DEG1-TTP-TXRX'] + XPDR_IN = ['ROADMA01-SRG1-SRG1-PP1-TXRXtoXPDRA01-XPDR1-XPDR1-NETWORK1'] + XPDR_OUT = ['XPDRA01-XPDR1-XPDR1-NETWORK1toROADMA01-SRG1-SRG1-PP1-TXRX'] + for i in range(0, nbLink): + nodeType = res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type'] + linkId = res['network'][0]['ietf-network-topology:link'][i]['link-id'] + if(nodeType == 'EXPRESS-LINK'): + find = linkId in expressLink self.assertEqual(find, True) expressLink.remove(linkId) - elif(nodeType=='ADD-LINK'): - find= linkId in addLink + elif(nodeType == 'ADD-LINK'): + find = linkId in addLink self.assertEqual(find, True) addLink.remove(linkId) - elif(nodeType=='DROP-LINK'): - find= linkId in dropLink + elif(nodeType == 'DROP-LINK'): + find = linkId in dropLink self.assertEqual(find, True) dropLink.remove(linkId) - elif(nodeType=='ROADM-TO-ROADM'): - find= linkId in R2RLink + elif(nodeType == 'ROADM-TO-ROADM'): + find = linkId in R2RLink self.assertEqual(find, True) R2RLink.remove(linkId) - elif(nodeType=='XPONDER-INPUT'): - find= linkId in XPDR_IN + elif(nodeType == 'XPONDER-INPUT'): + find = linkId in XPDR_IN self.assertEqual(find, True) XPDR_IN.remove(linkId) - elif(nodeType=='XPONDER-OUTPUT'): - find= linkId in XPDR_OUT + elif(nodeType == 'XPONDER-OUTPUT'): + find = linkId in XPDR_OUT self.assertEqual(find, True) XPDR_OUT.remove(linkId) else: self.assertFalse(True) - self.assertEqual(len(expressLink),0) - self.assertEqual(len(addLink),0) - self.assertEqual(len(dropLink),0) - self.assertEqual(len(R2RLink),0) - self.assertEqual(len(XPDR_IN),0) - self.assertEqual(len(XPDR_OUT),0) + self.assertEqual(len(expressLink), 0) + self.assertEqual(len(addLink), 0) + self.assertEqual(len(dropLink), 0) + self.assertEqual(len(R2RLink), 0) + self.assertEqual(len(XPDR_IN), 0) + self.assertEqual(len(XPDR_OUT), 0) def test_19_getLinkOmsAttributesOpenRoadmTopology(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')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() - #Tests related to links - nbLink=len(res['network'][0]['ietf-network-topology:link']) - self.assertEqual(nbLink,20) - R2RLink=['ROADMA01-DEG1-DEG1-TTP-TXRXtoROADMC01-DEG2-DEG2-TTP-TXRX', - 'ROADMC01-DEG2-DEG2-TTP-TXRXtoROADMA01-DEG1-DEG1-TTP-TXRX'] - for i in range(0,nbLink): + # Tests related to links + nbLink = len(res['network'][0]['ietf-network-topology:link']) + self.assertEqual(nbLink, 20) + R2RLink = ['ROADMA01-DEG1-DEG1-TTP-TXRXtoROADMC01-DEG2-DEG2-TTP-TXRX', + 'ROADMC01-DEG2-DEG2-TTP-TXRXtoROADMA01-DEG1-DEG1-TTP-TXRX'] + for i in range(0, nbLink): nodeType = res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type'] - link_id=res['network'][0]['ietf-network-topology:link'][i]['link-id'] + link_id = res['network'][0]['ietf-network-topology:link'][i]['link-id'] if(link_id in R2RLink): find = False spanLoss = res['network'][0]['ietf-network-topology:link'][i][ 'org-openroadm-network-topology:OMS-attributes']['span']["engineered-spanloss"] length = res['network'][0]['ietf-network-topology:link'][i][ 'org-openroadm-network-topology:OMS-attributes']['span']['link-concatenation'][0]['SRLG-length'] - if((spanLoss!=None)&(length!=None)): + if((spanLoss != None) & (length != None)): find = True self.assertTrue(find) R2RLink.remove(link_id) - self.assertEqual(len(R2RLink),0) + self.assertEqual(len(R2RLink), 0) def test_20_getNodes_OpenRoadmTopology(self): - url = ("{}/config/ietf-network:networks/network/openroadm-topology" + url = ("{}/config/ietf-network:networks/network/openroadm-topology" .format(self.restconf_baseurl)) - headers = {'content-type': 'application/json'} - response = requests.request( - "GET", url, headers=headers, auth=('admin', 'admin')) - res = response.json() - #Tests related to nodes - self.assertEqual(response.status_code, requests.codes.ok) - nbNode=len(res['network'][0]['node']) - self.assertEqual(nbNode,8) - listNode=['XPDRA01-XPDR1', - 'ROADMA01-SRG1','ROADMA01-SRG3','ROADMA01-DEG1','ROADMA01-DEG2', - 'ROADMC01-SRG1','ROADMC01-DEG1','ROADMC01-DEG2'] - #************************Tests related to XPDRA nodes - for i in range(0,nbNode): - nodeType=res['network'][0]['node'][i]['org-openroadm-common-network:node-type'] - nodeId=res['network'][0]['node'][i]['node-id'] - if(nodeId=='XPDRA01-XPDR1'): - self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'XPDRA01'}, - res['network'][0]['node'][i]['supporting-node']) - self.assertEqual(nodeType,'XPONDER') - nbTps=len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']) - self.assertTrue(nbTps == 6) - client = 0 - network = 0 - for j in range(0,nbTps): - tpType=res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['org-openroadm-common-network:tp-type'] - if (tpType=='XPONDER-CLIENT'): - client += 1 - elif (tpType=='XPONDER-NETWORK'): - network += 1 - self.assertTrue(client == 4) - self.assertTrue(network == 2) - listNode.remove(nodeId) - elif(nodeId=='ROADMA01-SRG1'): - #Test related to SRG1 - self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']),17) - self.assertIn({'tp-id': 'SRG1-CP-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-CP'}, - res['network'][0]['node'][i]['ietf-network-topology:termination-point']) - self.assertIn({'tp-id': 'SRG1-PP1-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-PP'}, - res['network'][0]['node'][i]['ietf-network-topology:termination-point']) - self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADMA01'}, - res['network'][0]['node'][i]['supporting-node']) - self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'],'SRG') - listNode.remove(nodeId) - elif(nodeId=='ROADMA01-SRG3'): - #Test related to SRG1 - self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']),17) - self.assertIn({'tp-id': 'SRG3-CP-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-CP'}, - res['network'][0]['node'][i]['ietf-network-topology:termination-point']) - self.assertIn({'tp-id': 'SRG3-PP1-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-PP'}, - res['network'][0]['node'][i]['ietf-network-topology:termination-point']) - self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADMA01'}, - res['network'][0]['node'][i]['supporting-node']) - self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'],'SRG') - listNode.remove(nodeId) - elif(nodeId=='ROADMA01-DEG1'): - #Test related to DEG1 - self.assertIn({'tp-id': 'DEG1-TTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-TTP'}, - res['network'][0]['node'][i]['ietf-network-topology:termination-point']) - self.assertIn({'tp-id': 'DEG1-CTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-CTP'}, - res['network'][0]['node'][i]['ietf-network-topology:termination-point']) - self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADMA01'}, - res['network'][0]['node'][i]['supporting-node']) - self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'],'DEGREE') - listNode.remove(nodeId) - elif(nodeId=='ROADMA01-DEG2'): - #Test related to DEG2 - self.assertIn({'tp-id': 'DEG2-TTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-TTP'}, - res['network'][0]['node'][i]['ietf-network-topology:termination-point']) - self.assertIn({'tp-id': 'DEG2-CTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-CTP'}, - res['network'][0]['node'][i]['ietf-network-topology:termination-point']) - self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADMA01'}, - res['network'][0]['node'][i]['supporting-node']) - self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'],'DEGREE') - listNode.remove(nodeId) - elif(nodeId=='ROADMC01-SRG1'): - #Test related to SRG1 - self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']),17) - self.assertIn({'tp-id': 'SRG1-CP-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-CP'}, - res['network'][0]['node'][i]['ietf-network-topology:termination-point']) - self.assertIn({'tp-id': 'SRG1-PP1-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-PP'}, - res['network'][0]['node'][i]['ietf-network-topology:termination-point']) - self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADMC01'}, - res['network'][0]['node'][i]['supporting-node']) - self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'],'SRG') - listNode.remove(nodeId) - elif(nodeId=='ROADMC01-DEG1'): - #Test related to DEG1 - self.assertIn({'tp-id': 'DEG1-TTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-TTP'}, - res['network'][0]['node'][i]['ietf-network-topology:termination-point']) - self.assertIn({'tp-id': 'DEG1-CTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-CTP'}, - res['network'][0]['node'][i]['ietf-network-topology:termination-point']) - self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADMC01'}, - res['network'][0]['node'][i]['supporting-node']) - self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'],'DEGREE') - listNode.remove(nodeId) - elif(nodeId=='ROADMC01-DEG2'): - #Test related to DEG2 - self.assertIn({'tp-id': 'DEG2-TTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-TTP'}, - res['network'][0]['node'][i]['ietf-network-topology:termination-point']) - self.assertIn({'tp-id': 'DEG2-CTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-CTP'}, - res['network'][0]['node'][i]['ietf-network-topology:termination-point']) - self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADMC01'}, - res['network'][0]['node'][i]['supporting-node']) - self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'],'DEGREE') - listNode.remove(nodeId) - else: + headers = {'content-type': 'application/json'} + response = requests.request( + "GET", url, headers=headers, auth=('admin', 'admin')) + res = response.json() + # Tests related to nodes + self.assertEqual(response.status_code, requests.codes.ok) + nbNode = len(res['network'][0]['node']) + self.assertEqual(nbNode, 8) + listNode = ['XPDRA01-XPDR1', + 'ROADMA01-SRG1', 'ROADMA01-SRG3', 'ROADMA01-DEG1', 'ROADMA01-DEG2', + 'ROADMC01-SRG1', 'ROADMC01-DEG1', 'ROADMC01-DEG2'] + # ************************Tests related to XPDRA nodes + for i in range(0, nbNode): + nodeType = res['network'][0]['node'][i]['org-openroadm-common-network:node-type'] + nodeId = res['network'][0]['node'][i]['node-id'] + if(nodeId == 'XPDRA01-XPDR1'): + self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'XPDRA01'}, + res['network'][0]['node'][i]['supporting-node']) + self.assertEqual(nodeType, 'XPONDER') + nbTps = len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']) + self.assertTrue(nbTps == 6) + client = 0 + network = 0 + for j in range(0, nbTps): + tpType = res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['org-openroadm-common-network:tp-type'] + if (tpType == 'XPONDER-CLIENT'): + client += 1 + elif (tpType == 'XPONDER-NETWORK'): + network += 1 + self.assertTrue(client == 4) + self.assertTrue(network == 2) + listNode.remove(nodeId) + elif(nodeId == 'ROADMA01-SRG1'): + # Test related to SRG1 + self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']), 17) + self.assertIn({'tp-id': 'SRG1-CP-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-CP'}, + res['network'][0]['node'][i]['ietf-network-topology:termination-point']) + self.assertIn({'tp-id': 'SRG1-PP1-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-PP'}, + res['network'][0]['node'][i]['ietf-network-topology:termination-point']) + self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADMA01'}, + res['network'][0]['node'][i]['supporting-node']) + self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'], 'SRG') + listNode.remove(nodeId) + elif(nodeId == 'ROADMA01-SRG3'): + # Test related to SRG1 + self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']), 17) + self.assertIn({'tp-id': 'SRG3-CP-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-CP'}, + res['network'][0]['node'][i]['ietf-network-topology:termination-point']) + self.assertIn({'tp-id': 'SRG3-PP1-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-PP'}, + res['network'][0]['node'][i]['ietf-network-topology:termination-point']) + self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADMA01'}, + res['network'][0]['node'][i]['supporting-node']) + self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'], 'SRG') + listNode.remove(nodeId) + elif(nodeId == 'ROADMA01-DEG1'): + # Test related to DEG1 + self.assertIn({'tp-id': 'DEG1-TTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-TTP'}, + res['network'][0]['node'][i]['ietf-network-topology:termination-point']) + self.assertIn({'tp-id': 'DEG1-CTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-CTP'}, + res['network'][0]['node'][i]['ietf-network-topology:termination-point']) + self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADMA01'}, + res['network'][0]['node'][i]['supporting-node']) + self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'], 'DEGREE') + listNode.remove(nodeId) + elif(nodeId == 'ROADMA01-DEG2'): + # Test related to DEG2 + self.assertIn({'tp-id': 'DEG2-TTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-TTP'}, + res['network'][0]['node'][i]['ietf-network-topology:termination-point']) + self.assertIn({'tp-id': 'DEG2-CTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-CTP'}, + res['network'][0]['node'][i]['ietf-network-topology:termination-point']) + self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADMA01'}, + res['network'][0]['node'][i]['supporting-node']) + self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'], 'DEGREE') + listNode.remove(nodeId) + elif(nodeId == 'ROADMC01-SRG1'): + # Test related to SRG1 + self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']), 17) + self.assertIn({'tp-id': 'SRG1-CP-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-CP'}, + res['network'][0]['node'][i]['ietf-network-topology:termination-point']) + self.assertIn({'tp-id': 'SRG1-PP1-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-PP'}, + res['network'][0]['node'][i]['ietf-network-topology:termination-point']) + self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADMC01'}, + res['network'][0]['node'][i]['supporting-node']) + self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'], 'SRG') + listNode.remove(nodeId) + elif(nodeId == 'ROADMC01-DEG1'): + # Test related to DEG1 + self.assertIn({'tp-id': 'DEG1-TTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-TTP'}, + res['network'][0]['node'][i]['ietf-network-topology:termination-point']) + self.assertIn({'tp-id': 'DEG1-CTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-CTP'}, + res['network'][0]['node'][i]['ietf-network-topology:termination-point']) + self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADMC01'}, + res['network'][0]['node'][i]['supporting-node']) + self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'], 'DEGREE') + listNode.remove(nodeId) + elif(nodeId == 'ROADMC01-DEG2'): + # Test related to DEG2 + self.assertIn({'tp-id': 'DEG2-TTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-TTP'}, + res['network'][0]['node'][i]['ietf-network-topology:termination-point']) + self.assertIn({'tp-id': 'DEG2-CTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-CTP'}, + res['network'][0]['node'][i]['ietf-network-topology:termination-point']) + self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADMC01'}, + res['network'][0]['node'][i]['supporting-node']) + self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'], 'DEGREE') + listNode.remove(nodeId) + else: self.assertFalse(True) - self.assertEqual(len(listNode),0) + self.assertEqual(len(listNode), 0) def test_21_connect_ROADMB(self): url = ("{}/config/network-topology:" - "network-topology/topology/topology-netconf/node/ROADMB01" + "network-topology/topology/topology-netconf/node/ROADMB01" .format(self.restconf_baseurl)) data = {"node": [{ - "node-id": "ROADMB01", - "netconf-node-topology:username": "admin", - "netconf-node-topology:password": "admin", - "netconf-node-topology:host": "127.0.0.1", - "netconf-node-topology:port": "17832", - "netconf-node-topology:tcp-only": "false", - "netconf-node-topology:pass-through": {}}]} + "node-id": "ROADMB01", + "netconf-node-topology:username": "admin", + "netconf-node-topology:password": "admin", + "netconf-node-topology:host": "127.0.0.1", + "netconf-node-topology:port": "17832", + "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(20) @@ -821,8 +821,8 @@ class TransportPCETopologyTesting(unittest.TestCase): "pmd": 0.5}]}} 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) def test_23_omsAttributes_ROADMB_ROADMA(self): @@ -841,8 +841,8 @@ class TransportPCETopologyTesting(unittest.TestCase): "pmd": 0.5}]}} 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) def test_24_omsAttributes_ROADMB_ROADMC(self): @@ -861,8 +861,8 @@ class TransportPCETopologyTesting(unittest.TestCase): "pmd": 0.5}]}} 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) def test_25_omsAttributes_ROADMC_ROADMB(self): @@ -881,184 +881,185 @@ class TransportPCETopologyTesting(unittest.TestCase): "pmd": 0.5}]}} 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) def test_26_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')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() - nbNode=len(res['network'][0]['node']) - listNode=['NodeA','NodeB','NodeC'] - for i in range(0,nbNode): + nbNode = len(res['network'][0]['node']) + listNode = ['NodeA', 'NodeB', 'NodeC'] + for i in range(0, nbNode): nodeId = res['network'][0]['node'][i]['node-id'] - find= nodeId in listNode + find = nodeId in listNode self.assertEqual(find, True) - if(nodeId=='NodeA'): - self.assertEqual(res['network'][0]['node'][i]['org-openroadm-clli-network:clli'],'NodeA') - elif(nodeId=='NodeB'): - self.assertEqual(res['network'][0]['node'][i]['org-openroadm-clli-network:clli'],'NodeB') + if(nodeId == 'NodeA'): + self.assertEqual(res['network'][0]['node'][i]['org-openroadm-clli-network:clli'], 'NodeA') + elif(nodeId == 'NodeB'): + self.assertEqual(res['network'][0]['node'][i]['org-openroadm-clli-network:clli'], 'NodeB') else: - self.assertEqual(res['network'][0]['node'][i]['org-openroadm-clli-network:clli'],'NodeC') + self.assertEqual(res['network'][0]['node'][i]['org-openroadm-clli-network:clli'], 'NodeC') listNode.remove(nodeId) - self.assertEqual(len(listNode),0) + self.assertEqual(len(listNode), 0) def test_27_verifyDegree(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')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() - #Tests related to links - nbLink=len(res['network'][0]['ietf-network-topology:link']) - listR2RLink=['ROADMA01-DEG1-DEG1-TTP-TXRXtoROADMC01-DEG2-DEG2-TTP-TXRX','ROADMC01-DEG2-DEG2-TTP-TXRXtoROADMA01-DEG1-DEG1-TTP-TXRX', - 'ROADMA01-DEG2-DEG2-TTP-TXRXtoROADMB01-DEG1-DEG1-TTP-TXRX','ROADMC01-DEG1-DEG1-TTP-TXRXtoROADMB01-DEG2-DEG2-TTP-TXRX', - 'ROADMB01-DEG1-DEG1-TTP-TXRXtoROADMA01-DEG2-DEG2-TTP-TXRX','ROADMB01-DEG2-DEG2-TTP-TXRXtoROADMC01-DEG1-DEG1-TTP-TXRX'] - for i in range(0,nbLink): + # Tests related to links + nbLink = len(res['network'][0]['ietf-network-topology:link']) + listR2RLink = ['ROADMA01-DEG1-DEG1-TTP-TXRXtoROADMC01-DEG2-DEG2-TTP-TXRX', 'ROADMC01-DEG2-DEG2-TTP-TXRXtoROADMA01-DEG1-DEG1-TTP-TXRX', + 'ROADMA01-DEG2-DEG2-TTP-TXRXtoROADMB01-DEG1-DEG1-TTP-TXRX', 'ROADMC01-DEG1-DEG1-TTP-TXRXtoROADMB01-DEG2-DEG2-TTP-TXRX', + 'ROADMB01-DEG1-DEG1-TTP-TXRXtoROADMA01-DEG2-DEG2-TTP-TXRX', 'ROADMB01-DEG2-DEG2-TTP-TXRXtoROADMC01-DEG1-DEG1-TTP-TXRX'] + for i in range(0, nbLink): if res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type'] == 'ROADM-TO-ROADM': link_id = res['network'][0]['ietf-network-topology:link'][i]['link-id'] - find= link_id in listR2RLink + find = link_id in listR2RLink self.assertEqual(find, True) listR2RLink.remove(link_id) - self.assertEqual(len(listR2RLink),0) + self.assertEqual(len(listR2RLink), 0) def test_28_verifyOppositeLinkTopology(self): url = ("{}/config/ietf-network:networks/network/openroadm-topology" .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "GET", url, headers=headers, auth=('admin', 'admin')) + "GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() - #Tests related to links - nbLink=len(res['network'][0]['ietf-network-topology:link']) - self.assertEqual(nbLink,34) - for i in range(0,nbLink): - link_id=res['network'][0]['ietf-network-topology:link'][i]['link-id'] - link_type=res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type'] - link_src=res['network'][0]['ietf-network-topology:link'][i]['source']['source-node'] - link_dest=res['network'][0]['ietf-network-topology:link'][i]['destination']['dest-node'] - oppLink_id=res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:opposite-link'] - #Find the opposite link - url_oppLink="{}/config/ietf-network:networks/network/openroadm-topology/ietf-network-topology:link/"+oppLink_id + # Tests related to links + nbLink = len(res['network'][0]['ietf-network-topology:link']) + self.assertEqual(nbLink, 34) + for i in range(0, nbLink): + link_id = res['network'][0]['ietf-network-topology:link'][i]['link-id'] + link_type = res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type'] + link_src = res['network'][0]['ietf-network-topology:link'][i]['source']['source-node'] + link_dest = res['network'][0]['ietf-network-topology:link'][i]['destination']['dest-node'] + oppLink_id = res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:opposite-link'] + # Find the opposite link + url_oppLink = "{}/config/ietf-network:networks/network/openroadm-topology/ietf-network-topology:link/"+oppLink_id url = (url_oppLink.format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response_oppLink = requests.request("GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response_oppLink.status_code, requests.codes.ok) res_oppLink = response_oppLink.json() - self.assertEqual(res_oppLink['ietf-network-topology:link'][0]['org-openroadm-common-network:opposite-link'],link_id) - self.assertEqual(res_oppLink['ietf-network-topology:link'][0]['source']['source-node'],link_dest) - self.assertEqual(res_oppLink['ietf-network-topology:link'][0]['destination']['dest-node'],link_src) - oppLink_type=res_oppLink['ietf-network-topology:link'][0]['org-openroadm-common-network:link-type'] - if link_type=='ADD-LINK': + self.assertEqual(res_oppLink['ietf-network-topology:link'][0] + ['org-openroadm-common-network:opposite-link'], link_id) + self.assertEqual(res_oppLink['ietf-network-topology:link'][0]['source']['source-node'], link_dest) + self.assertEqual(res_oppLink['ietf-network-topology:link'][0]['destination']['dest-node'], link_src) + oppLink_type = res_oppLink['ietf-network-topology:link'][0]['org-openroadm-common-network:link-type'] + if link_type == 'ADD-LINK': self.assertEqual(oppLink_type, 'DROP-LINK') - elif link_type=='DROP-LINK': + elif link_type == 'DROP-LINK': self.assertEqual(oppLink_type, 'ADD-LINK') - elif link_type=='EXPRESS-LINK': + elif link_type == 'EXPRESS-LINK': self.assertEqual(oppLink_type, 'EXPRESS-LINK') - elif link_type=='ROADM-TO-ROADM': + elif link_type == 'ROADM-TO-ROADM': self.assertEqual(oppLink_type, 'ROADM-TO-ROADM') - elif link_type=='XPONDER-INPUT': + elif link_type == 'XPONDER-INPUT': self.assertEqual(oppLink_type, 'XPONDER-OUTPUT') - elif link_type=='XPONDER-OUTPUT': + elif link_type == 'XPONDER-OUTPUT': self.assertEqual(oppLink_type, 'XPONDER-INPUT') def test_29_getLinkOmsAttributesOpenRoadmTopology(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')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() - nbLink=len(res['network'][0]['ietf-network-topology:link']) + nbLink = len(res['network'][0]['ietf-network-topology:link']) R2RLink = ['ROADMA01-DEG1-DEG1-TTP-TXRXtoROADMC01-DEG2-DEG2-TTP-TXRX', - 'ROADMC01-DEG2-DEG2-TTP-TXRXtoROADMA01-DEG1-DEG1-TTP-TXRX', - 'ROADMA01-DEG2-DEG2-TTP-TXRXtoROADMB01-DEG1-DEG1-TTP-TXRX', - 'ROADMC01-DEG1-DEG1-TTP-TXRXtoROADMB01-DEG2-DEG2-TTP-TXRX', - 'ROADMB01-DEG1-DEG1-TTP-TXRXtoROADMA01-DEG2-DEG2-TTP-TXRX', - 'ROADMB01-DEG2-DEG2-TTP-TXRXtoROADMC01-DEG1-DEG1-TTP-TXRX'] - for i in range(0,nbLink): + 'ROADMC01-DEG2-DEG2-TTP-TXRXtoROADMA01-DEG1-DEG1-TTP-TXRX', + 'ROADMA01-DEG2-DEG2-TTP-TXRXtoROADMB01-DEG1-DEG1-TTP-TXRX', + 'ROADMC01-DEG1-DEG1-TTP-TXRXtoROADMB01-DEG2-DEG2-TTP-TXRX', + 'ROADMB01-DEG1-DEG1-TTP-TXRXtoROADMA01-DEG2-DEG2-TTP-TXRX', + 'ROADMB01-DEG2-DEG2-TTP-TXRXtoROADMC01-DEG1-DEG1-TTP-TXRX'] + for i in range(0, nbLink): nodeType = res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type'] - link_id=res['network'][0]['ietf-network-topology:link'][i]['link-id'] + link_id = res['network'][0]['ietf-network-topology:link'][i]['link-id'] if(link_id in R2RLink): find = False spanLoss = res['network'][0]['ietf-network-topology:link'][i][ 'org-openroadm-network-topology:OMS-attributes']['span']["engineered-spanloss"] length = res['network'][0]['ietf-network-topology:link'][i][ 'org-openroadm-network-topology:OMS-attributes']['span']['link-concatenation'][0]['SRLG-length'] - if((spanLoss!=None)&(length!=None)): + if((spanLoss != None) & (length != None)): find = True self.assertTrue(find) R2RLink.remove(link_id) - self.assertEqual(len(R2RLink),0) + self.assertEqual(len(R2RLink), 0) def test_30_disconnect_ROADMB(self): - #Delete in the topology-netconf + # Delete in the topology-netconf url = ("{}/config/network-topology:" - "network-topology/topology/topology-netconf/node/ROADMB01" + "network-topology/topology/topology-netconf/node/ROADMB01" .format(self.restconf_baseurl)) data = {} headers = {'content-type': 'application/json'} response = requests.request( - "DELETE", url, data=json.dumps(data), headers=headers, - auth=('admin', 'admin')) + "DELETE", url, data=json.dumps(data), headers=headers, + auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) - #Delete in the clli-network + # Delete in the clli-network url = ("{}/config/ietf-network:networks/network/clli-network/node/NodeB" .format(self.restconf_baseurl)) data = {} headers = {'content-type': 'application/json'} response = requests.request( - "DELETE", url, data=json.dumps(data), headers=headers, - auth=('admin', 'admin')) + "DELETE", url, data=json.dumps(data), headers=headers, + auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) def test_31_disconnect_ROADMC(self): - #Delete in the topology-netconf + # Delete in the topology-netconf url = ("{}/config/network-topology:" - "network-topology/topology/topology-netconf/node/ROADMC01" + "network-topology/topology/topology-netconf/node/ROADMC01" .format(self.restconf_baseurl)) data = {} headers = {'content-type': 'application/json'} response = requests.request( - "DELETE", url, data=json.dumps(data), headers=headers, - auth=('admin', 'admin')) + "DELETE", url, data=json.dumps(data), headers=headers, + auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) - #Delete in the clli-network + # Delete in the clli-network url = ("{}/config/ietf-network:networks/network/clli-network/node/NodeC" .format(self.restconf_baseurl)) data = {} headers = {'content-type': 'application/json'} response = requests.request( - "DELETE", url, data=json.dumps(data), headers=headers, - auth=('admin', 'admin')) + "DELETE", url, data=json.dumps(data), headers=headers, + auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) def test_32_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')) res = response.json() - #Tests related to nodes + # Tests related to nodes self.assertEqual(response.status_code, requests.codes.ok) - nbNode=len(res['network'][0]['node']) - self.assertEqual(nbNode,5) - listNode=['XPDRA01-XPDR1','ROADMA01-SRG1', 'ROADMA01-SRG3','ROADMA01-DEG1','ROADMA01-DEG2'] - for i in range(0,nbNode): - nodeType=res['network'][0]['node'][i]['org-openroadm-common-network:node-type'] - nodeId=res['network'][0]['node'][i]['node-id'] - #Tests related to XPDRA nodes - if(nodeId=='XPDRA01-XPDR1'): + nbNode = len(res['network'][0]['node']) + self.assertEqual(nbNode, 5) + listNode = ['XPDRA01-XPDR1', 'ROADMA01-SRG1', 'ROADMA01-SRG3', 'ROADMA01-DEG1', 'ROADMA01-DEG2'] + for i in range(0, nbNode): + nodeType = res['network'][0]['node'][i]['org-openroadm-common-network:node-type'] + nodeId = res['network'][0]['node'][i]['node-id'] + # Tests related to XPDRA nodes + if(nodeId == 'XPDRA01-XPDR1'): nbTp = len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']) for j in range(0, nbTp): tpid = res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['tp-id'] @@ -1072,12 +1073,12 @@ class TransportPCETopologyTesting(unittest.TestCase): ['org-openroadm-network-topology:xpdr-network-attributes']['tail-equipment-id'], 'ROADMA01-SRG1--SRG1-PP1-TXRX') self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'XPDRA01'}, - res['network'][0]['node'][i]['supporting-node']) + res['network'][0]['node'][i]['supporting-node']) listNode.remove(nodeId) - elif(nodeId=='ROADMA01-SRG1'): - #Test related to SRG1 - self.assertEqual(nodeType,'SRG') - self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']),17) + elif(nodeId == 'ROADMA01-SRG1'): + # Test related to SRG1 + self.assertEqual(nodeType, 'SRG') + self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']), 17) self.assertIn({'tp-id': 'SRG1-CP-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-CP'}, res['network'][0]['node'][i]['ietf-network-topology:termination-point']) self.assertIn({'tp-id': 'SRG1-PP1-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-PP'}, @@ -1085,10 +1086,10 @@ class TransportPCETopologyTesting(unittest.TestCase): self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADMA01'}, res['network'][0]['node'][i]['supporting-node']) listNode.remove(nodeId) - elif(nodeId=='ROADMA01-SRG3'): - #Test related to SRG1 - self.assertEqual(nodeType,'SRG') - self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']),17) + elif(nodeId == 'ROADMA01-SRG3'): + # Test related to SRG1 + self.assertEqual(nodeType, 'SRG') + self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']), 17) self.assertIn({'tp-id': 'SRG3-CP-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-CP'}, res['network'][0]['node'][i]['ietf-network-topology:termination-point']) self.assertIn({'tp-id': 'SRG3-PP1-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-PP'}, @@ -1096,19 +1097,19 @@ class TransportPCETopologyTesting(unittest.TestCase): self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADMA01'}, res['network'][0]['node'][i]['supporting-node']) listNode.remove(nodeId) - elif(nodeId=='ROADMA01-DEG1'): - #Test related to DEG1 - self.assertEqual(nodeType,'DEGREE') + elif(nodeId == 'ROADMA01-DEG1'): + # Test related to DEG1 + self.assertEqual(nodeType, 'DEGREE') self.assertIn({'tp-id': 'DEG1-TTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-TTP'}, - res['network'][0]['node'][i]['ietf-network-topology:termination-point']) + res['network'][0]['node'][i]['ietf-network-topology:termination-point']) self.assertIn({'tp-id': 'DEG1-CTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-CTP'}, - res['network'][0]['node'][i]['ietf-network-topology:termination-point']) + res['network'][0]['node'][i]['ietf-network-topology:termination-point']) self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADMA01'}, - res['network'][0]['node'][i]['supporting-node']) + res['network'][0]['node'][i]['supporting-node']) listNode.remove(nodeId) - elif(nodeId=='ROADMA01-DEG2'): - #Test related to DEG2 - self.assertEqual(nodeType,'DEGREE') + elif(nodeId == 'ROADMA01-DEG2'): + # Test related to DEG2 + self.assertEqual(nodeType, 'DEGREE') self.assertIn({'tp-id': 'DEG2-TTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-TTP'}, res['network'][0]['node'][i]['ietf-network-topology:termination-point']) self.assertIn({'tp-id': 'DEG2-CTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-CTP'}, @@ -1118,44 +1119,44 @@ class TransportPCETopologyTesting(unittest.TestCase): listNode.remove(nodeId) else: self.assertFalse(True) - self.assertEqual(len(listNode),0) - #Test related to SRG1 of ROADMC - for i in range(0,nbNode): - self.assertNotEqual(res['network'][0]['node'][i]['node-id'],'ROADMC01-SRG1') - self.assertNotEqual(res['network'][0]['node'][i]['node-id'],'ROADMC01-DEG1') - self.assertNotEqual(res['network'][0]['node'][i]['node-id'],'ROADMC01-DEG2') + self.assertEqual(len(listNode), 0) + # Test related to SRG1 of ROADMC + for i in range(0, nbNode): + self.assertNotEqual(res['network'][0]['node'][i]['node-id'], 'ROADMC01-SRG1') + self.assertNotEqual(res['network'][0]['node'][i]['node-id'], 'ROADMC01-DEG1') + self.assertNotEqual(res['network'][0]['node'][i]['node-id'], 'ROADMC01-DEG2') def test_33_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')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() - nbNode=len(res['network'][0]['node']) - self.assertEqual(nbNode,2) - for i in range(0,nbNode-1): - self.assertNotEqual(res['network'][0]['node'][i]['node-id'],'ROADMC01') - self.assertNotEqual(res['network'][0]['node'][i]['node-id'],'ROADMB01') + nbNode = len(res['network'][0]['node']) + self.assertEqual(nbNode, 2) + for i in range(0, nbNode-1): + self.assertNotEqual(res['network'][0]['node'][i]['node-id'], 'ROADMC01') + self.assertNotEqual(res['network'][0]['node'][i]['node-id'], 'ROADMB01') def test_34_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')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() - nbNode=len(res['network'][0]['node']) - self.assertEqual(nbNode,1) - for i in range(0,nbNode-1): - self.assertNotEqual(res['network'][0]['node'][1]['org-openroadm-clli-network:clli'],'NodeC') + nbNode = len(res['network'][0]['node']) + self.assertEqual(nbNode, 1) + for i in range(0, nbNode-1): + self.assertNotEqual(res['network'][0]['node'][1]['org-openroadm-clli-network:clli'], 'NodeC') def test_35_disconnect_XPDRA(self): url = ("{}/config/network-topology:" "network-topology/topology/topology-netconf/node/XPDRA01" - .format(self.restconf_baseurl)) + .format(self.restconf_baseurl)) data = {} headers = {'content-type': 'application/json'} response = requests.request( @@ -1165,75 +1166,75 @@ class TransportPCETopologyTesting(unittest.TestCase): def test_36_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')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() - nbNode=len(res['network'][0]['node']) - self.assertEqual(nbNode,1) - self.assertEqual(res['network'][0]['node'][0]['org-openroadm-clli-network:clli'],'NodeA') + nbNode = len(res['network'][0]['node']) + self.assertEqual(nbNode, 1) + self.assertEqual(res['network'][0]['node'][0]['org-openroadm-clli-network:clli'], 'NodeA') def test_37_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')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() - nbNode=len(res['network'][0]['node']) - self.assertEqual(nbNode,1) - for i in range(0,nbNode): - self.assertNotEqual(res['network'][0]['node'][i]['node-id'],'XPDRA01') + nbNode = len(res['network'][0]['node']) + self.assertEqual(nbNode, 1) + for i in range(0, nbNode): + self.assertNotEqual(res['network'][0]['node'][i]['node-id'], 'XPDRA01') def test_38_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')) res = response.json() - #Tests related to nodes + # Tests related to nodes self.assertEqual(response.status_code, requests.codes.ok) - nbNode=len(res['network'][0]['node']) - self.assertEqual(nbNode,4) - listNode=['ROADMA01-SRG1','ROADMA01-SRG3','ROADMA01-DEG1','ROADMA01-DEG2'] - for i in range(0,nbNode): + nbNode = len(res['network'][0]['node']) + self.assertEqual(nbNode, 4) + listNode = ['ROADMA01-SRG1', 'ROADMA01-SRG3', 'ROADMA01-DEG1', 'ROADMA01-DEG2'] + for i in range(0, nbNode): self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADMA01'}, res['network'][0]['node'][i]['supporting-node']) - nodeType=res['network'][0]['node'][i]['org-openroadm-common-network:node-type'] - nodeId=res['network'][0]['node'][i]['node-id'] - if(nodeId=='ROADMA01-SRG1'): - #Test related to SRG1 - self.assertEqual(nodeType,'SRG') - self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']),17) + nodeType = res['network'][0]['node'][i]['org-openroadm-common-network:node-type'] + nodeId = res['network'][0]['node'][i]['node-id'] + if(nodeId == 'ROADMA01-SRG1'): + # Test related to SRG1 + self.assertEqual(nodeType, 'SRG') + self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']), 17) self.assertIn({'tp-id': 'SRG1-CP-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-CP'}, res['network'][0]['node'][i]['ietf-network-topology:termination-point']) self.assertIn({'tp-id': 'SRG1-PP1-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-PP'}, res['network'][0]['node'][i]['ietf-network-topology:termination-point']) listNode.remove(nodeId) - elif(nodeId=='ROADMA01-SRG3'): - #Test related to SRG1 - self.assertEqual(nodeType,'SRG') - self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']),17) + elif(nodeId == 'ROADMA01-SRG3'): + # Test related to SRG1 + self.assertEqual(nodeType, 'SRG') + self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']), 17) self.assertIn({'tp-id': 'SRG3-CP-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-CP'}, res['network'][0]['node'][i]['ietf-network-topology:termination-point']) self.assertIn({'tp-id': 'SRG3-PP1-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-PP'}, res['network'][0]['node'][i]['ietf-network-topology:termination-point']) listNode.remove(nodeId) - elif(nodeId=='ROADMA01-DEG1'): - #Test related to DEG1 - self.assertEqual(nodeType,'DEGREE') + elif(nodeId == 'ROADMA01-DEG1'): + # Test related to DEG1 + self.assertEqual(nodeType, 'DEGREE') self.assertIn({'tp-id': 'DEG1-TTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-TTP'}, res['network'][0]['node'][i]['ietf-network-topology:termination-point']) self.assertIn({'tp-id': 'DEG1-CTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-CTP'}, res['network'][0]['node'][i]['ietf-network-topology:termination-point']) listNode.remove(nodeId) - elif(nodeId=='ROADMA01-DEG2'): - #Test related to DEG2 - self.assertEqual(nodeType,'DEGREE') + elif(nodeId == 'ROADMA01-DEG2'): + # Test related to DEG2 + self.assertEqual(nodeType, 'DEGREE') self.assertIn({'tp-id': 'DEG2-TTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-TTP'}, res['network'][0]['node'][i]['ietf-network-topology:termination-point']) self.assertIn({'tp-id': 'DEG2-CTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-CTP'}, @@ -1241,95 +1242,98 @@ class TransportPCETopologyTesting(unittest.TestCase): listNode.remove(nodeId) else: self.assertFalse(True) - self.assertEqual(len(listNode),0) + self.assertEqual(len(listNode), 0) def test_39_disconnect_ROADM_XPDRA_link(self): - #Link-1 + # Link-1 url = ("{}/config/ietf-network:networks/network/openroadm-topology/ietf-network-topology:" "link/XPDRA01-XPDR1-XPDR1-NETWORK1toROADMA01-SRG1-SRG1-PP1-TXRX" - .format(self.restconf_baseurl)) + .format(self.restconf_baseurl)) data = {} headers = {'content-type': 'application/json'} response = requests.request( - "DELETE", url, data=json.dumps(data), headers=headers, - auth=('admin', 'admin')) + "DELETE", url, data=json.dumps(data), headers=headers, + auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) - #Link-2 + # Link-2 url = ("{}/config/ietf-network:networks/network/openroadm-topology/ietf-network-topology:" "link/ROADMA01-SRG1-SRG1-PP1-TXRXtoXPDRA01-XPDR1-XPDR1-NETWORK1" - .format(self.restconf_baseurl)) + .format(self.restconf_baseurl)) data = {} headers = {'content-type': 'application/json'} response = requests.request( - "DELETE", url, data=json.dumps(data), headers=headers, - auth=('admin', 'admin')) + "DELETE", url, data=json.dumps(data), headers=headers, + auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) def test_40_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')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() - nbLink=len(res['network'][0]['ietf-network-topology:link']) - self.assertEqual(nbLink,16) - expressLink=['ROADMA01-DEG2-DEG2-CTP-TXRXtoROADMA01-DEG1-DEG1-CTP-TXRX','ROADMA01-DEG1-DEG1-CTP-TXRXtoROADMA01-DEG2-DEG2-CTP-TXRX'] - addLink=['ROADMA01-SRG1-SRG1-CP-TXRXtoROADMA01-DEG2-DEG2-CTP-TXRX','ROADMA01-SRG1-SRG1-CP-TXRXtoROADMA01-DEG1-DEG1-CTP-TXRX', - 'ROADMA01-SRG3-SRG3-CP-TXRXtoROADMA01-DEG2-DEG2-CTP-TXRX','ROADMA01-SRG3-SRG3-CP-TXRXtoROADMA01-DEG1-DEG1-CTP-TXRX'] - dropLink=['ROADMA01-DEG1-DEG1-CTP-TXRXtoROADMA01-SRG1-SRG1-CP-TXRX','ROADMA01-DEG2-DEG2-CTP-TXRXtoROADMA01-SRG1-SRG1-CP-TXRX', - 'ROADMA01-DEG1-DEG1-CTP-TXRXtoROADMA01-SRG3-SRG3-CP-TXRX','ROADMA01-DEG2-DEG2-CTP-TXRXtoROADMA01-SRG3-SRG3-CP-TXRX'] + nbLink = len(res['network'][0]['ietf-network-topology:link']) + self.assertEqual(nbLink, 16) + expressLink = ['ROADMA01-DEG2-DEG2-CTP-TXRXtoROADMA01-DEG1-DEG1-CTP-TXRX', + 'ROADMA01-DEG1-DEG1-CTP-TXRXtoROADMA01-DEG2-DEG2-CTP-TXRX'] + addLink = ['ROADMA01-SRG1-SRG1-CP-TXRXtoROADMA01-DEG2-DEG2-CTP-TXRX', 'ROADMA01-SRG1-SRG1-CP-TXRXtoROADMA01-DEG1-DEG1-CTP-TXRX', + 'ROADMA01-SRG3-SRG3-CP-TXRXtoROADMA01-DEG2-DEG2-CTP-TXRX', 'ROADMA01-SRG3-SRG3-CP-TXRXtoROADMA01-DEG1-DEG1-CTP-TXRX'] + dropLink = ['ROADMA01-DEG1-DEG1-CTP-TXRXtoROADMA01-SRG1-SRG1-CP-TXRX', 'ROADMA01-DEG2-DEG2-CTP-TXRXtoROADMA01-SRG1-SRG1-CP-TXRX', + 'ROADMA01-DEG1-DEG1-CTP-TXRXtoROADMA01-SRG3-SRG3-CP-TXRX', 'ROADMA01-DEG2-DEG2-CTP-TXRXtoROADMA01-SRG3-SRG3-CP-TXRX'] roadmtoroadmLink = 0 - for i in range(0,nbLink): - if (res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type']=='EXPRESS-LINK'): + for i in range(0, nbLink): + if (res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type'] == 'EXPRESS-LINK'): link_id = res['network'][0]['ietf-network-topology:link'][i]['link-id'] - find= link_id in expressLink + find = link_id in expressLink self.assertEqual(find, True) expressLink.remove(link_id) - elif (res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type']=='ADD-LINK'): + elif (res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type'] == 'ADD-LINK'): link_id = res['network'][0]['ietf-network-topology:link'][i]['link-id'] - find= link_id in addLink + find = link_id in addLink self.assertEqual(find, True) addLink.remove(link_id) - elif (res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type']=='DROP-LINK'): + elif (res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type'] == 'DROP-LINK'): link_id = res['network'][0]['ietf-network-topology:link'][i]['link-id'] - find= link_id in dropLink + find = link_id in dropLink self.assertEqual(find, True) dropLink.remove(link_id) else: roadmtoroadmLink += 1 - self.assertEqual(len(expressLink),0) - self.assertEqual(len(addLink),0) - self.assertEqual(len(dropLink),0) + self.assertEqual(len(expressLink), 0) + self.assertEqual(len(addLink), 0) + self.assertEqual(len(dropLink), 0) self.assertEqual(roadmtoroadmLink, 6) - for i in range(0,nbLink): - self.assertNotEqual(res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type'],'XPONDER-OUTPUT') - self.assertNotEqual(res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type'],'XPONDER-INPUT') + for i in range(0, nbLink): + self.assertNotEqual(res['network'][0]['ietf-network-topology:link'][i] + ['org-openroadm-common-network:link-type'], 'XPONDER-OUTPUT') + self.assertNotEqual(res['network'][0]['ietf-network-topology:link'][i] + ['org-openroadm-common-network:link-type'], 'XPONDER-INPUT') def test_41_disconnect_ROADMA(self): url = ("{}/config/network-topology:" - "network-topology/topology/topology-netconf/node/ROADMA01" + "network-topology/topology/topology-netconf/node/ROADMA01" .format(self.restconf_baseurl)) data = {} headers = {'content-type': 'application/json'} response = requests.request( - "DELETE", url, data=json.dumps(data), headers=headers, - auth=('admin', 'admin')) + "DELETE", url, data=json.dumps(data), headers=headers, + auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) - #Delete in the clli-network + # Delete in the clli-network url = ("{}/config/ietf-network:networks/network/clli-network/node/NodeA" .format(self.restconf_baseurl)) data = {} headers = {'content-type': 'application/json'} response = requests.request( - "DELETE", url, data=json.dumps(data), headers=headers, - auth=('admin', 'admin')) + "DELETE", url, data=json.dumps(data), headers=headers, + auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) def test_42_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')) @@ -1339,7 +1343,7 @@ class TransportPCETopologyTesting(unittest.TestCase): def test_43_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')) @@ -1349,15 +1353,16 @@ class TransportPCETopologyTesting(unittest.TestCase): def test_44_check_roadm2roadm_link_persistence(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')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() - nbLink=len(res['network'][0]['ietf-network-topology:link']) + nbLink = len(res['network'][0]['ietf-network-topology:link']) self.assertNotIn('node', res['network'][0]) self.assertEqual(nbLink, 6) + if __name__ == "__main__": unittest.main(verbosity=2) diff --git a/tests/transportpce_tests/1.2.1/test_utils.py b/tests/transportpce_tests/1.2.1/test_utils.py index b66ea72ad..1b7f45f7a 100644 --- a/tests/transportpce_tests/1.2.1/test_utils.py +++ b/tests/transportpce_tests/1.2.1/test_utils.py @@ -1,78 +1,87 @@ import os import subprocess -honeynode_executable=os.path.join( - os.path.dirname(os.path.realpath(__file__)), - "..", "..", "honeynode", "1.2.1", "honeynode-distribution", "target", "honeynode-distribution-1.19.04-hc", - "honeynode-distribution-1.19.04", "honeycomb-tpce") -samples_directory=os.path.join( - os.path.dirname(os.path.realpath(__file__)), - "..", "..", "sample_configs", "openroadm","1.2.1") +honeynode_executable = os.path.join( + os.path.dirname(os.path.realpath(__file__)), + "..", "..", "honeynode", "1.2.1", "honeynode-distribution", "target", "honeynode-distribution-1.19.04-hc", + "honeynode-distribution-1.19.04", "honeycomb-tpce") +samples_directory = os.path.join( + os.path.dirname(os.path.realpath(__file__)), + "..", "..", "sample_configs", "openroadm", "1.2.1") + + def start_xpdra_honeynode(): if os.path.isfile(honeynode_executable): with open('honeynode1.log', 'w') as outfile: return subprocess.Popen( - [honeynode_executable, "17830", os.path.join(samples_directory,"oper-XPDRA.xml")], + [honeynode_executable, "17830", os.path.join(samples_directory, "oper-XPDRA.xml")], stdout=outfile, stderr=outfile) + def start_roadma_full_honeynode(): if os.path.isfile(honeynode_executable): with open('honeynode2.log', 'w') as outfile: return subprocess.Popen( - [honeynode_executable, "17821", os.path.join(samples_directory,"oper-ROADMA-full.xml")], + [honeynode_executable, "17821", os.path.join(samples_directory, "oper-ROADMA-full.xml")], stdout=outfile, stderr=outfile) + def start_roadma_honeynode(): if os.path.isfile(honeynode_executable): with open('honeynode2.log', 'w') as outfile: return subprocess.Popen( - [honeynode_executable, "17831", os.path.join(samples_directory,"oper-ROADMA.xml")], + [honeynode_executable, "17831", os.path.join(samples_directory, "oper-ROADMA.xml")], stdout=outfile, stderr=outfile) + def start_roadmb_honeynode(): if os.path.isfile(honeynode_executable): with open('honeynode3.log', 'w') as outfile: return subprocess.Popen( - [honeynode_executable, "17832", os.path.join(samples_directory,"oper-ROADMB.xml")], + [honeynode_executable, "17832", os.path.join(samples_directory, "oper-ROADMB.xml")], stdout=outfile, stderr=outfile) + def start_roadmc_full_honeynode(): if os.path.isfile(honeynode_executable): with open('honeynode3.log', 'w') as outfile: return subprocess.Popen( - [honeynode_executable, "17823", os.path.join(samples_directory,"oper-ROADMC-full.xml")], + [honeynode_executable, "17823", os.path.join(samples_directory, "oper-ROADMC-full.xml")], stdout=outfile, stderr=outfile) + def start_roadmc_honeynode(): if os.path.isfile(honeynode_executable): with open('honeynode4.log', 'w') as outfile: return subprocess.Popen( - [honeynode_executable, "17833", os.path.join(samples_directory,"oper-ROADMC.xml")], + [honeynode_executable, "17833", os.path.join(samples_directory, "oper-ROADMC.xml")], stdout=outfile, stderr=outfile) + def start_xpdrc_honeynode(): if os.path.isfile(honeynode_executable): with open('honeynode4.log', 'w') as outfile: return subprocess.Popen( - [honeynode_executable, "17834", os.path.join(samples_directory,"oper-XPDRC.xml")], + [honeynode_executable, "17834", os.path.join(samples_directory, "oper-XPDRC.xml")], stdout=outfile, stderr=outfile) + def start_tpce(): if "USE_LIGHTY" in os.environ and os.environ['USE_LIGHTY'] == 'True': - print ("starting LIGHTY.IO TransportPCE build...") + print("starting LIGHTY.IO TransportPCE build...") executable = os.path.join( - os.path.dirname(os.path.realpath(__file__)), - "..", "..", "..", "lighty", "target", "lighty-transportpce-12.0.0-SNAPSHOT", - "clean-start-controller.sh") + os.path.dirname(os.path.realpath(__file__)), + "..", "..", "..", "lighty", "target", "lighty-transportpce-12.0.0-SNAPSHOT", + "clean-start-controller.sh") with open('odl.log', 'w') as outfile: return subprocess.Popen( ["sh", executable], stdout=outfile, stderr=outfile, stdin=open(os.devnull)) else: - print ("starting KARAF TransportPCE build...") + print("starting KARAF TransportPCE build...") executable = os.path.join( - os.path.dirname(os.path.realpath(__file__)), - "..", "..", "..", "karaf", "target", "assembly", "bin", "karaf") + os.path.dirname(os.path.realpath(__file__)), + "..", "..", "..", "karaf", "target", "assembly", "bin", "karaf") with open('odl.log', 'w') as outfile: return subprocess.Popen( ["sh", executable, "server"], stdout=outfile, stderr=outfile, diff --git a/tests/transportpce_tests/2.2.1/test_end2end.py b/tests/transportpce_tests/2.2.1/test_end2end.py index 5f8e42045..20d9351ce 100644 --- a/tests/transportpce_tests/2.2.1/test_end2end.py +++ b/tests/transportpce_tests/2.2.1/test_end2end.py @@ -29,33 +29,33 @@ class TransportPCEFulltesting(unittest.TestCase): honeynode_process3 = None honeynode_process4 = None restconf_baseurl = "http://localhost:8181/restconf" - WAITING = 20 #nominal value is 300 + WAITING = 20 # nominal value is 300 -#START_IGNORE_XTESTING +# START_IGNORE_XTESTING @classmethod def setUpClass(cls): - print ("starting honeynode1...") + print("starting honeynode1...") cls.honeynode_process1 = test_utils.start_xpdra_honeynode() time.sleep(20) - print ("starting honeynode2...") + print("starting honeynode2...") cls.honeynode_process2 = test_utils.start_roadma_honeynode() time.sleep(20) - print ("starting honeynode3...") + print("starting honeynode3...") cls.honeynode_process3 = test_utils.start_roadmc_honeynode() time.sleep(20) - print ("starting honeynode4...") + print("starting honeynode4...") cls.honeynode_process4 = test_utils.start_xpdrc_honeynode() time.sleep(20) - print ("all honeynodes started") + print("all honeynodes started") - print ("starting opendaylight...") + print("starting opendaylight...") cls.odl_process = test_utils.start_tpce() time.sleep(80) - print ("opendaylight started") + print("opendaylight started") @classmethod def tearDownClass(cls): @@ -84,18 +84,18 @@ class TransportPCEFulltesting(unittest.TestCase): child.wait() cls.honeynode_process4.send_signal(signal.SIGINT) cls.honeynode_process4.wait() - print ("all processes killed") + print("all processes killed") def setUp(self): # instruction executed before each test method - print ("execution of {}".format(self.id().split(".")[-1])) + print("execution of {}".format(self.id().split(".")[-1])) -#END_IGNORE_XTESTING +# END_IGNORE_XTESTING # connect netconf devices def test_01_connect_xpdrA(self): url = ("{}/config/network-topology:" "network-topology/topology/topology-netconf/node/XPDR-A1" - .format(self.restconf_baseurl)) + .format(self.restconf_baseurl)) data = {"node": [{ "node-id": "XPDR-A1", "netconf-node-topology:username": "admin", @@ -114,7 +114,7 @@ class TransportPCEFulltesting(unittest.TestCase): def test_02_connect_xpdrC(self): url = ("{}/config/network-topology:" "network-topology/topology/topology-netconf/node/XPDR-C1" - .format(self.restconf_baseurl)) + .format(self.restconf_baseurl)) data = {"node": [{ "node-id": "XPDR-C1", "netconf-node-topology:username": "admin", @@ -135,17 +135,17 @@ class TransportPCEFulltesting(unittest.TestCase): "network-topology/topology/topology-netconf/node/ROADM-A1" .format(self.restconf_baseurl)) data = {"node": [{ - "node-id": "ROADM-A1", - "netconf-node-topology:username": "admin", - "netconf-node-topology:password": "admin", - "netconf-node-topology:host": "127.0.0.1", - "netconf-node-topology:port": "17841", - "netconf-node-topology:tcp-only": "false", - "netconf-node-topology:pass-through": {}}]} + "node-id": "ROADM-A1", + "netconf-node-topology:username": "admin", + "netconf-node-topology:password": "admin", + "netconf-node-topology:host": "127.0.0.1", + "netconf-node-topology:port": "17841", + "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(20) @@ -154,17 +154,17 @@ class TransportPCEFulltesting(unittest.TestCase): "network-topology/topology/topology-netconf/node/ROADM-C1" .format(self.restconf_baseurl)) data = {"node": [{ - "node-id": "ROADM-C1", - "netconf-node-topology:username": "admin", - "netconf-node-topology:password": "admin", - "netconf-node-topology:host": "127.0.0.1", - "netconf-node-topology:port": "17843", - "netconf-node-topology:tcp-only": "false", - "netconf-node-topology:pass-through": {}}]} + "node-id": "ROADM-C1", + "netconf-node-topology:username": "admin", + "netconf-node-topology:password": "admin", + "netconf-node-topology:host": "127.0.0.1", + "netconf-node-topology:port": "17843", + "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(20) @@ -184,8 +184,8 @@ class TransportPCEFulltesting(unittest.TestCase): } headers = {'content-type': 'application/json'} response = requests.request( - "POST", url, data=json.dumps(data), - headers=headers, auth=('admin', 'admin')) + "POST", url, data=json.dumps(data), + headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn('Xponder Roadm Link created successfully', res["output"]["result"]) @@ -207,8 +207,8 @@ class TransportPCEFulltesting(unittest.TestCase): } headers = {'content-type': 'application/json'} response = requests.request( - "POST", url, data=json.dumps(data), - headers=headers, auth=('admin', 'admin')) + "POST", url, data=json.dumps(data), + headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn('Roadm Xponder links created successfully', res["output"]["result"]) @@ -230,8 +230,8 @@ class TransportPCEFulltesting(unittest.TestCase): } headers = {'content-type': 'application/json'} response = requests.request( - "POST", url, data=json.dumps(data), - headers=headers, auth=('admin', 'admin')) + "POST", url, data=json.dumps(data), + headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn('Xponder Roadm Link created successfully', res["output"]["result"]) @@ -253,8 +253,8 @@ class TransportPCEFulltesting(unittest.TestCase): } headers = {'content-type': 'application/json'} response = requests.request( - "POST", url, data=json.dumps(data), - headers=headers, auth=('admin', 'admin')) + "POST", url, data=json.dumps(data), + headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn('Roadm Xponder links created successfully', res["output"]["result"]) @@ -304,10 +304,10 @@ class TransportPCEFulltesting(unittest.TestCase): auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.created) -#test service-create for Eth service from xpdr to xpdr +# test service-create for Eth service from xpdr to xpdr def test_11_create_eth_service1(self): url = ("{}/operations/org-openroadm-service:service-create" - .format(self.restconf_baseurl)) + .format(self.restconf_baseurl)) data = {"input": { "sdnc-request-header": { "request-id": "e3028bae-a90f-4ddd-a83f-cf224eba0e58", @@ -394,24 +394,24 @@ class TransportPCEFulltesting(unittest.TestCase): }, "due-date": "2016-11-28T00:00:01Z", "operator-contact": "pw1234" - } - } + } + } headers = {'content-type': 'application/json', - "Accept": "application/json"} + "Accept": "application/json"} response = requests.request( "POST", url, data=json.dumps(data), headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn('PCE calculation in progress', - res['output']['configuration-response-common']['response-message']) + res['output']['configuration-response-common']['response-message']) time.sleep(self.WAITING) def test_12_get_eth_service1(self): url = ("{}/operational/org-openroadm-service:service-list/services/service1" - .format(self.restconf_baseurl)) + .format(self.restconf_baseurl)) headers = {'content-type': 'application/json', - "Accept": "application/json"} + "Accept": "application/json"} response = requests.request( "GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) @@ -433,20 +433,20 @@ class TransportPCEFulltesting(unittest.TestCase): .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "GET", url, headers=headers, auth=('admin', 'admin')) + "GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertDictContainsSubset( - {'connection-name': 'SRG1-PP1-TXRX-DEG2-TTP-TXRX-1', - 'opticalControlMode': 'gainLoss', - 'target-output-power': -3.0}, - res['roadm-connections'][0]) + {'connection-name': 'SRG1-PP1-TXRX-DEG2-TTP-TXRX-1', + 'opticalControlMode': 'gainLoss', + 'target-output-power': -3.0}, + res['roadm-connections'][0]) self.assertDictEqual( - {'src-if': 'SRG1-PP1-TXRX-nmc-1'}, - res['roadm-connections'][0]['source']) + {'src-if': 'SRG1-PP1-TXRX-nmc-1'}, + res['roadm-connections'][0]['source']) self.assertDictEqual( - {'dst-if': 'DEG2-TTP-TXRX-nmc-1'}, - res['roadm-connections'][0]['destination']) + {'dst-if': 'DEG2-TTP-TXRX-nmc-1'}, + res['roadm-connections'][0]['destination']) time.sleep(5) def test_14_check_xc1_ROADMC(self): @@ -456,27 +456,27 @@ class TransportPCEFulltesting(unittest.TestCase): .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "GET", url, headers=headers, auth=('admin', 'admin')) + "GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertDictContainsSubset( - {'connection-name': 'SRG1-PP1-TXRX-DEG1-TTP-TXRX-1', - 'opticalControlMode': 'gainLoss', - 'target-output-power': -3.0}, - res['roadm-connections'][0]) + {'connection-name': 'SRG1-PP1-TXRX-DEG1-TTP-TXRX-1', + 'opticalControlMode': 'gainLoss', + 'target-output-power': -3.0}, + res['roadm-connections'][0]) self.assertDictEqual( - {'src-if': 'SRG1-PP1-TXRX-nmc-1'}, - res['roadm-connections'][0]['source']) + {'src-if': 'SRG1-PP1-TXRX-nmc-1'}, + res['roadm-connections'][0]['source']) self.assertDictEqual( - {'dst-if': 'DEG1-TTP-TXRX-nmc-1'}, - res['roadm-connections'][0]['destination']) + {'dst-if': 'DEG1-TTP-TXRX-nmc-1'}, + res['roadm-connections'][0]['destination']) time.sleep(5) def test_15_check_topo_XPDRA(self): url1 = ("{}/config/ietf-network:networks/network/openroadm-topology/node/XPDR-A1-XPDR1" - .format(self.restconf_baseurl)) + .format(self.restconf_baseurl)) response = requests.request( - "GET", url1, auth=('admin', 'admin')) + "GET", url1, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() liste_tp = res['node'][0]['ietf-network-topology:termination-point'] @@ -484,7 +484,7 @@ class TransportPCEFulltesting(unittest.TestCase): if ele['tp-id'] == 'XPDR1-NETWORK1': self.assertEqual({u'frequency': 196.1, u'width': 40}, - ele['org-openroadm-network-topology:xpdr-network-attributes']['wavelength']) + ele['org-openroadm-network-topology:xpdr-network-attributes']['wavelength']) if ele['tp-id'] == 'XPDR1-CLIENT2' or ele['tp-id'] == 'XPDR1-CLIENT1': self.assertNotIn('org-openroadm-network-topology:xpdr-client-attributes', dict.keys(ele)) if ele['tp-id'] == 'XPDR1-NETWORK2': @@ -493,42 +493,42 @@ class TransportPCEFulltesting(unittest.TestCase): def test_16_check_topo_ROADMA_SRG1(self): url1 = ("{}/config/ietf-network:networks/network/openroadm-topology/node/ROADM-A1-SRG1" - .format(self.restconf_baseurl)) + .format(self.restconf_baseurl)) response = requests.request( - "GET", url1, auth=('admin', 'admin')) + "GET", url1, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertNotIn({u'index': 1}, - res['node'][0][u'org-openroadm-network-topology:srg-attributes']['available-wavelengths']) + res['node'][0][u'org-openroadm-network-topology:srg-attributes']['available-wavelengths']) liste_tp = res['node'][0]['ietf-network-topology:termination-point'] for ele in liste_tp: if ele['tp-id'] == 'SRG1-PP1-TXRX': self.assertIn({u'index': 1, u'frequency': 196.1, u'width': 40}, - ele['org-openroadm-network-topology:pp-attributes']['used-wavelength']) + ele['org-openroadm-network-topology:pp-attributes']['used-wavelength']) if ele['tp-id'] == 'SRG1-PP2-TXRX': self.assertNotIn('used-wavelength', dict.keys(ele)) time.sleep(3) def test_17_check_topo_ROADMA_DEG1(self): url1 = ("{}/config/ietf-network:networks/network/openroadm-topology/node/ROADM-A1-DEG2" - .format(self.restconf_baseurl)) + .format(self.restconf_baseurl)) response = requests.request( - "GET", url1, auth=('admin', 'admin')) + "GET", url1, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertNotIn({u'index': 1}, - res['node'][0][u'org-openroadm-network-topology:degree-attributes']['available-wavelengths']) + res['node'][0][u'org-openroadm-network-topology:degree-attributes']['available-wavelengths']) liste_tp = res['node'][0]['ietf-network-topology:termination-point'] for ele in liste_tp: if ele['tp-id'] == 'DEG2-CTP-TXRX': self.assertIn({u'index': 1, u'frequency': 196.1, u'width': 40}, - ele['org-openroadm-network-topology:ctp-attributes']['used-wavelengths']) + ele['org-openroadm-network-topology:ctp-attributes']['used-wavelengths']) if ele['tp-id'] == 'DEG2-TTP-TXRX': self.assertIn({u'index': 1, u'frequency': 196.1, u'width': 40}, - ele['org-openroadm-network-topology:tx-ttp-attributes']['used-wavelengths']) + ele['org-openroadm-network-topology:tx-ttp-attributes']['used-wavelengths']) time.sleep(3) def test_18_connect_xprdA_N2_to_roadmA_PP2(self): @@ -547,8 +547,8 @@ class TransportPCEFulltesting(unittest.TestCase): } headers = {'content-type': 'application/json'} response = requests.request( - "POST", url, data=json.dumps(data), - headers=headers, auth=('admin', 'admin')) + "POST", url, data=json.dumps(data), + headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn('Xponder Roadm Link created successfully', res["output"]["result"]) @@ -570,8 +570,8 @@ class TransportPCEFulltesting(unittest.TestCase): } headers = {'content-type': 'application/json'} response = requests.request( - "POST", url, data=json.dumps(data), - headers=headers, auth=('admin', 'admin')) + "POST", url, data=json.dumps(data), + headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn('Roadm Xponder links created successfully', res["output"]["result"]) @@ -593,8 +593,8 @@ class TransportPCEFulltesting(unittest.TestCase): } headers = {'content-type': 'application/json'} response = requests.request( - "POST", url, data=json.dumps(data), - headers=headers, auth=('admin', 'admin')) + "POST", url, data=json.dumps(data), + headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn('Xponder Roadm Link created successfully', res["output"]["result"]) @@ -616,8 +616,8 @@ class TransportPCEFulltesting(unittest.TestCase): } headers = {'content-type': 'application/json'} response = requests.request( - "POST", url, data=json.dumps(data), - headers=headers, auth=('admin', 'admin')) + "POST", url, data=json.dumps(data), + headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn('Roadm Xponder links created successfully', res["output"]["result"]) @@ -625,7 +625,7 @@ class TransportPCEFulltesting(unittest.TestCase): def test_22_create_eth_service2(self): url = ("{}/operations/org-openroadm-service:service-create" - .format(self.restconf_baseurl)) + .format(self.restconf_baseurl)) data = {"input": { "sdnc-request-header": { "request-id": "e3028bae-a90f-4ddd-a83f-cf224eba0e58", @@ -712,24 +712,24 @@ class TransportPCEFulltesting(unittest.TestCase): }, "due-date": "2016-11-28T00:00:01Z", "operator-contact": "pw1234" - } - } + } + } headers = {'content-type': 'application/json', - "Accept": "application/json"} + "Accept": "application/json"} response = requests.request( "POST", url, data=json.dumps(data), headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn('PCE calculation in progress', - res['output']['configuration-response-common']['response-message']) + res['output']['configuration-response-common']['response-message']) time.sleep(self.WAITING) def test_23_get_eth_service2(self): url = ("{}/operational/org-openroadm-service:service-list/services/service2" - .format(self.restconf_baseurl)) + .format(self.restconf_baseurl)) headers = {'content-type': 'application/json', - "Accept": "application/json"} + "Accept": "application/json"} response = requests.request( "GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) @@ -752,25 +752,25 @@ class TransportPCEFulltesting(unittest.TestCase): .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "GET", url, headers=headers, auth=('admin', 'admin')) + "GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertDictContainsSubset( - {'connection-name': 'DEG2-TTP-TXRX-SRG1-PP2-TXRX-2', - 'opticalControlMode': 'power'}, - res['roadm-connections'][0]) + {'connection-name': 'DEG2-TTP-TXRX-SRG1-PP2-TXRX-2', + 'opticalControlMode': 'power'}, + res['roadm-connections'][0]) self.assertDictEqual( - {'src-if': 'DEG2-TTP-TXRX-nmc-2'}, - res['roadm-connections'][0]['source']) + {'src-if': 'DEG2-TTP-TXRX-nmc-2'}, + res['roadm-connections'][0]['source']) self.assertDictEqual( - {'dst-if': 'SRG1-PP2-TXRX-nmc-2'}, - res['roadm-connections'][0]['destination']) + {'dst-if': 'SRG1-PP2-TXRX-nmc-2'}, + res['roadm-connections'][0]['destination']) def test_25_check_topo_XPDRA(self): url1 = ("{}/config/ietf-network:networks/network/openroadm-topology/node/XPDR-A1-XPDR1" - .format(self.restconf_baseurl)) + .format(self.restconf_baseurl)) response = requests.request( - "GET", url1, auth=('admin', 'admin')) + "GET", url1, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() liste_tp = res['node'][0]['ietf-network-topology:termination-point'] @@ -778,64 +778,68 @@ class TransportPCEFulltesting(unittest.TestCase): if ele['tp-id'] == 'XPDR1-NETWORK1': self.assertEqual({u'frequency': 196.1, u'width': 40}, - ele['org-openroadm-network-topology:xpdr-network-attributes']['wavelength']) + ele['org-openroadm-network-topology:xpdr-network-attributes']['wavelength']) if ele['tp-id'] == 'XPDR1-NETWORK2': self.assertEqual({u'frequency': 196.05, u'width': 40}, - ele['org-openroadm-network-topology:xpdr-network-attributes']['wavelength']) + ele['org-openroadm-network-topology:xpdr-network-attributes']['wavelength']) if ele['tp-id'] == 'XPDR1-CLIENT1' or ele['tp-id'] == 'XPDR1-CLIENT2': self.assertNotIn('org-openroadm-network-topology:xpdr-client-attributes', dict.keys(ele)) time.sleep(10) def test_26_check_topo_ROADMA_SRG1(self): url1 = ("{}/config/ietf-network:networks/network/openroadm-topology/node/ROADM-A1-SRG1" - .format(self.restconf_baseurl)) + .format(self.restconf_baseurl)) response = requests.request( - "GET", url1, auth=('admin', 'admin')) + "GET", url1, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() - self.assertNotIn({u'index': 1}, res['node'][0][u'org-openroadm-network-topology:srg-attributes']['available-wavelengths']) - self.assertNotIn({u'index': 2}, res['node'][0][u'org-openroadm-network-topology:srg-attributes']['available-wavelengths']) + self.assertNotIn({u'index': 1}, res['node'][0] + [u'org-openroadm-network-topology:srg-attributes']['available-wavelengths']) + self.assertNotIn({u'index': 2}, res['node'][0] + [u'org-openroadm-network-topology:srg-attributes']['available-wavelengths']) liste_tp = res['node'][0]['ietf-network-topology:termination-point'] for ele in liste_tp: if ele['tp-id'] == 'SRG1-PP1-TXRX': self.assertIn({u'index': 1, u'frequency': 196.1, u'width': 40}, - ele['org-openroadm-network-topology:pp-attributes']['used-wavelength']) + ele['org-openroadm-network-topology:pp-attributes']['used-wavelength']) self.assertNotIn({u'index': 2, u'frequency': 196.05, u'width': 40}, - ele['org-openroadm-network-topology:pp-attributes']['used-wavelength']) + ele['org-openroadm-network-topology:pp-attributes']['used-wavelength']) if ele['tp-id'] == 'SRG1-PP2-TXRX': self.assertIn({u'index': 2, u'frequency': 196.05, u'width': 40}, ele['org-openroadm-network-topology:pp-attributes']['used-wavelength']) self.assertNotIn({u'index': 1, u'frequency': 196.1, u'width': 40}, - ele['org-openroadm-network-topology:pp-attributes']['used-wavelength']) + ele['org-openroadm-network-topology:pp-attributes']['used-wavelength']) if ele['tp-id'] == 'SRG1-PP3-TXRX': self.assertNotIn('org-openroadm-network-topology:pp-attributes', dict.keys(ele)) time.sleep(10) def test_27_check_topo_ROADMA_DEG2(self): url1 = ("{}/config/ietf-network:networks/network/openroadm-topology/node/ROADM-A1-DEG2" - .format(self.restconf_baseurl)) + .format(self.restconf_baseurl)) response = requests.request( - "GET", url1, auth=('admin', 'admin')) + "GET", url1, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() - self.assertNotIn({u'index': 1}, res['node'][0][u'org-openroadm-network-topology:degree-attributes']['available-wavelengths']) - self.assertNotIn({u'index': 2}, res['node'][0][u'org-openroadm-network-topology:degree-attributes']['available-wavelengths']) + self.assertNotIn({u'index': 1}, res['node'][0] + [u'org-openroadm-network-topology:degree-attributes']['available-wavelengths']) + self.assertNotIn({u'index': 2}, res['node'][0] + [u'org-openroadm-network-topology:degree-attributes']['available-wavelengths']) liste_tp = res['node'][0]['ietf-network-topology:termination-point'] for ele in liste_tp: if ele['tp-id'] == 'DEG2-CTP-TXRX': self.assertIn({u'index': 1, u'frequency': 196.1, u'width': 40}, - ele['org-openroadm-network-topology:ctp-attributes']['used-wavelengths']) + ele['org-openroadm-network-topology:ctp-attributes']['used-wavelengths']) self.assertIn({u'index': 2, u'frequency': 196.05, u'width': 40}, ele['org-openroadm-network-topology:ctp-attributes']['used-wavelengths']) if ele['tp-id'] == 'DEG2-TTP-TXRX': self.assertIn({u'index': 1, u'frequency': 196.1, u'width': 40}, - ele['org-openroadm-network-topology:tx-ttp-attributes']['used-wavelengths']) + ele['org-openroadm-network-topology:tx-ttp-attributes']['used-wavelengths']) self.assertIn({u'index': 2, u'frequency': 196.05, u'width': 40}, ele['org-openroadm-network-topology:tx-ttp-attributes']['used-wavelengths']) time.sleep(10) @@ -843,7 +847,7 @@ class TransportPCEFulltesting(unittest.TestCase): # creation service test on a non-available resource def test_28_create_eth_service3(self): url = ("{}/operations/org-openroadm-service:service-create" - .format(self.restconf_baseurl)) + .format(self.restconf_baseurl)) data = {"input": { "sdnc-request-header": { "request-id": "e3028bae-a90f-4ddd-a83f-cf224eba0e58", @@ -930,24 +934,24 @@ class TransportPCEFulltesting(unittest.TestCase): }, "due-date": "2016-11-28T00:00:01Z", "operator-contact": "pw1234" - } - } + } + } headers = {'content-type': 'application/json', - "Accept": "application/json"} + "Accept": "application/json"} response = requests.request( "POST", url, data=json.dumps(data), headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn('PCE calculation in progress', - res['output']['configuration-response-common']['response-message']) + res['output']['configuration-response-common']['response-message']) self.assertIn('200', res['output']['configuration-response-common']['response-code']) time.sleep(self.WAITING) # add a test that check the openroadm-service-list still only contains 2 elements def test_29_delete_eth_service3(self): url = ("{}/operations/org-openroadm-service:service-delete" - .format(self.restconf_baseurl)) + .format(self.restconf_baseurl)) data = {"input": { "sdnc-request-header": { "request-id": "e3028bae-a90f-4ddd-a83f-cf224eba0e58", @@ -959,8 +963,8 @@ class TransportPCEFulltesting(unittest.TestCase): "service-name": "service3", "tail-retention": "no" } - } - } + } + } headers = {'content-type': 'application/json'} response = requests.request( "POST", url, data=json.dumps(data), headers=headers, @@ -968,13 +972,13 @@ class TransportPCEFulltesting(unittest.TestCase): self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn('Service \'service3\' does not exist in datastore', - res['output']['configuration-response-common']['response-message']) + res['output']['configuration-response-common']['response-message']) self.assertIn('500', res['output']['configuration-response-common']['response-code']) time.sleep(20) def test_30_delete_eth_service1(self): url = ("{}/operations/org-openroadm-service:service-delete" - .format(self.restconf_baseurl)) + .format(self.restconf_baseurl)) data = {"input": { "sdnc-request-header": { "request-id": "e3028bae-a90f-4ddd-a83f-cf224eba0e58", @@ -986,8 +990,8 @@ class TransportPCEFulltesting(unittest.TestCase): "service-name": "service1", "tail-retention": "no" } - } - } + } + } headers = {'content-type': 'application/json'} response = requests.request( "POST", url, data=json.dumps(data), headers=headers, @@ -995,12 +999,12 @@ class TransportPCEFulltesting(unittest.TestCase): self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn('Renderer service delete in progress', - res['output']['configuration-response-common']['response-message']) + res['output']['configuration-response-common']['response-message']) time.sleep(20) def test_31_delete_eth_service2(self): url = ("{}/operations/org-openroadm-service:service-delete" - .format(self.restconf_baseurl)) + .format(self.restconf_baseurl)) data = {"input": { "sdnc-request-header": { "request-id": "e3028bae-a90f-4ddd-a83f-cf224eba0e58", @@ -1012,8 +1016,8 @@ class TransportPCEFulltesting(unittest.TestCase): "service-name": "service2", "tail-retention": "no" } - } - } + } + } headers = {'content-type': 'application/json'} response = requests.request( "POST", url, data=json.dumps(data), headers=headers, @@ -1021,7 +1025,7 @@ class TransportPCEFulltesting(unittest.TestCase): self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn('Renderer service delete in progress', - res['output']['configuration-response-common']['response-message']) + res['output']['configuration-response-common']['response-message']) time.sleep(20) def test_32_check_no_xc_ROADMA(self): @@ -1029,7 +1033,7 @@ class TransportPCEFulltesting(unittest.TestCase): "node/ROADM-A1/yang-ext:mount/org-openroadm-device:org-openroadm-device/" .format(self.restconf_baseurl)) response = requests.request( - "GET", url, auth=('admin', 'admin')) + "GET", url, auth=('admin', 'admin')) res = response.json() self.assertEqual(response.status_code, requests.codes.ok) self.assertNotIn('roadm-connections', dict.keys(res['org-openroadm-device'])) @@ -1037,9 +1041,9 @@ class TransportPCEFulltesting(unittest.TestCase): def test_33_check_topo_XPDRA(self): url1 = ("{}/config/ietf-network:networks/network/openroadm-topology/node/XPDR-A1-XPDR1" - .format(self.restconf_baseurl)) + .format(self.restconf_baseurl)) response = requests.request( - "GET", url1, auth=('admin', 'admin')) + "GET", url1, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() liste_tp = res['node'][0]['ietf-network-topology:termination-point'] @@ -1047,19 +1051,23 @@ class TransportPCEFulltesting(unittest.TestCase): if ele[u'org-openroadm-common-network:tp-type'] == 'XPONDER-CLIENT': self.assertNotIn('org-openroadm-network-topology:xpdr-client-attributes', dict.keys(ele)) elif (ele[u'org-openroadm-common-network:tp-type'] == 'XPONDER-NETWORK'): - self.assertIn(u'tail-equipment-id', dict.keys(ele[u'org-openroadm-network-topology:xpdr-network-attributes'])) - self.assertNotIn('wavelength', dict.keys(ele[u'org-openroadm-network-topology:xpdr-network-attributes'])) + self.assertIn(u'tail-equipment-id', + dict.keys(ele[u'org-openroadm-network-topology:xpdr-network-attributes'])) + self.assertNotIn('wavelength', dict.keys( + ele[u'org-openroadm-network-topology:xpdr-network-attributes'])) time.sleep(10) def test_34_check_topo_ROADMA_SRG1(self): url1 = ("{}/config/ietf-network:networks/network/openroadm-topology/node/ROADM-A1-SRG1" - .format(self.restconf_baseurl)) + .format(self.restconf_baseurl)) response = requests.request( - "GET", url1, auth=('admin', 'admin')) + "GET", url1, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() - self.assertIn({u'index': 1}, res['node'][0][u'org-openroadm-network-topology:srg-attributes']['available-wavelengths']) - self.assertIn({u'index': 2}, res['node'][0][u'org-openroadm-network-topology:srg-attributes']['available-wavelengths']) + self.assertIn({u'index': 1}, res['node'][0] + [u'org-openroadm-network-topology:srg-attributes']['available-wavelengths']) + self.assertIn({u'index': 2}, res['node'][0] + [u'org-openroadm-network-topology:srg-attributes']['available-wavelengths']) liste_tp = res['node'][0]['ietf-network-topology:termination-point'] for ele in liste_tp: if ele['tp-id'] == 'SRG1-PP1-TXRX' or ele['tp-id'] == 'SRG1-PP1-TXRX': @@ -1070,13 +1078,15 @@ class TransportPCEFulltesting(unittest.TestCase): def test_35_check_topo_ROADMA_DEG2(self): url1 = ("{}/config/ietf-network:networks/network/openroadm-topology/node/ROADM-A1-DEG2" - .format(self.restconf_baseurl)) + .format(self.restconf_baseurl)) response = requests.request( - "GET", url1, auth=('admin', 'admin')) + "GET", url1, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() - self.assertIn({u'index': 1}, res['node'][0][u'org-openroadm-network-topology:degree-attributes']['available-wavelengths']) - self.assertIn({u'index': 2}, res['node'][0][u'org-openroadm-network-topology:degree-attributes']['available-wavelengths']) + self.assertIn({u'index': 1}, res['node'][0] + [u'org-openroadm-network-topology:degree-attributes']['available-wavelengths']) + self.assertIn({u'index': 2}, res['node'][0] + [u'org-openroadm-network-topology:degree-attributes']['available-wavelengths']) liste_tp = res['node'][0]['ietf-network-topology:termination-point'] for ele in liste_tp: if ele['tp-id'] == 'DEG2-CTP-TXRX': @@ -1088,7 +1098,7 @@ class TransportPCEFulltesting(unittest.TestCase): # test service-create for Optical Channel (OC) service from srg-pp to srg-pp def test_36_create_oc_service1(self): url = ("{}/operations/org-openroadm-service:service-create" - .format(self.restconf_baseurl)) + .format(self.restconf_baseurl)) data = {"input": { "sdnc-request-header": { "request-id": "e3028bae-a90f-4ddd-a83f-cf224eba0e58", @@ -1175,24 +1185,24 @@ class TransportPCEFulltesting(unittest.TestCase): }, "due-date": "2016-11-28T00:00:01Z", "operator-contact": "pw1234" - } - } + } + } headers = {'content-type': 'application/json', - "Accept": "application/json"} + "Accept": "application/json"} response = requests.request( "POST", url, data=json.dumps(data), headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn('PCE calculation in progress', - res['output']['configuration-response-common']['response-message']) + res['output']['configuration-response-common']['response-message']) time.sleep(self.WAITING) def test_37_get_oc_service1(self): url = ("{}/operational/org-openroadm-service:service-list/services/service1" - .format(self.restconf_baseurl)) + .format(self.restconf_baseurl)) headers = {'content-type': 'application/json', - "Accept": "application/json"} + "Accept": "application/json"} response = requests.request( "GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) @@ -1215,20 +1225,20 @@ class TransportPCEFulltesting(unittest.TestCase): .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "GET", url, headers=headers, auth=('admin', 'admin')) + "GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertDictContainsSubset( - {'connection-name': 'SRG1-PP1-TXRX-DEG2-TTP-TXRX-1', - 'opticalControlMode': 'gainLoss', - 'target-output-power': -3.0}, - res['roadm-connections'][0]) + {'connection-name': 'SRG1-PP1-TXRX-DEG2-TTP-TXRX-1', + 'opticalControlMode': 'gainLoss', + 'target-output-power': -3.0}, + res['roadm-connections'][0]) self.assertDictEqual( - {'src-if': 'SRG1-PP1-TXRX-nmc-1'}, - res['roadm-connections'][0]['source']) + {'src-if': 'SRG1-PP1-TXRX-nmc-1'}, + res['roadm-connections'][0]['source']) self.assertDictEqual( - {'dst-if': 'DEG2-TTP-TXRX-nmc-1'}, - res['roadm-connections'][0]['destination']) + {'dst-if': 'DEG2-TTP-TXRX-nmc-1'}, + res['roadm-connections'][0]['destination']) time.sleep(7) def test_39_check_xc1_ROADMC(self): @@ -1238,25 +1248,25 @@ class TransportPCEFulltesting(unittest.TestCase): .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "GET", url, headers=headers, auth=('admin', 'admin')) + "GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertDictContainsSubset( - {'connection-name': 'SRG1-PP1-TXRX-DEG1-TTP-TXRX-1', - 'opticalControlMode': 'gainLoss', - 'target-output-power': -3.0}, - res['roadm-connections'][0]) + {'connection-name': 'SRG1-PP1-TXRX-DEG1-TTP-TXRX-1', + 'opticalControlMode': 'gainLoss', + 'target-output-power': -3.0}, + res['roadm-connections'][0]) self.assertDictEqual( - {'src-if': 'SRG1-PP1-TXRX-nmc-1'}, - res['roadm-connections'][0]['source']) + {'src-if': 'SRG1-PP1-TXRX-nmc-1'}, + res['roadm-connections'][0]['source']) self.assertDictEqual( - {'dst-if': 'DEG1-TTP-TXRX-nmc-1'}, - res['roadm-connections'][0]['destination']) + {'dst-if': 'DEG1-TTP-TXRX-nmc-1'}, + res['roadm-connections'][0]['destination']) time.sleep(7) def test_40_create_oc_service2(self): url = ("{}/operations/org-openroadm-service:service-create" - .format(self.restconf_baseurl)) + .format(self.restconf_baseurl)) data = {"input": { "sdnc-request-header": { "request-id": "e3028bae-a90f-4ddd-a83f-cf224eba0e58", @@ -1343,24 +1353,24 @@ class TransportPCEFulltesting(unittest.TestCase): }, "due-date": "2016-11-28T00:00:01Z", "operator-contact": "pw1234" - } - } + } + } headers = {'content-type': 'application/json', - "Accept": "application/json"} + "Accept": "application/json"} response = requests.request( "POST", url, data=json.dumps(data), headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn('PCE calculation in progress', - res['output']['configuration-response-common']['response-message']) + res['output']['configuration-response-common']['response-message']) time.sleep(self.WAITING) def test_41_get_oc_service2(self): url = ("{}/operational/org-openroadm-service:service-list/services/service2" - .format(self.restconf_baseurl)) + .format(self.restconf_baseurl)) headers = {'content-type': 'application/json', - "Accept": "application/json"} + "Accept": "application/json"} response = requests.request( "GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) @@ -1383,20 +1393,20 @@ class TransportPCEFulltesting(unittest.TestCase): .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "GET", url, headers=headers, auth=('admin', 'admin')) + "GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertDictContainsSubset( - {'connection-name': 'SRG1-PP2-TXRX-DEG2-TTP-TXRX-2', - 'opticalControlMode': 'gainLoss', - 'target-output-power': -3.0}, - res['roadm-connections'][0]) + {'connection-name': 'SRG1-PP2-TXRX-DEG2-TTP-TXRX-2', + 'opticalControlMode': 'gainLoss', + 'target-output-power': -3.0}, + res['roadm-connections'][0]) self.assertDictEqual( - {'src-if': 'SRG1-PP2-TXRX-nmc-2'}, - res['roadm-connections'][0]['source']) + {'src-if': 'SRG1-PP2-TXRX-nmc-2'}, + res['roadm-connections'][0]['source']) self.assertDictEqual( - {'dst-if': 'DEG2-TTP-TXRX-nmc-2'}, - res['roadm-connections'][0]['destination']) + {'dst-if': 'DEG2-TTP-TXRX-nmc-2'}, + res['roadm-connections'][0]['destination']) time.sleep(2) def test_43_check_topo_ROADMA(self): @@ -1406,7 +1416,7 @@ class TransportPCEFulltesting(unittest.TestCase): def test_44_delete_oc_service1(self): url = ("{}/operations/org-openroadm-service:service-delete" - .format(self.restconf_baseurl)) + .format(self.restconf_baseurl)) data = {"input": { "sdnc-request-header": { "request-id": "e3028bae-a90f-4ddd-a83f-cf224eba0e58", @@ -1418,8 +1428,8 @@ class TransportPCEFulltesting(unittest.TestCase): "service-name": "service1", "tail-retention": "no" } - } - } + } + } headers = {'content-type': 'application/json'} response = requests.request( "POST", url, data=json.dumps(data), headers=headers, @@ -1427,12 +1437,12 @@ class TransportPCEFulltesting(unittest.TestCase): self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn('Renderer service delete in progress', - res['output']['configuration-response-common']['response-message']) + res['output']['configuration-response-common']['response-message']) time.sleep(20) def test_45_delete_oc_service2(self): url = ("{}/operations/org-openroadm-service:service-delete" - .format(self.restconf_baseurl)) + .format(self.restconf_baseurl)) data = {"input": { "sdnc-request-header": { "request-id": "e3028bae-a90f-4ddd-a83f-cf224eba0e58", @@ -1444,8 +1454,8 @@ class TransportPCEFulltesting(unittest.TestCase): "service-name": "service2", "tail-retention": "no" } - } - } + } + } headers = {'content-type': 'application/json'} response = requests.request( "POST", url, data=json.dumps(data), headers=headers, @@ -1453,31 +1463,31 @@ class TransportPCEFulltesting(unittest.TestCase): self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn('Renderer service delete in progress', - res['output']['configuration-response-common']['response-message']) + res['output']['configuration-response-common']['response-message']) time.sleep(20) def test_46_get_no_oc_services(self): - print ("start test") + print("start test") url = ("{}/operational/org-openroadm-service:service-list" - .format(self.restconf_baseurl)) + .format(self.restconf_baseurl)) headers = {'content-type': 'application/json', - "Accept": "application/json"} + "Accept": "application/json"} response = requests.request( "GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.not_found) res = response.json() self.assertIn( - {"error-type":"application", "error-tag":"data-missing", - "error-message":"Request could not be completed because the relevant data model content does not exist"}, + {"error-type": "application", "error-tag": "data-missing", + "error-message": "Request could not be completed because the relevant data model content does not exist"}, res['errors']['error']) time.sleep(1) def test_47_get_no_xc_ROADMA(self): url = ("{}/config/network-topology:network-topology/topology/topology-netconf" "/node/ROADM-A1/yang-ext:mount/org-openroadm-device:org-openroadm-device/" - .format(self.restconf_baseurl)) + .format(self.restconf_baseurl)) headers = {'content-type': 'application/json', - "Accept": "application/json"} + "Accept": "application/json"} response = requests.request( "GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) @@ -1490,15 +1500,15 @@ class TransportPCEFulltesting(unittest.TestCase): self.test_35_check_topo_ROADMA_DEG2() def test_49_loop_create_eth_service(self): - for i in range(1,6): - print ("trial number {}".format(i)) + for i in range(1, 6): + print("trial number {}".format(i)) print("eth service creation") self.test_11_create_eth_service1() - print ("check xc in ROADM-A1") + print("check xc in ROADM-A1") self.test_13_check_xc1_ROADMA() - print ("check xc in ROADM-C1") + print("check xc in ROADM-C1") self.test_14_check_xc1_ROADMC() - print ("eth service deletion\n") + print("eth service deletion\n") self.test_30_delete_eth_service1() def test_50_loop_create_oc_service(self): @@ -1514,69 +1524,69 @@ class TransportPCEFulltesting(unittest.TestCase): "rpc-action": "service-delete", "request-system-id": "appname", "notification-url": "http://localhost:8585/NotificationServer/notify" - }, + }, "service-delete-req-info": { "service-name": "service1", "tail-retention": "no" - } } } + } headers = {'content-type': 'application/json'} requests.request("POST", url, data=json.dumps(data), headers=headers, auth=('admin', 'admin')) time.sleep(5) - for i in range(1,6): - print ("trial number {}".format(i)) + for i in range(1, 6): + print("trial number {}".format(i)) print("oc service creation") self.test_36_create_oc_service1() - print ("check xc in ROADM-A1") + print("check xc in ROADM-A1") self.test_38_check_xc1_ROADMA() - print ("check xc in ROADM-C1") + print("check xc in ROADM-C1") self.test_39_check_xc1_ROADMC() - print ("oc service deletion\n") + print("oc service deletion\n") self.test_44_delete_oc_service1() def test_51_disconnect_XPDRA(self): url = ("{}/config/network-topology:" - "network-topology/topology/topology-netconf/node/XPDR-A1" + "network-topology/topology/topology-netconf/node/XPDR-A1" .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "DELETE", url, headers=headers, - auth=('admin', 'admin')) + "DELETE", url, headers=headers, + auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) time.sleep(10) def test_52_disconnect_XPDRC(self): url = ("{}/config/network-topology:" - "network-topology/topology/topology-netconf/node/XPDR-C1" + "network-topology/topology/topology-netconf/node/XPDR-C1" .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "DELETE", url, headers=headers, - auth=('admin', 'admin')) + "DELETE", url, headers=headers, + auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) time.sleep(10) def test_53_disconnect_ROADMA(self): url = ("{}/config/network-topology:" - "network-topology/topology/topology-netconf/node/ROADM-A1" + "network-topology/topology/topology-netconf/node/ROADM-A1" .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "DELETE", url, headers=headers, - auth=('admin', 'admin')) + "DELETE", url, headers=headers, + auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) time.sleep(10) def test_54_disconnect_ROADMC(self): url = ("{}/config/network-topology:" - "network-topology/topology/topology-netconf/node/ROADM-C1" + "network-topology/topology/topology-netconf/node/ROADM-C1" .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "DELETE", url, headers=headers, - auth=('admin', 'admin')) + "DELETE", url, headers=headers, + auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) time.sleep(10) diff --git a/tests/transportpce_tests/2.2.1/test_olm.py b/tests/transportpce_tests/2.2.1/test_olm.py index 58a8ca622..c721d591a 100644 --- a/tests/transportpce_tests/2.2.1/test_olm.py +++ b/tests/transportpce_tests/2.2.1/test_olm.py @@ -31,32 +31,32 @@ class TransportOlmTesting(unittest.TestCase): odl_process = None restconf_baseurl = "http://localhost:8181/restconf" -#START_IGNORE_XTESTING +# START_IGNORE_XTESTING @classmethod def setUpClass(cls): - print ("starting honeynode1...") + print("starting honeynode1...") cls.honeynode_process1 = test_utils.start_xpdra_honeynode() time.sleep(20) - print ("starting honeynode2...") + print("starting honeynode2...") cls.honeynode_process2 = test_utils.start_roadma_honeynode() time.sleep(20) - print ("starting honeynode3...") + print("starting honeynode3...") cls.honeynode_process3 = test_utils.start_roadmc_honeynode() time.sleep(20) - print ("starting honeynode4...") + print("starting honeynode4...") cls.honeynode_process4 = test_utils.start_xpdrc_honeynode() time.sleep(20) - print ("all honeynodes started") + print("all honeynodes started") - print ("starting opendaylight...") + print("starting opendaylight...") cls.odl_process = test_utils.start_tpce() time.sleep(60) - print ("opendaylight started") + print("opendaylight started") @classmethod def tearDownClass(cls): @@ -87,15 +87,15 @@ class TransportOlmTesting(unittest.TestCase): cls.honeynode_process4.wait() def setUp(self): - print ("execution of {}".format(self.id().split(".")[-1])) + print("execution of {}".format(self.id().split(".")[-1])) time.sleep(1) -#END_IGNORE_XTESTING +# END_IGNORE_XTESTING def test_01_xpdrA_device_connected(self): url = ("{}/config/network-topology:" "network-topology/topology/topology-netconf/node/XPDR-A1" - .format(self.restconf_baseurl)) + .format(self.restconf_baseurl)) data = {"node": [{ "node-id": "XPDR-A1", "netconf-node-topology:username": "admin", @@ -114,7 +114,7 @@ class TransportOlmTesting(unittest.TestCase): def test_02_xpdrC_device_connected(self): url = ("{}/config/network-topology:" "network-topology/topology/topology-netconf/node/XPDR-C1" - .format(self.restconf_baseurl)) + .format(self.restconf_baseurl)) data = {"node": [{ "node-id": "XPDR-C1", "netconf-node-topology:username": "admin", @@ -135,17 +135,17 @@ class TransportOlmTesting(unittest.TestCase): "network-topology/topology/topology-netconf/node/ROADM-A1" .format(self.restconf_baseurl)) data = {"node": [{ - "node-id": "ROADM-A1", - "netconf-node-topology:username": "admin", - "netconf-node-topology:password": "admin", - "netconf-node-topology:host": "127.0.0.1", - "netconf-node-topology:port": "17841", - "netconf-node-topology:tcp-only": "false", - "netconf-node-topology:pass-through": {}}]} + "node-id": "ROADM-A1", + "netconf-node-topology:username": "admin", + "netconf-node-topology:password": "admin", + "netconf-node-topology:host": "127.0.0.1", + "netconf-node-topology:port": "17841", + "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(20) @@ -154,17 +154,17 @@ class TransportOlmTesting(unittest.TestCase): "network-topology/topology/topology-netconf/node/ROADM-C1" .format(self.restconf_baseurl)) data = {"node": [{ - "node-id": "ROADM-C1", - "netconf-node-topology:username": "admin", - "netconf-node-topology:password": "admin", - "netconf-node-topology:host": "127.0.0.1", - "netconf-node-topology:port": "17843", - "netconf-node-topology:tcp-only": "false", - "netconf-node-topology:pass-through": {}}]} + "node-id": "ROADM-C1", + "netconf-node-topology:username": "admin", + "netconf-node-topology:password": "admin", + "netconf-node-topology:host": "127.0.0.1", + "netconf-node-topology:port": "17843", + "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(20) @@ -184,8 +184,8 @@ class TransportOlmTesting(unittest.TestCase): } headers = {'content-type': 'application/json'} response = requests.request( - "POST", url, data=json.dumps(data), - headers=headers, auth=('admin', 'admin')) + "POST", url, data=json.dumps(data), + headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn('Xponder Roadm Link created successfully', res["output"]["result"]) @@ -206,8 +206,8 @@ class TransportOlmTesting(unittest.TestCase): } headers = {'content-type': 'application/json'} response = requests.request( - "POST", url, data=json.dumps(data), - headers=headers, auth=('admin', 'admin')) + "POST", url, data=json.dumps(data), + headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn('Roadm Xponder links created successfully', res["output"]["result"]) @@ -228,8 +228,8 @@ class TransportOlmTesting(unittest.TestCase): } headers = {'content-type': 'application/json'} response = requests.request( - "POST", url, data=json.dumps(data), - headers=headers, auth=('admin', 'admin')) + "POST", url, data=json.dumps(data), + headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn('Xponder Roadm Link created successfully', res["output"]["result"]) @@ -250,8 +250,8 @@ class TransportOlmTesting(unittest.TestCase): } headers = {'content-type': 'application/json'} response = requests.request( - "POST", url, data=json.dumps(data), - headers=headers, auth=('admin', 'admin')) + "POST", url, data=json.dumps(data), + headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn('Roadm Xponder links created successfully', res["output"]["result"]) @@ -259,15 +259,15 @@ class TransportOlmTesting(unittest.TestCase): def test_09_create_OTS_ROADMA(self): url = "{}/operations/transportpce-device-renderer:create-ots-oms".format(self.restconf_baseurl) data = { - "input" : { - "node-id" : "ROADM-A1", - "logical-connection-point" : "DEG1-TTP-TXRX" + "input": { + "node-id": "ROADM-A1", + "logical-connection-point": "DEG1-TTP-TXRX" } } headers = {'content-type': 'application/json'} response = requests.request( - "POST", url, data=json.dumps(data), - headers=headers, auth=('admin', 'admin')) + "POST", url, data=json.dumps(data), + headers=headers, auth=('admin', 'admin')) time.sleep(10) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() @@ -277,15 +277,15 @@ class TransportOlmTesting(unittest.TestCase): def test_10_create_OTS_ROADMC(self): url = "{}/operations/transportpce-device-renderer:create-ots-oms".format(self.restconf_baseurl) data = { - "input" : { - "node-id" : "ROADM-C1", - "logical-connection-point" : "DEG2-TTP-TXRX" + "input": { + "node-id": "ROADM-C1", + "logical-connection-point": "DEG2-TTP-TXRX" } } headers = {'content-type': 'application/json'} response = requests.request( - "POST", url, data=json.dumps(data), - headers=headers, auth=('admin', 'admin')) + "POST", url, data=json.dumps(data), + headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn('Interfaces OTS-DEG2-TTP-TXRX - OMS-DEG2-TTP-TXRX successfully created on node ROADM-C1', @@ -299,28 +299,28 @@ class TransportOlmTesting(unittest.TestCase): "resource-type": "interface", "granularity": "15min", "resource-identifier": { - "resource-name" : "OTS-DEG2-TTP-TXRX" + "resource-name": "OTS-DEG2-TTP-TXRX" } } } headers = {'content-type': 'application/json'} response = requests.request( - "POST", url, data=json.dumps(data), - headers=headers, auth=('admin', 'admin')) + "POST", url, data=json.dumps(data), + headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn({ - "pmparameter-name": "OpticalPowerOutput", - "pmparameter-value": "2.5" - }, res["output"]["measurements"]) + "pmparameter-name": "OpticalPowerOutput", + "pmparameter-value": "2.5" + }, res["output"]["measurements"]) self.assertIn({ - "pmparameter-name": "OpticalReturnLoss", - "pmparameter-value": "40" - }, res["output"]["measurements"]) + "pmparameter-name": "OpticalReturnLoss", + "pmparameter-value": "40" + }, res["output"]["measurements"]) self.assertIn({ - "pmparameter-name": "OpticalPowerInput", - "pmparameter-value": "-21.1" - }, res["output"]["measurements"]) + "pmparameter-name": "OpticalPowerInput", + "pmparameter-value": "-21.1" + }, res["output"]["measurements"]) def test_12_get_PM_ROADMC(self): url = "{}/operations/transportpce-olm:get-pm".format(self.restconf_baseurl) @@ -330,28 +330,28 @@ class TransportOlmTesting(unittest.TestCase): "resource-type": "interface", "granularity": "15min", "resource-identifier": { - "resource-name" : "OTS-DEG1-TTP-TXRX" + "resource-name": "OTS-DEG1-TTP-TXRX" } } } headers = {'content-type': 'application/json'} response = requests.request( - "POST", url, data=json.dumps(data), - headers=headers, auth=('admin', 'admin')) + "POST", url, data=json.dumps(data), + headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn({ - "pmparameter-name": "OpticalPowerOutput", - "pmparameter-value": "4.6" - }, res["output"]["measurements"]) + "pmparameter-name": "OpticalPowerOutput", + "pmparameter-value": "4.6" + }, res["output"]["measurements"]) self.assertIn({ - "pmparameter-name": "OpticalReturnLoss", - "pmparameter-value": "49.1" - }, res["output"]["measurements"]) + "pmparameter-name": "OpticalReturnLoss", + "pmparameter-value": "49.1" + }, res["output"]["measurements"]) self.assertIn({ - "pmparameter-name": "OpticalPowerInput", - "pmparameter-value": "-15.1" - }, res["output"]["measurements"]) + "pmparameter-name": "OpticalPowerInput", + "pmparameter-value": "-15.1" + }, res["output"]["measurements"]) def test_13_calculate_span_loss_base_ROADMA_ROADMC(self): url = "{}/operations/transportpce-olm:calculate-spanloss-base".format(self.restconf_baseurl) @@ -363,16 +363,16 @@ class TransportOlmTesting(unittest.TestCase): } headers = {'content-type': 'application/json'} response = requests.request( - "POST", url, data=json.dumps(data), - headers=headers, auth=('admin', 'admin')) + "POST", url, data=json.dumps(data), + headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn('Success', res["output"]["result"]) self.assertIn({ "spanloss": "18", - "link-id": "ROADM-A1-DEG2-DEG2-TTP-TXRXtoROADM-C1-DEG1-DEG1-TTP-TXRX" - }, res["output"]["spans"]) + "link-id": "ROADM-A1-DEG2-DEG2-TTP-TXRXtoROADM-C1-DEG1-DEG1-TTP-TXRX" + }, res["output"]["spans"]) time.sleep(5) def test_14_calculate_span_loss_base_all(self): @@ -384,20 +384,20 @@ class TransportOlmTesting(unittest.TestCase): } headers = {'content-type': 'application/json'} response = requests.request( - "POST", url, data=json.dumps(data), - headers=headers, auth=('admin', 'admin')) + "POST", url, data=json.dumps(data), + headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn('Success', res["output"]["result"]) self.assertIn({ - "spanloss": "26", - "link-id": "ROADM-C1-DEG1-DEG1-TTP-TXRXtoROADM-A1-DEG2-DEG2-TTP-TXRX" - }, res["output"]["spans"]) + "spanloss": "26", + "link-id": "ROADM-C1-DEG1-DEG1-TTP-TXRXtoROADM-A1-DEG2-DEG2-TTP-TXRX" + }, res["output"]["spans"]) self.assertIn({ - "spanloss": "18", - "link-id": "ROADM-A1-DEG2-DEG2-TTP-TXRXtoROADM-C1-DEG1-DEG1-TTP-TXRX" - }, res["output"]["spans"]) + "spanloss": "18", + "link-id": "ROADM-A1-DEG2-DEG2-TTP-TXRXtoROADM-C1-DEG1-DEG1-TTP-TXRX" + }, res["output"]["spans"]) time.sleep(5) def test_15_get_OTS_DEG2_TTP_TXRX_ROADMA(self): @@ -458,12 +458,12 @@ class TransportOlmTesting(unittest.TestCase): } headers = {'content-type': 'application/json'} response = requests.request( - "POST", url, data=json.dumps(data), - headers=headers, auth=('admin', 'admin')) + "POST", url, data=json.dumps(data), + headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn('Roadm-connection successfully created for nodes', res["output"]["result"]) - #time.sleep(40) + # time.sleep(40) time.sleep(10) def test_18_servicePath_create_ZToA(self): @@ -500,12 +500,12 @@ class TransportOlmTesting(unittest.TestCase): } headers = {'content-type': 'application/json'} response = requests.request( - "POST", url, data=json.dumps(data), - headers=headers, auth=('admin', 'admin')) + "POST", url, data=json.dumps(data), + headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn('Roadm-connection successfully created for nodes', res["output"]["result"]) - #time.sleep(40) + # time.sleep(40) time.sleep(10) def test_19_service_power_setup_XPDRA_XPDRC(self): @@ -540,8 +540,8 @@ class TransportOlmTesting(unittest.TestCase): } headers = {'content-type': 'application/json'} response = requests.request( - "POST", url, data=json.dumps(data), - headers=headers, auth=('admin', 'admin')) + "POST", url, data=json.dumps(data), + headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn('Success', res["output"]["result"]) @@ -613,8 +613,8 @@ class TransportOlmTesting(unittest.TestCase): } headers = {'content-type': 'application/json'} response = requests.request( - "POST", url, data=json.dumps(data), - headers=headers, auth=('admin', 'admin')) + "POST", url, data=json.dumps(data), + headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn('Success', res["output"]["result"]) @@ -628,7 +628,7 @@ class TransportOlmTesting(unittest.TestCase): "GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() - self.assertEqual(-5 , res['org-openroadm-optical-channel-interfaces:och']['transmit-power']) + self.assertEqual(-5, res['org-openroadm-optical-channel-interfaces:och']['transmit-power']) self.assertEqual(196.1, res['org-openroadm-optical-channel-interfaces:och']['frequency']) def test_25_get_roadmconnection_ROADMC(self): @@ -675,8 +675,8 @@ class TransportOlmTesting(unittest.TestCase): } headers = {'content-type': 'application/json'} response = requests.request( - "POST", url, data=json.dumps(data), - headers=headers, auth=('admin', 'admin')) + "POST", url, data=json.dumps(data), + headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn('Success', res["output"]["result"]) @@ -738,8 +738,8 @@ class TransportOlmTesting(unittest.TestCase): } headers = {'content-type': 'application/json'} response = requests.request( - "POST", url, data=json.dumps(data), - headers=headers, auth=('admin', 'admin')) + "POST", url, data=json.dumps(data), + headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn('Request processed', res["output"]["result"]) @@ -779,8 +779,8 @@ class TransportOlmTesting(unittest.TestCase): } headers = {'content-type': 'application/json'} response = requests.request( - "POST", url, data=json.dumps(data), - headers=headers, auth=('admin', 'admin')) + "POST", url, data=json.dumps(data), + headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn('Request processed', res["output"]["result"]) @@ -804,8 +804,8 @@ class TransportOlmTesting(unittest.TestCase): } headers = {'content-type': 'application/json'} response = requests.request( - "POST", url, data=json.dumps(data), - headers=headers, auth=('admin', 'admin')) + "POST", url, data=json.dumps(data), + headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn('Xponder Roadm Link created successfully', res["output"]["result"]) @@ -826,8 +826,8 @@ class TransportOlmTesting(unittest.TestCase): } headers = {'content-type': 'application/json'} response = requests.request( - "POST", url, data=json.dumps(data), - headers=headers, auth=('admin', 'admin')) + "POST", url, data=json.dumps(data), + headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn('Roadm Xponder links created successfully', res["output"]["result"]) @@ -856,12 +856,12 @@ class TransportOlmTesting(unittest.TestCase): } headers = {'content-type': 'application/json'} response = requests.request( - "POST", url, data=json.dumps(data), - headers=headers, auth=('admin', 'admin')) + "POST", url, data=json.dumps(data), + headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn('Roadm-connection successfully created for nodes', res["output"]["result"]) - #time.sleep(40) + # time.sleep(40) time.sleep(10) def test_34_get_interface_XPDRA_XPDR1_NETWORK2(self): @@ -900,8 +900,8 @@ class TransportOlmTesting(unittest.TestCase): } headers = {'content-type': 'application/json'} response = requests.request( - "POST", url, data=json.dumps(data), - headers=headers, auth=('admin', 'admin')) + "POST", url, data=json.dumps(data), + headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn('Request processed', res["output"]["result"]) @@ -909,23 +909,23 @@ class TransportOlmTesting(unittest.TestCase): def test_36_xpdrA_device_disconnected(self): url = ("{}/config/network-topology:" - "network-topology/topology/topology-netconf/node/XPDR-A1" + "network-topology/topology/topology-netconf/node/XPDR-A1" .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "DELETE", url, headers=headers, - auth=('admin', 'admin')) + "DELETE", url, headers=headers, + auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) time.sleep(10) def test_37_xpdrC_device_disconnected(self): url = ("{}/config/network-topology:" - "network-topology/topology/topology-netconf/node/XPDR-C1" + "network-topology/topology/topology-netconf/node/XPDR-C1" .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "DELETE", url, headers=headers, - auth=('admin', 'admin')) + "DELETE", url, headers=headers, + auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) time.sleep(10) @@ -933,7 +933,7 @@ class TransportOlmTesting(unittest.TestCase): url = "{}/operations/transportpce-olm:calculate-spanloss-current".format(self.restconf_baseurl) headers = {'content-type': 'application/json'} response = requests.request( - "POST", url, headers=headers, auth=('admin', 'admin')) + "POST", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn('Success', @@ -942,25 +942,26 @@ class TransportOlmTesting(unittest.TestCase): def test_39_rdmA_device_disconnected(self): url = ("{}/config/network-topology:" - "network-topology/topology/topology-netconf/node/ROADM-A1" + "network-topology/topology/topology-netconf/node/ROADM-A1" .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "DELETE", url, headers=headers, - auth=('admin', 'admin')) + "DELETE", url, headers=headers, + auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) time.sleep(10) def test_40_rdmC_device_disconnected(self): url = ("{}/config/network-topology:" - "network-topology/topology/topology-netconf/node/ROADM-C1" + "network-topology/topology/topology-netconf/node/ROADM-C1" .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "DELETE", url, headers=headers, - auth=('admin', 'admin')) + "DELETE", url, headers=headers, + auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) time.sleep(10) + if __name__ == "__main__": unittest.main(verbosity=2) diff --git a/tests/transportpce_tests/2.2.1/test_otn_renderer.py b/tests/transportpce_tests/2.2.1/test_otn_renderer.py index adccedd61..476f146b6 100644 --- a/tests/transportpce_tests/2.2.1/test_otn_renderer.py +++ b/tests/transportpce_tests/2.2.1/test_otn_renderer.py @@ -30,14 +30,14 @@ class TransportPCEtesting(unittest.TestCase): @classmethod def setUpClass(cls): - print ("starting honeynode1...") + print("starting honeynode1...") cls.honeynode_process1 = test_utils.start_spdra_honeynode() time.sleep(30) - print ("starting opendaylight...") + print("starting opendaylight...") cls.odl_process = test_utils.start_tpce() time.sleep(60) - print ("opendaylight started") + print("opendaylight started") @classmethod def tearDownClass(cls): @@ -57,20 +57,20 @@ class TransportPCEtesting(unittest.TestCase): 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": "17845", + "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:" @@ -115,30 +115,30 @@ class TransportPCEtesting(unittest.TestCase): res = response.json() self.assertIn( {"logical-connection-point": "XPDR1-NETWORK1", - "supporting-port": "CP1-CFP0-P1", - "supported-interface-capability": [ - "org-openroadm-port-types:if-OCH-OTU4-ODU4" - ], - "port-direction": "bidirectional", - "port-qual": "xpdr-network", - "supporting-circuit-pack-name": "CP1-CFP0", - "xponder-type": "mpdr"}, + "supporting-port": "CP1-CFP0-P1", + "supported-interface-capability": [ + "org-openroadm-port-types:if-OCH-OTU4-ODU4" + ], + "port-direction": "bidirectional", + "port-qual": "xpdr-network", + "supporting-circuit-pack-name": "CP1-CFP0", + "xponder-type": "mpdr"}, res['mapping']) def test_04_service_path_create_ODU4(self): url = "{}/operations/transportpce-device-renderer:service-path".format(self.restconf_baseurl) data = {"renderer:input": { - "service-name": "service_ODU4", - "wave-number": "1", - "modulation-format": "qpsk", - "operation": "create", - "nodes": [ - {"node-id": "SPDR-SA1", - "dest-tp": "XPDR1-NETWORK1"}]}} + "service-name": "service_ODU4", + "wave-number": "1", + "modulation-format": "qpsk", + "operation": "create", + "nodes": [ + {"node-id": "SPDR-SA1", + "dest-tp": "XPDR1-NETWORK1"}]}} headers = {'content-type': 'application/json'} response = requests.request( - "POST", url, data=json.dumps(data), - headers=headers, auth=('admin', 'admin')) + "POST", url, data=json.dumps(data), + headers=headers, auth=('admin', 'admin')) time.sleep(3) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() @@ -161,96 +161,96 @@ class TransportPCEtesting(unittest.TestCase): res = response.json() self.assertIn( {"logical-connection-point": "XPDR1-NETWORK1", - "supporting-port": "CP1-CFP0-P1", - "supported-interface-capability": [ - "org-openroadm-port-types:if-OCH-OTU4-ODU4" - ], - "port-direction": "bidirectional", - "port-qual": "xpdr-network", - "supporting-circuit-pack-name": "CP1-CFP0", - "xponder-type": "mpdr", - "supporting-odu4": "XPDR1-NETWORK1-ODU4"}, + "supporting-port": "CP1-CFP0-P1", + "supported-interface-capability": [ + "org-openroadm-port-types:if-OCH-OTU4-ODU4" + ], + "port-direction": "bidirectional", + "port-qual": "xpdr-network", + "supporting-circuit-pack-name": "CP1-CFP0", + "xponder-type": "mpdr", + "supporting-odu4": "XPDR1-NETWORK1-ODU4"}, res['mapping']) def test_06_check_interface_och(self): url = ("{}/config/network-topology:network-topology/topology/topology-netconf/" - "node/SPDR-SA1/yang-ext:mount/org-openroadm-device:org-openroadm-device/" - "interface/XPDR1-NETWORK1-1" - .format(self.restconf_baseurl)) + "node/SPDR-SA1/yang-ext:mount/org-openroadm-device:org-openroadm-device/" + "interface/XPDR1-NETWORK1-1" + .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "GET", url, headers=headers, auth=('admin', 'admin')) + "GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertDictContainsSubset({'name': 'XPDR1-NETWORK1-1', 'administrative-state': 'inService', - 'supporting-circuit-pack-name': 'CP1-CFP0', - 'type': 'org-openroadm-interfaces:opticalChannel', - 'supporting-port': 'CP1-CFP0-P1'}, res['interface'][0]) + 'supporting-circuit-pack-name': 'CP1-CFP0', + 'type': 'org-openroadm-interfaces:opticalChannel', + 'supporting-port': 'CP1-CFP0-P1'}, res['interface'][0]) self.assertDictEqual( - {u'frequency': 196.1, u'rate': u'org-openroadm-common-types:R100G', - u'transmit-power': -5}, - res['interface'][0]['org-openroadm-optical-channel-interfaces:och']) + {u'frequency': 196.1, u'rate': u'org-openroadm-common-types:R100G', + u'transmit-power': -5}, + res['interface'][0]['org-openroadm-optical-channel-interfaces:och']) def test_07_check_interface_OTU(self): url = ("{}/config/network-topology:network-topology/topology/topology-netconf/" - "node/SPDR-SA1/yang-ext:mount/org-openroadm-device:org-openroadm-device/" - "interface/XPDR1-NETWORK1-OTU" - .format(self.restconf_baseurl)) + "node/SPDR-SA1/yang-ext:mount/org-openroadm-device:org-openroadm-device/" + "interface/XPDR1-NETWORK1-OTU" + .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "GET", url, headers=headers, auth=('admin', 'admin')) + "GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertDictContainsSubset({'name': 'XPDR1-NETWORK1-OTU', 'administrative-state': 'inService', - 'supporting-circuit-pack-name': 'CP1-CFP0', 'supporting-interface': 'XPDR1-NETWORK1-1', - 'type': 'org-openroadm-interfaces:otnOtu', - 'supporting-port': 'CP1-CFP0-P1'}, res['interface'][0]) + 'supporting-circuit-pack-name': 'CP1-CFP0', 'supporting-interface': 'XPDR1-NETWORK1-1', + 'type': 'org-openroadm-interfaces:otnOtu', + 'supporting-port': 'CP1-CFP0-P1'}, res['interface'][0]) self.assertDictEqual( - {u'rate': u'org-openroadm-otn-common-types:OTU4', - u'fec': u'scfec'}, - res['interface'][0]['org-openroadm-otn-otu-interfaces:otu']) + {u'rate': u'org-openroadm-otn-common-types:OTU4', + u'fec': u'scfec'}, + res['interface'][0]['org-openroadm-otn-otu-interfaces:otu']) def test_08_check_interface_ODU4(self): url = ("{}/config/network-topology:network-topology/topology/topology-netconf/" - "node/SPDR-SA1/yang-ext:mount/org-openroadm-device:org-openroadm-device/" - "interface/XPDR1-NETWORK1-ODU4" - .format(self.restconf_baseurl)) + "node/SPDR-SA1/yang-ext:mount/org-openroadm-device:org-openroadm-device/" + "interface/XPDR1-NETWORK1-ODU4" + .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "GET", url, headers=headers, auth=('admin', 'admin')) + "GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertDictContainsSubset({'name': 'XPDR1-NETWORK1-ODU4', 'administrative-state': 'inService', - 'supporting-circuit-pack-name': 'CP1-CFP0', 'supporting-interface': 'XPDR1-NETWORK1-OTU', - 'type': 'org-openroadm-interfaces:otnOdu', - 'supporting-port': 'CP1-CFP0-P1'}, res['interface'][0]) + 'supporting-circuit-pack-name': 'CP1-CFP0', 'supporting-interface': 'XPDR1-NETWORK1-OTU', + 'type': 'org-openroadm-interfaces:otnOdu', + 'supporting-port': 'CP1-CFP0-P1'}, res['interface'][0]) self.assertDictContainsSubset( - {'odu-function': 'org-openroadm-otn-common-types:ODU-TTP', - 'rate': 'org-openroadm-otn-common-types:ODU4'}, - res['interface'][0]['org-openroadm-otn-odu-interfaces:odu']) + {'odu-function': 'org-openroadm-otn-common-types:ODU-TTP', + 'rate': 'org-openroadm-otn-common-types:ODU4'}, + res['interface'][0]['org-openroadm-otn-odu-interfaces:odu']) self.assertDictEqual( - {u'payload-type': u'21', u'exp-payload-type': u'21'}, - res['interface'][0]['org-openroadm-otn-odu-interfaces:odu']['opu']) + {u'payload-type': u'21', u'exp-payload-type': u'21'}, + res['interface'][0]['org-openroadm-otn-odu-interfaces:odu']['opu']) def test_09_otn_service_path_create_10GE(self): url = "{}/operations/transportpce-device-renderer:otn-service-path".format(self.restconf_baseurl) data = {"renderer:input": { - "service-name": "service1", - "operation": "create", - "service-rate": "10G", - "service-type": "Ethernet", - "ethernet-encoding": "eth encode", - "trib-slot" : ["1"], - "trib-port-number": "1", - "opucn-trib-slots": ["1"], - "nodes": [ - {"node-id": "SPDR-SA1", - "client-tp": "XPDR1-CLIENT1", - "network-tp": "XPDR1-NETWORK1"}]}} + "service-name": "service1", + "operation": "create", + "service-rate": "10G", + "service-type": "Ethernet", + "ethernet-encoding": "eth encode", + "trib-slot": ["1"], + "trib-port-number": "1", + "opucn-trib-slots": ["1"], + "nodes": [ + {"node-id": "SPDR-SA1", + "client-tp": "XPDR1-CLIENT1", + "network-tp": "XPDR1-NETWORK1"}]}} headers = {'content-type': 'application/json'} response = requests.request( - "POST", url, data=json.dumps(data), - headers=headers, auth=('admin', 'admin')) + "POST", url, data=json.dumps(data), + headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn('Otn Service path was set up successfully for node :service1-SPDR-SA1', res["output"]["result"]) @@ -258,78 +258,78 @@ class TransportPCEtesting(unittest.TestCase): def test_10_check_interface_10GE_CLIENT(self): url = ("{}/config/network-topology:network-topology/topology/topology-netconf/" - "node/SPDR-SA1/yang-ext:mount/org-openroadm-device:org-openroadm-device/" - "interface/XPDR1-CLIENT1-ETHERNET10G" - .format(self.restconf_baseurl)) + "node/SPDR-SA1/yang-ext:mount/org-openroadm-device:org-openroadm-device/" + "interface/XPDR1-CLIENT1-ETHERNET10G" + .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "GET", url, headers=headers, auth=('admin', 'admin')) + "GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertDictContainsSubset({'name': 'XPDR1-CLIENT1-ETHERNET10G', 'administrative-state': 'inService', - 'supporting-circuit-pack-name': 'CP1-SFP4', - 'type': 'org-openroadm-interfaces:ethernetCsmacd', - 'supporting-port': 'CP1-SFP4-P1'}, res['interface'][0]) + 'supporting-circuit-pack-name': 'CP1-SFP4', + 'type': 'org-openroadm-interfaces:ethernetCsmacd', + 'supporting-port': 'CP1-SFP4-P1'}, res['interface'][0]) self.assertDictEqual( - {u'speed': 10000}, - res['interface'][0]['org-openroadm-ethernet-interfaces:ethernet']) + {u'speed': 10000}, + res['interface'][0]['org-openroadm-ethernet-interfaces:ethernet']) def test_11_check_interface_ODU2E_CLIENT(self): url = ("{}/config/network-topology:network-topology/topology/topology-netconf/" - "node/SPDR-SA1/yang-ext:mount/org-openroadm-device:org-openroadm-device/" - "interface/XPDR1-CLIENT1-ODU2e-service1" - .format(self.restconf_baseurl)) + "node/SPDR-SA1/yang-ext:mount/org-openroadm-device:org-openroadm-device/" + "interface/XPDR1-CLIENT1-ODU2e-service1" + .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "GET", url, headers=headers, auth=('admin', 'admin')) + "GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertDictContainsSubset({'name': 'XPDR1-CLIENT1-ODU2e-service1', 'administrative-state': 'inService', - 'supporting-circuit-pack-name': 'CP1-SFP4', - 'supporting-interface': 'XPDR1-CLIENT1-ETHERNET10G', - 'type': 'org-openroadm-interfaces:otnOdu', - 'supporting-port': 'CP1-SFP4-P1'}, res['interface'][0]) + 'supporting-circuit-pack-name': 'CP1-SFP4', + 'supporting-interface': 'XPDR1-CLIENT1-ETHERNET10G', + 'type': 'org-openroadm-interfaces:otnOdu', + 'supporting-port': 'CP1-SFP4-P1'}, res['interface'][0]) self.assertDictContainsSubset({ 'odu-function': 'org-openroadm-otn-common-types:ODU-TTP-CTP', 'rate': 'org-openroadm-otn-common-types:ODU2e', 'monitoring-mode': 'terminated'}, res['interface'][0]['org-openroadm-otn-odu-interfaces:odu']) self.assertDictEqual( - {u'payload-type': u'03', u'exp-payload-type': u'03'}, - res['interface'][0]['org-openroadm-otn-odu-interfaces:odu']['opu']) + {u'payload-type': u'03', u'exp-payload-type': u'03'}, + res['interface'][0]['org-openroadm-otn-odu-interfaces:odu']['opu']) def test_12_check_interface_ODU2E_NETWORK(self): url = ("{}/config/network-topology:network-topology/topology/topology-netconf/" - "node/SPDR-SA1/yang-ext:mount/org-openroadm-device:org-openroadm-device/" - "interface/XPDR1-NETWORK1-ODU2e-service1" - .format(self.restconf_baseurl)) + "node/SPDR-SA1/yang-ext:mount/org-openroadm-device:org-openroadm-device/" + "interface/XPDR1-NETWORK1-ODU2e-service1" + .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "GET", url, headers=headers, auth=('admin', 'admin')) + "GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertDictContainsSubset({'name': 'XPDR1-NETWORK1-ODU2e-service1', 'administrative-state': 'inService', - 'supporting-circuit-pack-name': 'CP1-CFP0', - 'supporting-interface': 'XPDR1-NETWORK1-ODU4', - 'type': 'org-openroadm-interfaces:otnOdu', - 'supporting-port': 'CP1-CFP0-P1'}, res['interface'][0]) + 'supporting-circuit-pack-name': 'CP1-CFP0', + 'supporting-interface': 'XPDR1-NETWORK1-ODU4', + 'type': 'org-openroadm-interfaces:otnOdu', + 'supporting-port': 'CP1-CFP0-P1'}, res['interface'][0]) self.assertDictContainsSubset({ 'odu-function': 'org-openroadm-otn-common-types:ODU-CTP', 'rate': 'org-openroadm-otn-common-types:ODU2e', 'monitoring-mode': 'monitored'}, res['interface'][0]['org-openroadm-otn-odu-interfaces:odu']) self.assertDictContainsSubset( - {'trib-port-number': 1}, - res['interface'][0]['org-openroadm-otn-odu-interfaces:odu']['parent-odu-allocation']) + {'trib-port-number': 1}, + res['interface'][0]['org-openroadm-otn-odu-interfaces:odu']['parent-odu-allocation']) self.assertIn(1, - res['interface'][0]['org-openroadm-otn-odu-interfaces:odu']['parent-odu-allocation']['trib-slots']) + res['interface'][0]['org-openroadm-otn-odu-interfaces:odu']['parent-odu-allocation']['trib-slots']) def test_13_check_ODU2E_connection(self): url = ("{}/config/network-topology:network-topology/topology/topology-netconf/" - "node/SPDR-SA1/yang-ext:mount/org-openroadm-device:org-openroadm-device/" - "odu-connection/XPDR1-CLIENT1-ODU2e-service1-x-XPDR1-NETWORK1-ODU2e-service1" - .format(self.restconf_baseurl)) + "node/SPDR-SA1/yang-ext:mount/org-openroadm-device:org-openroadm-device/" + "odu-connection/XPDR1-CLIENT1-ODU2e-service1-x-XPDR1-NETWORK1-ODU2e-service1" + .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "GET", url, headers=headers, auth=('admin', 'admin')) + "GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertDictContainsSubset({ @@ -337,29 +337,29 @@ class TransportPCEtesting(unittest.TestCase): 'direction': 'bidirectional'}, res['odu-connection'][0]) self.assertDictEqual({u'dst-if': u'XPDR1-NETWORK1-ODU2e-service1'}, - res['odu-connection'][0]['destination']) + res['odu-connection'][0]['destination']) self.assertDictEqual({u'src-if': u'XPDR1-CLIENT1-ODU2e-service1'}, - res['odu-connection'][0]['source']) + res['odu-connection'][0]['source']) def test_14_otn_service_path_delete_10GE(self): url = "{}/operations/transportpce-device-renderer:otn-service-path".format(self.restconf_baseurl) data = {"renderer:input": { - "service-name": "service1", - "operation": "delete", - "service-rate": "10G", - "service-type": "Ethernet", - "ethernet-encoding": "eth encode", - "trib-slot" : ["1"], - "trib-port-number": "1", - "opucn-trib-slots": ["1"], - "nodes": [ - {"node-id": "SPDR-SA1", - "client-tp": "XPDR1-CLIENT1", - "network-tp": "XPDR1-NETWORK1"}]}} + "service-name": "service1", + "operation": "delete", + "service-rate": "10G", + "service-type": "Ethernet", + "ethernet-encoding": "eth encode", + "trib-slot": ["1"], + "trib-port-number": "1", + "opucn-trib-slots": ["1"], + "nodes": [ + {"node-id": "SPDR-SA1", + "client-tp": "XPDR1-CLIENT1", + "network-tp": "XPDR1-NETWORK1"}]}} headers = {'content-type': 'application/json'} response = requests.request( - "POST", url, data=json.dumps(data), - headers=headers, auth=('admin', 'admin')) + "POST", url, data=json.dumps(data), + headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn('Request processed', res["output"]["result"]) @@ -367,58 +367,58 @@ class TransportPCEtesting(unittest.TestCase): def test_15_check_no_ODU2E_connection(self): url = ("{}/config/network-topology:network-topology/topology/topology-netconf/" - "node/SPDR-SA1/yang-ext:mount/org-openroadm-device:org-openroadm-device/" - "odu-connection/XPDR1-CLIENT1-ODU2e-service1-x-XPDR1-NETWORK1-ODU2e-service1" - .format(self.restconf_baseurl)) + "node/SPDR-SA1/yang-ext:mount/org-openroadm-device:org-openroadm-device/" + "odu-connection/XPDR1-CLIENT1-ODU2e-service1-x-XPDR1-NETWORK1-ODU2e-service1" + .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "GET", url, headers=headers, auth=('admin', 'admin')) + "GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.not_found) def test_16_check_no_interface_ODU2E_NETWORK(self): url = ("{}/config/network-topology:network-topology/topology/topology-netconf/" - "node/SPDR-SA1/yang-ext:mount/org-openroadm-device:org-openroadm-device/" - "interface/XPDR1-NETWORK1-ODU2e-service1" - .format(self.restconf_baseurl)) + "node/SPDR-SA1/yang-ext:mount/org-openroadm-device:org-openroadm-device/" + "interface/XPDR1-NETWORK1-ODU2e-service1" + .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "GET", url, headers=headers, auth=('admin', 'admin')) + "GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.not_found) def test_17_check_no_interface_ODU2E_CLIENT(self): url = ("{}/config/network-topology:network-topology/topology/topology-netconf/" - "node/SPDR-SA1/yang-ext:mount/org-openroadm-device:org-openroadm-device/" - "interface/XPDR1-CLIENT1-ODU2e-service1" - .format(self.restconf_baseurl)) + "node/SPDR-SA1/yang-ext:mount/org-openroadm-device:org-openroadm-device/" + "interface/XPDR1-CLIENT1-ODU2e-service1" + .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "GET", url, headers=headers, auth=('admin', 'admin')) + "GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.not_found) def test_18_check_no_interface_10GE_CLIENT(self): url = ("{}/config/network-topology:network-topology/topology/topology-netconf/" - "node/SPDR-SA1/yang-ext:mount/org-openroadm-device:org-openroadm-device/" - "interface/XPDR1-CLIENT1-ETHERNET10G" - .format(self.restconf_baseurl)) + "node/SPDR-SA1/yang-ext:mount/org-openroadm-device:org-openroadm-device/" + "interface/XPDR1-CLIENT1-ETHERNET10G" + .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "GET", url, headers=headers, auth=('admin', 'admin')) + "GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.not_found) def test_19_service_path_delete_ODU4(self): url = "{}/operations/transportpce-device-renderer:service-path".format(self.restconf_baseurl) data = {"renderer:input": { - "service-name": "service_ODU4", - "wave-number": "1", - "modulation-format": "qpsk", - "operation": "delete", - "nodes": [ - {"node-id": "SPDR-SA1", - "dest-tp": "XPDR1-NETWORK1"}]}} + "service-name": "service_ODU4", + "wave-number": "1", + "modulation-format": "qpsk", + "operation": "delete", + "nodes": [ + {"node-id": "SPDR-SA1", + "dest-tp": "XPDR1-NETWORK1"}]}} headers = {'content-type': 'application/json'} response = requests.request( - "POST", url, data=json.dumps(data), - headers=headers, auth=('admin', 'admin')) + "POST", url, data=json.dumps(data), + headers=headers, auth=('admin', 'admin')) time.sleep(3) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() @@ -427,38 +427,38 @@ class TransportPCEtesting(unittest.TestCase): def test_20_check_no_interface_ODU4(self): url = ("{}/config/network-topology:network-topology/topology/topology-netconf/" - "node/SPDR-SA1/yang-ext:mount/org-openroadm-device:org-openroadm-device/" - "interface/XPDR1-NETWORK1-ODU4" - .format(self.restconf_baseurl)) + "node/SPDR-SA1/yang-ext:mount/org-openroadm-device:org-openroadm-device/" + "interface/XPDR1-NETWORK1-ODU4" + .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "GET", url, headers=headers, auth=('admin', 'admin')) + "GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.not_found) def test_21_check_no_interface_OTU(self): url = ("{}/config/network-topology:network-topology/topology/topology-netconf/" - "node/SPDR-SA1/yang-ext:mount/org-openroadm-device:org-openroadm-device/" - "interface/XPDR1-NETWORK1-OTU" - .format(self.restconf_baseurl)) + "node/SPDR-SA1/yang-ext:mount/org-openroadm-device:org-openroadm-device/" + "interface/XPDR1-NETWORK1-OTU" + .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "GET", url, headers=headers, auth=('admin', 'admin')) + "GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.not_found) def test_22_check_no_interface_och(self): url = ("{}/config/network-topology:network-topology/topology/topology-netconf/" - "node/SPDR-SA1/yang-ext:mount/org-openroadm-device:org-openroadm-device/" - "interface/XPDR1-NETWORK1-1" - .format(self.restconf_baseurl)) + "node/SPDR-SA1/yang-ext:mount/org-openroadm-device:org-openroadm-device/" + "interface/XPDR1-NETWORK1-1" + .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "GET", url, headers=headers, auth=('admin', 'admin')) + "GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.not_found) def test_23_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( 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 bdeacdd80..0e0390fa2 100644 --- a/tests/transportpce_tests/2.2.1/test_otn_topology.py +++ b/tests/transportpce_tests/2.2.1/test_otn_topology.py @@ -30,14 +30,14 @@ class TransportPCEtesting(unittest.TestCase): @classmethod def setUpClass(cls): - print ("starting honeynode1...") + print("starting honeynode1...") cls.honeynode_process1 = test_utils.start_spdra_honeynode() time.sleep(20) - print ("starting opendaylight...") + print("starting opendaylight...") cls.odl_process = test_utils.start_tpce() time.sleep(60) - print ("opendaylight started") + print("opendaylight started") @classmethod def tearDownClass(cls): @@ -57,20 +57,20 @@ class TransportPCEtesting(unittest.TestCase): 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": "17845", + "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 +86,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 +98,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')) @@ -114,7 +114,7 @@ class TransportPCEtesting(unittest.TestCase): 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 +125,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')) @@ -184,7 +184,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')) @@ -194,7 +194,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')) @@ -214,7 +214,8 @@ class TransportPCEtesting(unittest.TestCase): 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(res['network'][0]['node'][i]['org-openroadm-otn-network-topology:xpdr-attributes']['xpdr-number'], 1) + 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 @@ -223,19 +224,27 @@ class TransportPCEtesting(unittest.TestCase): 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] @@ -254,7 +263,8 @@ class TransportPCEtesting(unittest.TestCase): 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(res['network'][0]['node'][i]['org-openroadm-otn-network-topology:xpdr-attributes']['xpdr-number'], 2) + 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 @@ -263,19 +273,27 @@ class TransportPCEtesting(unittest.TestCase): 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']) @@ -293,7 +311,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( @@ -303,7 +321,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')) @@ -315,7 +333,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')) @@ -325,7 +343,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')) @@ -334,7 +352,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')) diff --git a/tests/transportpce_tests/2.2.1/test_portmapping.py b/tests/transportpce_tests/2.2.1/test_portmapping.py index df4e0f2b9..034da4678 100644 --- a/tests/transportpce_tests/2.2.1/test_portmapping.py +++ b/tests/transportpce_tests/2.2.1/test_portmapping.py @@ -30,19 +30,19 @@ class TransportPCEPortMappingTesting(unittest.TestCase): @classmethod def setUpClass(cls): - print ("starting honeynode1...") + print("starting honeynode1...") cls.honeynode_process1 = test_utils.start_xpdra_honeynode() time.sleep(20) - print ("starting honeynode2...") + print("starting honeynode2...") cls.honeynode_process2 = test_utils.start_roadma_honeynode() time.sleep(20) - print ("all honeynodes started") + print("all honeynodes started") - print ("starting opendaylight...") + print("starting opendaylight...") cls.odl_process = test_utils.start_tpce() time.sleep(60) - print ("opendaylight started") + print("opendaylight started") @classmethod def tearDownClass(cls): @@ -63,13 +63,13 @@ class TransportPCEPortMappingTesting(unittest.TestCase): cls.honeynode_process2.wait() def setUp(self): - print ("execution of {}".format(self.id().split(".")[-1])) + print("execution of {}".format(self.id().split(".")[-1])) time.sleep(10) def test_01_rdm_device_connected(self): url = ("{}/config/network-topology:" "network-topology/topology/topology-netconf/node/ROADM-A1" - .format(self.restconf_baseurl)) + .format(self.restconf_baseurl)) data = {"node": [{ "node-id": "ROADM-A1", "netconf-node-topology:username": "admin", @@ -110,10 +110,10 @@ class TransportPCEPortMappingTesting(unittest.TestCase): res = response.json() self.assertEqual( {u'node-info': {u'node-type': u'rdm', - u'node-ip-address': u'127.0.0.11', - u'node-clli': u'NodeA', - u'openroadm-version': u'2.2.1', u'node-vendor': u'vendorA', - u'node-model': u'model2'}}, + u'node-ip-address': u'127.0.0.11', + u'node-clli': u'NodeA', + u'openroadm-version': u'2.2.1', u'node-vendor': u'vendorA', + u'node-model': u'model2'}}, res) time.sleep(3) @@ -178,7 +178,7 @@ class TransportPCEPortMappingTesting(unittest.TestCase): def test_08_xpdr_device_connected(self): url = ("{}/config/network-topology:" "network-topology/topology/topology-netconf/node/XPDR-A1" - .format(self.restconf_baseurl)) + .format(self.restconf_baseurl)) data = {"node": [{ "node-id": "XPDR-A1", "netconf-node-topology:username": "admin", @@ -219,10 +219,10 @@ class TransportPCEPortMappingTesting(unittest.TestCase): res = response.json() self.assertEqual( {u'node-info': {u'node-type': u'xpdr', - u'node-ip-address': u'1.2.3.4', - u'node-clli': u'NodeA', - u'openroadm-version': u'2.2.1', u'node-vendor': u'vendorA', - u'node-model': u'model2'}}, + u'node-ip-address': u'1.2.3.4', + u'node-clli': u'NodeA', + u'openroadm-version': u'2.2.1', u'node-vendor': u'vendorA', + u'node-model': u'model2'}}, res) time.sleep(3) @@ -294,12 +294,12 @@ class TransportPCEPortMappingTesting(unittest.TestCase): def test_15_xpdr_device_disconnected(self): url = ("{}/config/network-topology:" - "network-topology/topology/topology-netconf/node/XPDR-A1" + "network-topology/topology/topology-netconf/node/XPDR-A1" .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "DELETE", url, headers=headers, - auth=('admin', 'admin')) + "DELETE", url, headers=headers, + auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) time.sleep(20) @@ -312,8 +312,8 @@ class TransportPCEPortMappingTesting(unittest.TestCase): self.assertEqual(response.status_code, requests.codes.not_found) res = response.json() self.assertIn( - {"error-type":"application", "error-tag":"data-missing", - "error-message":"Request could not be completed because the relevant data model content does not exist"}, + {"error-type": "application", "error-tag": "data-missing", + "error-message": "Request could not be completed because the relevant data model content does not exist"}, res['errors']['error']) def test_17_xpdr_device_disconnected(self): @@ -324,8 +324,8 @@ class TransportPCEPortMappingTesting(unittest.TestCase): self.assertEqual(response.status_code, requests.codes.not_found) res = response.json() self.assertIn( - {"error-type":"application", "error-tag":"data-missing", - "error-message":"Request could not be completed because the relevant data model content does not exist"}, + {"error-type": "application", "error-tag": "data-missing", + "error-message": "Request could not be completed because the relevant data model content does not exist"}, res['errors']['error']) def test_18_rdm_device_disconnected(self): @@ -333,8 +333,8 @@ class TransportPCEPortMappingTesting(unittest.TestCase): .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "DELETE", url, headers=headers, - auth=('admin', 'admin')) + "DELETE", url, headers=headers, + auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) time.sleep(20) @@ -347,8 +347,8 @@ class TransportPCEPortMappingTesting(unittest.TestCase): self.assertEqual(response.status_code, requests.codes.not_found) res = response.json() self.assertIn( - {"error-type":"application", "error-tag":"data-missing", - "error-message":"Request could not be completed because the relevant data model content does not exist"}, + {"error-type": "application", "error-tag": "data-missing", + "error-message": "Request could not be completed because the relevant data model content does not exist"}, res['errors']['error']) def test_20_rdm_device_disconnected(self): @@ -359,8 +359,8 @@ class TransportPCEPortMappingTesting(unittest.TestCase): self.assertEqual(response.status_code, requests.codes.not_found) res = response.json() self.assertIn( - {"error-type":"application", "error-tag":"data-missing", - "error-message":"Request could not be completed because the relevant data model content does not exist"}, + {"error-type": "application", "error-tag": "data-missing", + "error-message": "Request could not be completed because the relevant data model content does not exist"}, res['errors']['error']) diff --git a/tests/transportpce_tests/2.2.1/test_renderer_service_path_nominal.py b/tests/transportpce_tests/2.2.1/test_renderer_service_path_nominal.py index c145ff7ca..30b9dff45 100644 --- a/tests/transportpce_tests/2.2.1/test_renderer_service_path_nominal.py +++ b/tests/transportpce_tests/2.2.1/test_renderer_service_path_nominal.py @@ -29,23 +29,23 @@ class TransportPCERendererTesting(unittest.TestCase): odl_process = None restconf_baseurl = "http://localhost:8181/restconf" -#START_IGNORE_XTESTING +# START_IGNORE_XTESTING @classmethod def setUpClass(cls): - print ("starting honeynode1...") + print("starting honeynode1...") cls.honeynode_process1 = test_utils.start_xpdra_honeynode() time.sleep(20) - print ("starting honeynode2...") + print("starting honeynode2...") cls.honeynode_process2 = test_utils.start_roadma_honeynode() time.sleep(20) - print ("all honeynodes started") + print("all honeynodes started") - print ("starting opendaylight...") + print("starting opendaylight...") cls.odl_process = test_utils.start_tpce() time.sleep(60) - print ("opendaylight started") + print("opendaylight started") @classmethod def tearDownClass(cls): @@ -66,34 +66,34 @@ class TransportPCERendererTesting(unittest.TestCase): cls.honeynode_process2.wait() def setUp(self): - print ("execution of {}".format(self.id().split(".")[-1])) + print("execution of {}".format(self.id().split(".")[-1])) time.sleep(10) -#END_IGNORE_XTESTING +# END_IGNORE_XTESTING def test_01_rdm_device_connected(self): url = ("{}/config/network-topology:" "network-topology/topology/topology-netconf/node/ROADM-A1" .format(self.restconf_baseurl)) data = {"node": [{ - "node-id": "ROADM-A1", - "netconf-node-topology:username": "admin", - "netconf-node-topology:password": "admin", - "netconf-node-topology:host": "127.0.0.1", - "netconf-node-topology:port": "17841", - "netconf-node-topology:tcp-only": "false", - "netconf-node-topology:pass-through": {}}]} + "node-id": "ROADM-A1", + "netconf-node-topology:username": "admin", + "netconf-node-topology:password": "admin", + "netconf-node-topology:host": "127.0.0.1", + "netconf-node-topology:port": "17841", + "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(20) def test_02_xpdr_device_connected(self): url = ("{}/config/network-topology:" "network-topology/topology/topology-netconf/node/XPDR-A1" - .format(self.restconf_baseurl)) + .format(self.restconf_baseurl)) data = {"node": [{ "node-id": "XPDR-A1", "netconf-node-topology:username": "admin", @@ -115,17 +115,17 @@ class TransportPCERendererTesting(unittest.TestCase): .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "GET", url, headers=headers, auth=('admin', 'admin')) + "GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn( - {'supporting-port': 'L1', 'supporting-circuit-pack-name': '1/0', - 'logical-connection-point': 'DEG1-TTP-TXRX', 'port-direction': 'bidirectional'}, - res['nodes'][0]['mapping']) + {'supporting-port': 'L1', 'supporting-circuit-pack-name': '1/0', + 'logical-connection-point': 'DEG1-TTP-TXRX', 'port-direction': 'bidirectional'}, + res['nodes'][0]['mapping']) self.assertIn( - {'supporting-port': 'C3', 'supporting-circuit-pack-name': '3/0', - 'logical-connection-point': 'SRG1-PP3-TXRX', 'port-direction': 'bidirectional'}, - res['nodes'][0]['mapping']) + {'supporting-port': 'C3', 'supporting-circuit-pack-name': '3/0', + 'logical-connection-point': 'SRG1-PP3-TXRX', 'port-direction': 'bidirectional'}, + res['nodes'][0]['mapping']) def test_04_xpdr_portmapping(self): url = ("{}/config/transportpce-portmapping:network/" @@ -133,115 +133,114 @@ class TransportPCERendererTesting(unittest.TestCase): .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "GET", url, headers=headers, auth=('admin', 'admin')) + "GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn( - {'supported-interface-capability': ['org-openroadm-port-types:if-OCH'], - 'supporting-port': '1', 'supporting-circuit-pack-name': '1/0/1-PLUG-NET', - 'logical-connection-point': 'XPDR1-NETWORK1', 'port-qual': 'xpdr-network', - 'port-direction': 'bidirectional', 'connection-map-lcp': 'XPDR1-CLIENT1'}, - res['nodes'][0]['mapping']) + {'supported-interface-capability': ['org-openroadm-port-types:if-OCH'], + 'supporting-port': '1', 'supporting-circuit-pack-name': '1/0/1-PLUG-NET', + 'logical-connection-point': 'XPDR1-NETWORK1', 'port-qual': 'xpdr-network', + 'port-direction': 'bidirectional', 'connection-map-lcp': 'XPDR1-CLIENT1'}, + res['nodes'][0]['mapping']) self.assertIn( - {'supported-interface-capability': ['org-openroadm-port-types:if-100GE'], - 'supporting-port': 'C1', - 'supporting-circuit-pack-name': '1/0/1-PLUG-CLIENT', - 'logical-connection-point': 'XPDR1-CLIENT1', 'port-direction': 'bidirectional', - 'connection-map-lcp': 'XPDR1-NETWORK1', 'port-qual': 'xpdr-client'}, - res['nodes'][0]['mapping']) + {'supported-interface-capability': ['org-openroadm-port-types:if-100GE'], + 'supporting-port': 'C1', + 'supporting-circuit-pack-name': '1/0/1-PLUG-CLIENT', + 'logical-connection-point': 'XPDR1-CLIENT1', 'port-direction': 'bidirectional', + 'connection-map-lcp': 'XPDR1-NETWORK1', 'port-qual': 'xpdr-client'}, + res['nodes'][0]['mapping']) def test_05_service_path_create(self): url = "{}/operations/transportpce-device-renderer:service-path".format(self.restconf_baseurl) data = {"renderer:input": { - "renderer:service-name": "service_test", - "renderer:wave-number": "7", - "renderer:modulation-format": "qpsk", - "renderer:operation": "create", - "renderer:nodes": [ - {"renderer:node-id": "ROADM-A1", - "renderer:src-tp": "SRG1-PP3-TXRX", - "renderer:dest-tp": "DEG1-TTP-TXRX"}, - {"renderer:node-id": "XPDR-A1", - "renderer:src-tp": "XPDR1-CLIENT1", - "renderer:dest-tp": "XPDR1-NETWORK1"}]}} + "renderer:service-name": "service_test", + "renderer:wave-number": "7", + "renderer:modulation-format": "qpsk", + "renderer:operation": "create", + "renderer:nodes": [ + {"renderer:node-id": "ROADM-A1", + "renderer:src-tp": "SRG1-PP3-TXRX", + "renderer:dest-tp": "DEG1-TTP-TXRX"}, + {"renderer:node-id": "XPDR-A1", + "renderer:src-tp": "XPDR1-CLIENT1", + "renderer:dest-tp": "XPDR1-NETWORK1"}]}} headers = {'content-type': 'application/json'} response = requests.request( - "POST", url, data=json.dumps(data), - headers=headers, auth=('admin', 'admin')) + "POST", url, data=json.dumps(data), + headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn('Roadm-connection successfully created for nodes: ROADM-A1', res["output"]["result"]) def test_06_service_path_create_rdm_check(self): url = ("{}/config/network-topology:network-topology/topology/topology-netconf/" - "node/ROADM-A1/yang-ext:mount/org-openroadm-device:org-openroadm-device/" - "interface/DEG1-TTP-TXRX-nmc-7" - .format(self.restconf_baseurl)) + "node/ROADM-A1/yang-ext:mount/org-openroadm-device:org-openroadm-device/" + "interface/DEG1-TTP-TXRX-nmc-7" + .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "GET", url, headers=headers, auth=('admin', 'admin')) + "GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertDictContainsSubset({'name': 'DEG1-TTP-TXRX-nmc-7', 'administrative-state': 'inService', - 'supporting-circuit-pack-name': '1/0', - 'type': 'org-openroadm-interfaces:networkMediaChannelConnectionTerminationPoint', - 'supporting-port': 'L1'}, res['interface'][0]) + 'supporting-circuit-pack-name': '1/0', + 'type': 'org-openroadm-interfaces:networkMediaChannelConnectionTerminationPoint', + 'supporting-port': 'L1'}, res['interface'][0]) self.assertDictEqual( - {u'frequency': 195.8, u'width': 40}, - res['interface'][0]['org-openroadm-network-media-channel-interfaces:nmc-ctp']) + {u'frequency': 195.8, u'width': 40}, + res['interface'][0]['org-openroadm-network-media-channel-interfaces:nmc-ctp']) def test_07_service_path_create_rdm_check(self): url = ("{}/config/network-topology:network-topology/topology/topology-netconf/" - "node/ROADM-A1/yang-ext:mount/org-openroadm-device:org-openroadm-device/" - "interface/DEG1-TTP-TXRX-mc-7" - .format(self.restconf_baseurl)) + "node/ROADM-A1/yang-ext:mount/org-openroadm-device:org-openroadm-device/" + "interface/DEG1-TTP-TXRX-mc-7" + .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "GET", url, headers=headers, auth=('admin', 'admin')) + "GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertDictContainsSubset({'name': 'DEG1-TTP-TXRX-mc-7', 'administrative-state': 'inService', - 'supporting-circuit-pack-name': '1/0', - 'type': 'org-openroadm-interfaces:mediaChannelTrailTerminationPoint', - 'supporting-port': 'L1'}, res['interface'][0]) + 'supporting-circuit-pack-name': '1/0', + 'type': 'org-openroadm-interfaces:mediaChannelTrailTerminationPoint', + 'supporting-port': 'L1'}, res['interface'][0]) self.assertDictEqual( - {u'min-freq': 195.775, u'max-freq': 195.825}, - res['interface'][0]['org-openroadm-media-channel-interfaces:mc-ttp']) - + {u'min-freq': 195.775, u'max-freq': 195.825}, + res['interface'][0]['org-openroadm-media-channel-interfaces:mc-ttp']) def test_08_service_path_create_rdm_check(self): url = ("{}/config/network-topology:network-topology/topology/topology-netconf/" - "node/ROADM-A1/yang-ext:mount/org-openroadm-device:org-openroadm-device/" - "interface/SRG1-PP3-TXRX-nmc-7" - .format(self.restconf_baseurl)) + "node/ROADM-A1/yang-ext:mount/org-openroadm-device:org-openroadm-device/" + "interface/SRG1-PP3-TXRX-nmc-7" + .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "GET", url, headers=headers, auth=('admin', 'admin')) + "GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertDictContainsSubset({'name': 'SRG1-PP3-TXRX-nmc-7', 'administrative-state': 'inService', - 'supporting-circuit-pack-name': '3/0', - 'type': 'org-openroadm-interfaces:networkMediaChannelConnectionTerminationPoint', - 'supporting-port': 'C3'}, res['interface'][0]) + 'supporting-circuit-pack-name': '3/0', + 'type': 'org-openroadm-interfaces:networkMediaChannelConnectionTerminationPoint', + 'supporting-port': 'C3'}, res['interface'][0]) self.assertDictEqual( - {u'frequency': 195.8, u'width': 40}, - res['interface'][0]['org-openroadm-network-media-channel-interfaces:nmc-ctp']) + {u'frequency': 195.8, u'width': 40}, + res['interface'][0]['org-openroadm-network-media-channel-interfaces:nmc-ctp']) # -mc supporting interfaces must not be created for SRG, only degrees def test_09_service_path_create_rdm_check(self): url = ("{}/config/network-topology:network-topology/topology/topology-netconf/" - "node/ROADM-A1/yang-ext:mount/org-openroadm-device:org-openroadm-device/" - "interface/SRG1-PP3-TXRX-mc-7" - .format(self.restconf_baseurl)) + "node/ROADM-A1/yang-ext:mount/org-openroadm-device:org-openroadm-device/" + "interface/SRG1-PP3-TXRX-mc-7" + .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "GET", url, headers=headers, auth=('admin', 'admin')) + "GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.not_found) res = response.json() self.assertIn( - {"error-type":"application", "error-tag":"data-missing", - "error-message":"Request could not be completed because the relevant data model content does not exist"}, - res['errors']['error']) + {"error-type": "application", "error-tag": "data-missing", + "error-message": "Request could not be completed because the relevant data model content does not exist"}, + res['errors']['error']) def test_10_service_path_create_rdm_check(self): url = ("{}/config/network-topology:network-topology/topology/topology-netconf/" @@ -250,86 +249,86 @@ class TransportPCERendererTesting(unittest.TestCase): .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "GET", url, headers=headers, auth=('admin', 'admin')) + "GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertDictContainsSubset( - {'connection-name': 'SRG1-PP3-TXRX-DEG1-TTP-TXRX-7', - 'opticalControlMode': 'off'}, - res['roadm-connections'][0]) + {'connection-name': 'SRG1-PP3-TXRX-DEG1-TTP-TXRX-7', + 'opticalControlMode': 'off'}, + res['roadm-connections'][0]) self.assertDictEqual( - {'src-if': 'SRG1-PP3-TXRX-nmc-7'}, - res['roadm-connections'][0]['source']) + {'src-if': 'SRG1-PP3-TXRX-nmc-7'}, + res['roadm-connections'][0]['source']) self.assertDictEqual( - {'dst-if': 'DEG1-TTP-TXRX-nmc-7'}, - res['roadm-connections'][0]['destination']) + {'dst-if': 'DEG1-TTP-TXRX-nmc-7'}, + res['roadm-connections'][0]['destination']) def test_11_service_path_create_xpdr_check(self): url = ("{}/config/network-topology:network-topology/topology/topology-netconf/" - "node/XPDR-A1/yang-ext:mount/org-openroadm-device:org-openroadm-device/" - "interface/XPDR1-NETWORK1-7" - .format(self.restconf_baseurl)) + "node/XPDR-A1/yang-ext:mount/org-openroadm-device:org-openroadm-device/" + "interface/XPDR1-NETWORK1-7" + .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "GET", url, headers=headers, auth=('admin', 'admin')) + "GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertDictContainsSubset( - {'name': 'XPDR1-NETWORK1-7', 'administrative-state': 'inService', - 'supporting-circuit-pack-name': '1/0/1-PLUG-NET', - 'type': 'org-openroadm-interfaces:opticalChannel', - 'supporting-port': '1'}, - res['interface'][0]) + {'name': 'XPDR1-NETWORK1-7', 'administrative-state': 'inService', + 'supporting-circuit-pack-name': '1/0/1-PLUG-NET', + 'type': 'org-openroadm-interfaces:opticalChannel', + 'supporting-port': '1'}, + res['interface'][0]) self.assertDictEqual( - {u'rate': u'org-openroadm-common-types:R100G', - u'transmit-power':-5, - u'frequency': 195.8}, - res['interface'][0]['org-openroadm-optical-channel-interfaces:och']) + {u'rate': u'org-openroadm-common-types:R100G', + u'transmit-power': -5, + u'frequency': 195.8}, + res['interface'][0]['org-openroadm-optical-channel-interfaces:och']) def test_12_service_path_create_xpdr_check(self): url = ("{}/config/network-topology:network-topology/topology/topology-netconf/" - "node/XPDR-A1/yang-ext:mount/org-openroadm-device:org-openroadm-device/" - "interface/XPDR1-NETWORK1-OTU" - .format(self.restconf_baseurl)) + "node/XPDR-A1/yang-ext:mount/org-openroadm-device:org-openroadm-device/" + "interface/XPDR1-NETWORK1-OTU" + .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "GET", url, headers=headers, auth=('admin', 'admin')) + "GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertDictContainsSubset( - {'name': 'XPDR1-NETWORK1-OTU', 'administrative-state': 'inService', - 'supporting-circuit-pack-name': '1/0/1-PLUG-NET', - 'type': 'org-openroadm-interfaces:otnOtu', - 'supporting-port': '1', - 'supporting-interface': 'XPDR1-NETWORK1-7'}, - res['interface'][0]) + {'name': 'XPDR1-NETWORK1-OTU', 'administrative-state': 'inService', + 'supporting-circuit-pack-name': '1/0/1-PLUG-NET', + 'type': 'org-openroadm-interfaces:otnOtu', + 'supporting-port': '1', + 'supporting-interface': 'XPDR1-NETWORK1-7'}, + res['interface'][0]) self.assertDictEqual( - {u'rate': u'org-openroadm-otn-common-types:OTU4', - u'fec': u'scfec'}, - res['interface'][0]['org-openroadm-otn-otu-interfaces:otu']) + {u'rate': u'org-openroadm-otn-common-types:OTU4', + u'fec': u'scfec'}, + res['interface'][0]['org-openroadm-otn-otu-interfaces:otu']) def test_13_service_path_create_xpdr_check(self): url = ("{}/config/network-topology:network-topology/topology/topology-netconf/" - "node/XPDR-A1/yang-ext:mount/org-openroadm-device:org-openroadm-device/" - "interface/XPDR1-NETWORK1-ODU" - .format(self.restconf_baseurl)) + "node/XPDR-A1/yang-ext:mount/org-openroadm-device:org-openroadm-device/" + "interface/XPDR1-NETWORK1-ODU" + .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "GET", url, headers=headers, auth=('admin', 'admin')) + "GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertDictContainsSubset( - {'name': 'XPDR1-NETWORK1-ODU', 'administrative-state': 'inService', - 'supporting-circuit-pack-name': '1/0/1-PLUG-NET', - 'type': 'org-openroadm-interfaces:otnOdu', - 'supporting-port': '1', - 'supporting-interface': 'XPDR1-NETWORK1-OTU'}, - res['interface'][0]) + {'name': 'XPDR1-NETWORK1-ODU', 'administrative-state': 'inService', + 'supporting-circuit-pack-name': '1/0/1-PLUG-NET', + 'type': 'org-openroadm-interfaces:otnOdu', + 'supporting-port': '1', + 'supporting-interface': 'XPDR1-NETWORK1-OTU'}, + res['interface'][0]) self.assertDictContainsSubset( - {'rate': 'org-openroadm-otn-common-types:ODU4', - u'monitoring-mode': u'terminated'}, - res['interface'][0]['org-openroadm-otn-odu-interfaces:odu']) - self.assertDictEqual({u'exp-payload-type': u'07', u'payload-type': u'07'}, + {'rate': 'org-openroadm-otn-common-types:ODU4', + u'monitoring-mode': u'terminated'}, + res['interface'][0]['org-openroadm-otn-odu-interfaces:odu']) + self.assertDictEqual({u'exp-payload-type': u'07', u'payload-type': u'07'}, res['interface'][0]['org-openroadm-otn-odu-interfaces:odu']['opu']) def test_14_service_path_create_xpdr_check(self): @@ -339,39 +338,39 @@ class TransportPCERendererTesting(unittest.TestCase): .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "GET", url, headers=headers, auth=('admin', 'admin')) + "GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertDictContainsSubset( - {'name': 'XPDR1-CLIENT1-ETHERNET', 'administrative-state': 'inService', - 'supporting-circuit-pack-name': '1/0/1-PLUG-CLIENT', - 'type': 'org-openroadm-interfaces:ethernetCsmacd', - 'supporting-port': 'C1'}, - res['interface'][0]) + {'name': 'XPDR1-CLIENT1-ETHERNET', 'administrative-state': 'inService', + 'supporting-circuit-pack-name': '1/0/1-PLUG-CLIENT', + 'type': 'org-openroadm-interfaces:ethernetCsmacd', + 'supporting-port': 'C1'}, + res['interface'][0]) self.assertDictEqual( - {u'fec': u'off', u'speed': 100000}, - res['interface'][0]['org-openroadm-ethernet-interfaces:ethernet']) + {u'fec': u'off', u'speed': 100000}, + res['interface'][0]['org-openroadm-ethernet-interfaces:ethernet']) def test_15_service_path_create_xpdr_check(self): url = ("{}/config/network-topology:network-topology/topology/topology-netconf/" - "node/XPDR-A1/yang-ext:mount/org-openroadm-device:org-openroadm-device/" - "circuit-packs/1%2F0%2F1-PLUG-NET" - .format(self.restconf_baseurl)) + "node/XPDR-A1/yang-ext:mount/org-openroadm-device:org-openroadm-device/" + "circuit-packs/1%2F0%2F1-PLUG-NET" + .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "GET", url, headers=headers, auth=('admin', 'admin')) + "GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn('not-reserved-inuse', res['circuit-packs'][0]["equipment-state"]) def test_16_service_path_create_xpdr_check(self): url = ("{}/config/network-topology:network-topology/topology/topology-netconf/" - "node/XPDR-A1/yang-ext:mount/org-openroadm-device:org-openroadm-device/" - "circuit-packs/1%2F0%2F1-PLUG-CLIENT" - .format(self.restconf_baseurl)) + "node/XPDR-A1/yang-ext:mount/org-openroadm-device:org-openroadm-device/" + "circuit-packs/1%2F0%2F1-PLUG-CLIENT" + .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "GET", url, headers=headers, auth=('admin', 'admin')) + "GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn('not-reserved-inuse', res['circuit-packs'][0]["equipment-state"]) @@ -379,53 +378,53 @@ class TransportPCERendererTesting(unittest.TestCase): def test_17_service_path_delete(self): url = "{}/operations/transportpce-device-renderer:service-path".format(self.restconf_baseurl) data = {"renderer:input": { - "renderer:service-name": "service_test", - "renderer:wave-number": "7", - "renderer:operation": "delete", - "renderer:nodes": [ - {"renderer:node-id": "ROADM-A1", - "renderer:src-tp": "SRG1-PP3-TXRX", - "renderer:dest-tp": "DEG1-TTP-TXRX"}, - {"renderer:node-id": "XPDR-A1", - "renderer:src-tp": "XPDR1-CLIENT1", - "renderer:dest-tp": "XPDR1-NETWORK1"}]}} + "renderer:service-name": "service_test", + "renderer:wave-number": "7", + "renderer:operation": "delete", + "renderer:nodes": [ + {"renderer:node-id": "ROADM-A1", + "renderer:src-tp": "SRG1-PP3-TXRX", + "renderer:dest-tp": "DEG1-TTP-TXRX"}, + {"renderer:node-id": "XPDR-A1", + "renderer:src-tp": "XPDR1-CLIENT1", + "renderer:dest-tp": "XPDR1-NETWORK1"}]}} headers = {'content-type': 'application/json'} response = requests.request( - "POST", url, data=json.dumps(data), - headers=headers, auth=('admin', 'admin')) + "POST", url, data=json.dumps(data), + headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) self.assertEqual(response.json(), { - 'output': {'result': 'Request processed', 'success': True}}) + 'output': {'result': 'Request processed', 'success': True}}) def test_18_service_path_delete_rdm_check(self): url = ("{}/config/network-topology:network-topology/topology/topology-netconf/" - "node/ROADM-A1/yang-ext:mount/org-openroadm-device:org-openroadm-device/" - "interface/DEG1-TTP-TXRX-mc-7" - .format(self.restconf_baseurl)) + "node/ROADM-A1/yang-ext:mount/org-openroadm-device:org-openroadm-device/" + "interface/DEG1-TTP-TXRX-mc-7" + .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "GET", url, headers=headers, auth=('admin', 'admin')) + "GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.not_found) res = response.json() self.assertIn( - {"error-type":"application", "error-tag":"data-missing", - "error-message":"Request could not be completed because the relevant data model content does not exist"}, - res['errors']['error']) + {"error-type": "application", "error-tag": "data-missing", + "error-message": "Request could not be completed because the relevant data model content does not exist"}, + res['errors']['error']) def test_19_service_path_delete_rdm_check(self): url = ("{}/config/network-topology:network-topology/topology/topology-netconf/" - "node/ROADM-A1/yang-ext:mount/org-openroadm-device:org-openroadm-device/" - "interface/DEG1-TTP-TXRX-nmc-7" - .format(self.restconf_baseurl)) + "node/ROADM-A1/yang-ext:mount/org-openroadm-device:org-openroadm-device/" + "interface/DEG1-TTP-TXRX-nmc-7" + .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "GET", url, headers=headers, auth=('admin', 'admin')) + "GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.not_found) res = response.json() self.assertIn( - {"error-type":"application", "error-tag":"data-missing", - "error-message":"Request could not be completed because the relevant data model content does not exist"}, - res['errors']['error']) + {"error-type": "application", "error-tag": "data-missing", + "error-message": "Request could not be completed because the relevant data model content does not exist"}, + res['errors']['error']) def test_20_service_path_delete_rdm_check(self): url = ("{}/config/network-topology:network-topology/topology/topology-netconf/" @@ -434,12 +433,13 @@ class TransportPCERendererTesting(unittest.TestCase): .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "GET", url, headers=headers, auth=('admin', 'admin')) + "GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.not_found) res = response.json() self.assertIn( - {"error-type":"application", "error-tag":"data-missing", "error-message":"Request could not be completed because the relevant data model content does not exist"}, - res['errors']['error']) + {"error-type": "application", "error-tag": "data-missing", + "error-message": "Request could not be completed because the relevant data model content does not exist"}, + res['errors']['error']) def test_21_service_path_delete_rdm_check(self): url = ("{}/config/network-topology:network-topology/topology/topology-netconf/" @@ -448,12 +448,13 @@ class TransportPCERendererTesting(unittest.TestCase): .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "GET", url, headers=headers, auth=('admin', 'admin')) + "GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.not_found) res = response.json() self.assertIn( - {"error-type":"application", "error-tag":"data-missing", "error-message":"Request could not be completed because the relevant data model content does not exist"}, - res['errors']['error']) + {"error-type": "application", "error-tag": "data-missing", + "error-message": "Request could not be completed because the relevant data model content does not exist"}, + res['errors']['error']) def test_22_service_path_delete_rdm_check(self): url = ("{}/config/network-topology:network-topology/topology/topology-netconf/" @@ -462,12 +463,13 @@ class TransportPCERendererTesting(unittest.TestCase): .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "GET", url, headers=headers, auth=('admin', 'admin')) + "GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.not_found) res = response.json() self.assertIn( - {"error-type":"application", "error-tag":"data-missing", "error-message":"Request could not be completed because the relevant data model content does not exist"}, - res['errors']['error']) + {"error-type": "application", "error-tag": "data-missing", + "error-message": "Request could not be completed because the relevant data model content does not exist"}, + res['errors']['error']) def test_23_service_path_delete_xpdr_check(self): url = ("{}/config/network-topology:network-topology/topology/topology-netconf/" @@ -476,12 +478,13 @@ class TransportPCERendererTesting(unittest.TestCase): .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "GET", url, headers=headers, auth=('admin', 'admin')) + "GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.not_found) res = response.json() self.assertIn( - {"error-type":"application", "error-tag":"data-missing", "error-message":"Request could not be completed because the relevant data model content does not exist"}, - res['errors']['error']) + {"error-type": "application", "error-tag": "data-missing", + "error-message": "Request could not be completed because the relevant data model content does not exist"}, + res['errors']['error']) def test_24_service_path_delete_xpdr_check(self): url = ("{}/config/network-topology:network-topology/topology/topology-netconf/" @@ -490,12 +493,13 @@ class TransportPCERendererTesting(unittest.TestCase): .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "GET", url, headers=headers, auth=('admin', 'admin')) + "GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.not_found) res = response.json() self.assertIn( - {"error-type":"application", "error-tag":"data-missing", "error-message":"Request could not be completed because the relevant data model content does not exist"}, - res['errors']['error']) + {"error-type": "application", "error-tag": "data-missing", + "error-message": "Request could not be completed because the relevant data model content does not exist"}, + res['errors']['error']) def test_25_service_path_delete_xpdr_check(self): url = ("{}/config/network-topology:network-topology/topology/topology-netconf/" @@ -504,12 +508,13 @@ class TransportPCERendererTesting(unittest.TestCase): .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "GET", url, headers=headers, auth=('admin', 'admin')) + "GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.not_found) res = response.json() self.assertIn( - {"error-type":"application", "error-tag":"data-missing", "error-message":"Request could not be completed because the relevant data model content does not exist"}, - res['errors']['error']) + {"error-type": "application", "error-tag": "data-missing", + "error-message": "Request could not be completed because the relevant data model content does not exist"}, + res['errors']['error']) def test_26_service_path_delete_xpdr_check(self): url = ("{}/config/network-topology:network-topology/topology/topology-netconf/" @@ -518,12 +523,13 @@ class TransportPCERendererTesting(unittest.TestCase): .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "GET", url, headers=headers, auth=('admin', 'admin')) + "GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.not_found) res = response.json() self.assertIn( - {"error-type":"application", "error-tag":"data-missing", "error-message":"Request could not be completed because the relevant data model content does not exist"}, - res['errors']['error']) + {"error-type": "application", "error-tag": "data-missing", + "error-message": "Request could not be completed because the relevant data model content does not exist"}, + res['errors']['error']) def test_27_service_path_delete_xpdr_check(self): url = ("{}/config/network-topology:network-topology/topology/topology-netconf/" @@ -555,19 +561,19 @@ class TransportPCERendererTesting(unittest.TestCase): .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "DELETE", url, headers=headers, - auth=('admin', 'admin')) + "DELETE", url, headers=headers, + auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) time.sleep(20) def test_30_xpdr_device_disconnected(self): url = ("{}/config/network-topology:" - "network-topology/topology/topology-netconf/node/XPDR-A1" + "network-topology/topology/topology-netconf/node/XPDR-A1" .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "DELETE", url, headers=headers, - auth=('admin', 'admin')) + "DELETE", url, headers=headers, + auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) time.sleep(20) diff --git a/tests/transportpce_tests/2.2.1/test_topoPortMapping.py b/tests/transportpce_tests/2.2.1/test_topoPortMapping.py index fcde5735d..58c0b9dc6 100644 --- a/tests/transportpce_tests/2.2.1/test_topoPortMapping.py +++ b/tests/transportpce_tests/2.2.1/test_topoPortMapping.py @@ -1,7 +1,7 @@ #!/usr/bin/env python ############################################################################## -#Copyright (c) 2017 Orange, Inc. and others. All rights reserved. +# Copyright (c) 2017 Orange, Inc. and others. All rights reserved. # # All rights reserved. This program and the accompanying materials # are made available under the terms of the Apache License, Version 2.0 @@ -21,6 +21,7 @@ import unittest import logging import test_utils + class TransportPCEtesting(unittest.TestCase): honeynode_process1 = None @@ -28,23 +29,23 @@ class TransportPCEtesting(unittest.TestCase): odl_process = None restconf_baseurl = "http://localhost:8181/restconf" -#START_IGNORE_XTESTING +# START_IGNORE_XTESTING @classmethod def setUpClass(cls): - print ("starting honeynode1...") + print("starting honeynode1...") cls.honeynode_process1 = test_utils.start_xpdra_honeynode() time.sleep(20) - print ("starting honeynode2...") + print("starting honeynode2...") cls.honeynode_process2 = test_utils.start_roadma_honeynode() time.sleep(20) - print ("all honeynodes started") + print("all honeynodes started") - print ("starting opendaylight...") + print("starting opendaylight...") cls.odl_process = test_utils.start_tpce() time.sleep(60) - print ("opendaylight started") + print("opendaylight started") @classmethod def tearDownClass(cls): @@ -67,33 +68,33 @@ class TransportPCEtesting(unittest.TestCase): def setUp(self): time.sleep(10) -#END_IGNORE_XTESTING +# END_IGNORE_XTESTING - #Connect the ROADMA + # Connect the ROADMA def test_01_connect_rdm(self): - #Config ROADMA + # Config ROADMA url = ("{}/config/network-topology:" - "network-topology/topology/topology-netconf/node/ROADM-A1" + "network-topology/topology/topology-netconf/node/ROADM-A1" .format(self.restconf_baseurl)) data = {"node": [{ - "node-id": "ROADM-A1", - "netconf-node-topology:username": "admin", - "netconf-node-topology:password": "admin", - "netconf-node-topology:host": "127.0.0.1", - "netconf-node-topology:port": "17841", - "netconf-node-topology:tcp-only": "false", - "netconf-node-topology:pass-through": {}}]} + "node-id": "ROADM-A1", + "netconf-node-topology:username": "admin", + "netconf-node-topology:password": "admin", + "netconf-node-topology:host": "127.0.0.1", + "netconf-node-topology:port": "17841", + "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(20) - #Verify the termination points of the ROADMA + # Verify the termination points of the ROADMA def test_02_compareOpenroadmTopologyPortMapping_rdm(self): urlTopo = ("{}/config/ietf-network:networks/network/openroadm-topology" - .format(self.restconf_baseurl)) + .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} responseTopo = requests.request( "GET", urlTopo, headers=headers, auth=('admin', 'admin')) @@ -109,7 +110,7 @@ class TransportPCEtesting(unittest.TestCase): urlMapList = "{}/config/transportpce-portmapping:network/nodes/" + nodeMapId urlMapListFull = urlMapList.format(self.restconf_baseurl) responseMapList = requests.request( - "GET", urlMapListFull, headers=headers, auth=('admin', 'admin')) + "GET", urlMapListFull, headers=headers, auth=('admin', 'admin')) resMapList = responseMapList.json() nbMappings = len(resMapList['nodes'][0]['mapping']) - nbMapCumul @@ -118,59 +119,59 @@ class TransportPCEtesting(unittest.TestCase): for j in range(0, nbTp): tpId = resTopo['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['tp-id'] if((not "CP" in tpId) and (not "CTP" in tpId)): - urlMap = "{}/config/transportpce-portmapping:network/nodes/" + nodeMapId + "/mapping/" + tpId - urlMapFull = urlMap.format(self.restconf_baseurl) - responseMap = requests.request( + urlMap = "{}/config/transportpce-portmapping:network/nodes/" + nodeMapId + "/mapping/" + tpId + urlMapFull = urlMap.format(self.restconf_baseurl) + responseMap = requests.request( "GET", urlMapFull, headers=headers, auth=('admin', 'admin')) - self.assertEqual(responseMap.status_code, requests.codes.ok) - if(responseMap.status_code == requests.codes.ok): + self.assertEqual(responseMap.status_code, requests.codes.ok) + if(responseMap.status_code == requests.codes.ok): nbMapCurrent += 1 nbMapCumul += nbMapCurrent nbMappings -= nbMapCurrent self.assertEqual(nbMappings, 0) - #Disconnect the ROADMA + # Disconnect the ROADMA def test_03_disconnect_rdm(self): url = ("{}/config/network-topology:" - "network-topology/topology/topology-netconf/node/ROADM-A1" + "network-topology/topology/topology-netconf/node/ROADM-A1" .format(self.restconf_baseurl)) data = {} headers = {'content-type': 'application/json'} response = requests.request( - "DELETE", url, data=json.dumps(data), headers=headers, - auth=('admin', 'admin')) + "DELETE", url, data=json.dumps(data), headers=headers, + auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) # #Connect the XPDRA def test_04_connect_xpdr(self): - #Config XPDRA - url = ("{}/config/network-topology:" - "network-topology/topology/topology-netconf/node/XPDR-A1" - .format(self.restconf_baseurl)) - data = {"node": [{ - "node-id": "XPDR-A1", - "netconf-node-topology:username": "admin", - "netconf-node-topology:password": "admin", - "netconf-node-topology:host": "127.0.0.1", - "netconf-node-topology:port": "17840", - "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')) - self.assertEqual(response.status_code, requests.codes.created) - time.sleep(20) + # Config XPDRA + url = ("{}/config/network-topology:" + "network-topology/topology/topology-netconf/node/XPDR-A1" + .format(self.restconf_baseurl)) + data = {"node": [{ + "node-id": "XPDR-A1", + "netconf-node-topology:username": "admin", + "netconf-node-topology:password": "admin", + "netconf-node-topology:host": "127.0.0.1", + "netconf-node-topology:port": "17840", + "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')) + self.assertEqual(response.status_code, requests.codes.created) + time.sleep(20) # #Verify the termination points related to XPDR def test_05_compareOpenroadmTopologyPortMapping_xpdr(self): self.test_02_compareOpenroadmTopologyPortMapping_rdm() - #Disconnect the XPDRA + # Disconnect the XPDRA def test_06_disconnect_device(self): url = ("{}/config/network-topology:" "network-topology/topology/topology-netconf/node/XPDR-A1" - .format(self.restconf_baseurl)) + .format(self.restconf_baseurl)) data = {} headers = {'content-type': 'application/json'} response = requests.request( @@ -178,7 +179,8 @@ class TransportPCEtesting(unittest.TestCase): auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) + if __name__ == "__main__": - #logging.basicConfig(filename='./transportpce_tests/log/response.log',filemode='w',level=logging.DEBUG) + # logging.basicConfig(filename='./transportpce_tests/log/response.log',filemode='w',level=logging.DEBUG) #logging.debug('I am there') unittest.main(verbosity=2) diff --git a/tests/transportpce_tests/2.2.1/test_topology.py b/tests/transportpce_tests/2.2.1/test_topology.py index 9d299df75..54762d248 100644 --- a/tests/transportpce_tests/2.2.1/test_topology.py +++ b/tests/transportpce_tests/2.2.1/test_topology.py @@ -1,7 +1,7 @@ #!/usr/bin/env python ############################################################################## -#Copyright (c) 2017 Orange, Inc. and others. All rights reserved. +# Copyright (c) 2017 Orange, Inc. and others. All rights reserved. # # All rights reserved. This program and the accompanying materials # are made available under the terms of the Apache License, Version 2.0 @@ -21,6 +21,7 @@ import unittest import logging import test_utils + class TransportPCEtesting(unittest.TestCase): honeynode_process1 = None @@ -30,31 +31,31 @@ class TransportPCEtesting(unittest.TestCase): odl_process = None restconf_baseurl = "http://localhost:8181/restconf" -#START_IGNORE_XTESTING +# START_IGNORE_XTESTING @classmethod def setUpClass(cls): - print ("starting honeynode1...") + print("starting honeynode1...") cls.honeynode_process1 = test_utils.start_xpdra_honeynode() time.sleep(20) - print ("starting honeynode2...") + print("starting honeynode2...") cls.honeynode_process2 = test_utils.start_roadma_honeynode() time.sleep(20) - print ("starting honeynode3...") + print("starting honeynode3...") cls.honeynode_process3 = test_utils.start_roadmb_honeynode() time.sleep(20) - print ("starting honeynode4...") + print("starting honeynode4...") cls.honeynode_process4 = test_utils.start_roadmc_honeynode() time.sleep(20) - print ("all honeynodes started") + print("all honeynodes started") - print ("starting opendaylight...") + print("starting opendaylight...") cls.odl_process = test_utils.start_tpce() time.sleep(60) - print ("opendaylight started") + print("opendaylight started") @classmethod def tearDownClass(cls): @@ -84,120 +85,119 @@ class TransportPCEtesting(unittest.TestCase): cls.honeynode_process4.send_signal(signal.SIGINT) cls.honeynode_process4.wait() - def setUp(self): time.sleep(5) -#END_IGNORE_XTESTING +# END_IGNORE_XTESTING def test_01_connect_ROADM_A1(self): - #Config ROADMA + # Config ROADMA url = ("{}/config/network-topology:" - "network-topology/topology/topology-netconf/node/ROADM-A1" + "network-topology/topology/topology-netconf/node/ROADM-A1" .format(self.restconf_baseurl)) data = {"node": [{ - "node-id": "ROADM-A1", - "netconf-node-topology:username": "admin", - "netconf-node-topology:password": "admin", - "netconf-node-topology:host": "127.0.0.1", - "netconf-node-topology:port": "17841", - "netconf-node-topology:tcp-only": "false", - "netconf-node-topology:pass-through": {}}]} + "node-id": "ROADM-A1", + "netconf-node-topology:username": "admin", + "netconf-node-topology:password": "admin", + "netconf-node-topology:host": "127.0.0.1", + "netconf-node-topology:port": "17841", + "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(20) 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')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() logging.info(res) - self.assertEqual(res['network'][0]['node'][0]['node-id'],'NodeA') - self.assertEqual(res['network'][0]['node'][0]['org-openroadm-clli-network:clli'],'NodeA') + self.assertEqual(res['network'][0]['node'][0]['node-id'], 'NodeA') + self.assertEqual(res['network'][0]['node'][0]['org-openroadm-clli-network:clli'], 'NodeA') 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')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() - self.assertEqual(res['network'][0]['node'][0]['node-id'],'ROADM-A1') - 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'],'NodeA') - self.assertEqual(res['network'][0]['node'][0]['org-openroadm-common-network:node-type'],'ROADM') - self.assertEqual(res['network'][0]['node'][0]['org-openroadm-network:model'],'model2') + self.assertEqual(res['network'][0]['node'][0]['node-id'], 'ROADM-A1') + 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'], 'NodeA') + self.assertEqual(res['network'][0]['node'][0]['org-openroadm-common-network:node-type'], 'ROADM') + self.assertEqual(res['network'][0]['node'][0]['org-openroadm-network:model'], 'model2') 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')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() - #Tests related to links - nbLink=len(res['network'][0]['ietf-network-topology:link']) - self.assertEqual(nbLink,10) - expressLink=['ROADM-A1-DEG2-DEG2-CTP-TXRXtoROADM-A1-DEG1-DEG1-CTP-TXRX', - 'ROADM-A1-DEG1-DEG1-CTP-TXRXtoROADM-A1-DEG2-DEG2-CTP-TXRX'] - addLink=['ROADM-A1-SRG1-SRG1-CP-TXRXtoROADM-A1-DEG2-DEG2-CTP-TXRX', - 'ROADM-A1-SRG1-SRG1-CP-TXRXtoROADM-A1-DEG1-DEG1-CTP-TXRX', - 'ROADM-A1-SRG3-SRG3-CP-TXRXtoROADM-A1-DEG2-DEG2-CTP-TXRX', - 'ROADM-A1-SRG3-SRG3-CP-TXRXtoROADM-A1-DEG1-DEG1-CTP-TXRX'] - dropLink=['ROADM-A1-DEG1-DEG1-CTP-TXRXtoROADM-A1-SRG1-SRG1-CP-TXRX', - 'ROADM-A1-DEG2-DEG2-CTP-TXRXtoROADM-A1-SRG1-SRG1-CP-TXRX', - 'ROADM-A1-DEG1-DEG1-CTP-TXRXtoROADM-A1-SRG3-SRG3-CP-TXRX', - 'ROADM-A1-DEG2-DEG2-CTP-TXRXtoROADM-A1-SRG3-SRG3-CP-TXRX'] - for i in range(0,nbLink): + # Tests related to links + nbLink = len(res['network'][0]['ietf-network-topology:link']) + self.assertEqual(nbLink, 10) + expressLink = ['ROADM-A1-DEG2-DEG2-CTP-TXRXtoROADM-A1-DEG1-DEG1-CTP-TXRX', + 'ROADM-A1-DEG1-DEG1-CTP-TXRXtoROADM-A1-DEG2-DEG2-CTP-TXRX'] + addLink = ['ROADM-A1-SRG1-SRG1-CP-TXRXtoROADM-A1-DEG2-DEG2-CTP-TXRX', + 'ROADM-A1-SRG1-SRG1-CP-TXRXtoROADM-A1-DEG1-DEG1-CTP-TXRX', + 'ROADM-A1-SRG3-SRG3-CP-TXRXtoROADM-A1-DEG2-DEG2-CTP-TXRX', + 'ROADM-A1-SRG3-SRG3-CP-TXRXtoROADM-A1-DEG1-DEG1-CTP-TXRX'] + dropLink = ['ROADM-A1-DEG1-DEG1-CTP-TXRXtoROADM-A1-SRG1-SRG1-CP-TXRX', + 'ROADM-A1-DEG2-DEG2-CTP-TXRXtoROADM-A1-SRG1-SRG1-CP-TXRX', + 'ROADM-A1-DEG1-DEG1-CTP-TXRXtoROADM-A1-SRG3-SRG3-CP-TXRX', + 'ROADM-A1-DEG2-DEG2-CTP-TXRXtoROADM-A1-SRG3-SRG3-CP-TXRX'] + for i in range(0, nbLink): linkId = res['network'][0]['ietf-network-topology:link'][i]['link-id'] - if (res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type']=='EXPRESS-LINK'): - find= linkId in expressLink + if (res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type'] == 'EXPRESS-LINK'): + find = linkId in expressLink self.assertEqual(find, True) expressLink.remove(linkId) - elif (res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type']=='ADD-LINK'): - find= linkId in addLink + elif (res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type'] == 'ADD-LINK'): + find = linkId in addLink self.assertEqual(find, True) addLink.remove(linkId) - elif (res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type']=='DROP-LINK'): - find= linkId in dropLink + elif (res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type'] == 'DROP-LINK'): + find = linkId in dropLink self.assertEqual(find, True) dropLink.remove(linkId) else: self.assertFalse(True) - self.assertEqual(len(expressLink),0) - self.assertEqual(len(addLink),0) - self.assertEqual(len(dropLink),0) + self.assertEqual(len(expressLink), 0) + self.assertEqual(len(addLink), 0) + self.assertEqual(len(dropLink), 0) 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')) res = response.json() - #Tests related to nodes + # Tests related to nodes self.assertEqual(response.status_code, requests.codes.ok) - nbNode=len(res['network'][0]['node']) - self.assertEqual(nbNode,4) - listNode=['ROADM-A1-SRG1', 'ROADM-A1-SRG3','ROADM-A1-DEG1','ROADM-A1-DEG2'] - for i in range(0,nbNode): + nbNode = len(res['network'][0]['node']) + self.assertEqual(nbNode, 4) + listNode = ['ROADM-A1-SRG1', 'ROADM-A1-SRG3', 'ROADM-A1-DEG1', 'ROADM-A1-DEG2'] + for i in range(0, nbNode): self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADM-A1'}, res['network'][0]['node'][i]['supporting-node']) - nodeType=res['network'][0]['node'][i]['org-openroadm-common-network:node-type'] - nodeId=res['network'][0]['node'][i]['node-id'] - if(nodeId=='ROADM-A1-SRG1'): - #Test related to SRG1 - self.assertEqual(nodeType,'SRG') - self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']),5) + nodeType = res['network'][0]['node'][i]['org-openroadm-common-network:node-type'] + nodeId = res['network'][0]['node'][i]['node-id'] + if(nodeId == 'ROADM-A1-SRG1'): + # Test related to SRG1 + self.assertEqual(nodeType, 'SRG') + self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']), 5) self.assertIn({'tp-id': 'SRG1-CP-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-CP'}, res['network'][0]['node'][i]['ietf-network-topology:termination-point']) self.assertIn({'tp-id': 'SRG1-PP1-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-PP'}, @@ -207,10 +207,10 @@ class TransportPCEtesting(unittest.TestCase): self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADM-A1'}, res['network'][0]['node'][i]['supporting-node']) listNode.remove(nodeId) - elif(nodeId=='ROADM-A1-SRG3'): - #Test related to SRG1 - self.assertEqual(nodeType,'SRG') - self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']),5) + elif(nodeId == 'ROADM-A1-SRG3'): + # Test related to SRG1 + self.assertEqual(nodeType, 'SRG') + self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']), 5) self.assertIn({'tp-id': 'SRG3-CP-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-CP'}, res['network'][0]['node'][i]['ietf-network-topology:termination-point']) self.assertIn({'tp-id': 'SRG3-PP1-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-PP'}, @@ -220,9 +220,9 @@ class TransportPCEtesting(unittest.TestCase): self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADM-A1'}, res['network'][0]['node'][i]['supporting-node']) listNode.remove(nodeId) - elif(nodeId=='ROADM-A1-DEG1'): - #Test related to DEG1 - self.assertEqual(nodeType,'DEGREE') + elif(nodeId == 'ROADM-A1-DEG1'): + # Test related to DEG1 + self.assertEqual(nodeType, 'DEGREE') self.assertIn({'tp-id': 'DEG1-TTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-TTP'}, res['network'][0]['node'][i]['ietf-network-topology:termination-point']) self.assertIn({'tp-id': 'DEG1-CTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-CTP'}, @@ -232,9 +232,9 @@ class TransportPCEtesting(unittest.TestCase): self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADM-A1'}, res['network'][0]['node'][i]['supporting-node']) listNode.remove(nodeId) - elif(nodeId=='ROADM-A1-DEG2'): - #Test related to DEG2 - self.assertEqual(nodeType,'DEGREE') + elif(nodeId == 'ROADM-A1-DEG2'): + # Test related to DEG2 + self.assertEqual(nodeType, 'DEGREE') self.assertIn({'tp-id': 'DEG2-TTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-TTP'}, res['network'][0]['node'][i]['ietf-network-topology:termination-point']) self.assertIn({'tp-id': 'DEG2-CTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-CTP'}, @@ -246,128 +246,128 @@ class TransportPCEtesting(unittest.TestCase): listNode.remove(nodeId) else: self.assertFalse(True) - self.assertEqual(len(listNode),0) + self.assertEqual(len(listNode), 0) def test_06_connect_XPDRA(self): - url = ("{}/config/network-topology:" - "network-topology/topology/topology-netconf/node/XPDR-A1" - .format(self.restconf_baseurl)) - data = {"node": [{ - "node-id": "XPDR-A1", - "netconf-node-topology:username": "admin", - "netconf-node-topology:password": "admin", - "netconf-node-topology:host": "127.0.0.1", - "netconf-node-topology:port": "17840", - "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')) - self.assertEqual(response.status_code, requests.codes.created) - time.sleep(30) + url = ("{}/config/network-topology:" + "network-topology/topology/topology-netconf/node/XPDR-A1" + .format(self.restconf_baseurl)) + data = {"node": [{ + "node-id": "XPDR-A1", + "netconf-node-topology:username": "admin", + "netconf-node-topology:password": "admin", + "netconf-node-topology:host": "127.0.0.1", + "netconf-node-topology:port": "17840", + "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')) + self.assertEqual(response.status_code, requests.codes.created) + time.sleep(30) def test_07_getClliNetwork(self): - url = ("{}/config/ietf-network:networks/network/clli-network" + url = ("{}/config/ietf-network:networks/network/clli-network" .format(self.restconf_baseurl)) - headers = {'content-type': 'application/json'} - response = requests.request( - "GET", url, headers=headers, auth=('admin', 'admin')) - self.assertEqual(response.status_code, requests.codes.ok) - res = response.json() - self.assertEqual(res['network'][0]['node'][0]['node-id'],'NodeA') - self.assertEqual(res['network'][0]['node'][0]['org-openroadm-clli-network:clli'],'NodeA') + headers = {'content-type': 'application/json'} + response = requests.request( + "GET", url, headers=headers, auth=('admin', 'admin')) + self.assertEqual(response.status_code, requests.codes.ok) + res = response.json() + self.assertEqual(res['network'][0]['node'][0]['node-id'], 'NodeA') + self.assertEqual(res['network'][0]['node'][0]['org-openroadm-clli-network:clli'], 'NodeA') def test_08_getOpenRoadmNetwork(self): - url = ("{}/config/ietf-network:networks/network/openroadm-network" + url = ("{}/config/ietf-network:networks/network/openroadm-network" .format(self.restconf_baseurl)) - headers = {'content-type': 'application/json'} - response = requests.request( - "GET", url, headers=headers, auth=('admin', 'admin')) - self.assertEqual(response.status_code, requests.codes.ok) - res = response.json() - nbNode=len(res['network'][0]['node']) - self.assertEqual(nbNode,2) - for i in range(0,nbNode): - self.assertEqual(res['network'][0]['node'][i]['supporting-node'][0]['network-ref'],'clli-network') - self.assertEqual(res['network'][0]['node'][i]['supporting-node'][0]['node-ref'],'NodeA') - nodeId=res['network'][0]['node'][i]['node-id'] - if(nodeId=='XPDR-A1'): - self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'],'XPONDER') - self.assertEqual(res['network'][0]['node'][i]['org-openroadm-network:model'],'model2') - elif(nodeId=='ROADM-A1'): - self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'],'ROADM') - self.assertEqual(res['network'][0]['node'][i]['org-openroadm-network:model'],'model2') - else: + headers = {'content-type': 'application/json'} + response = requests.request( + "GET", url, headers=headers, auth=('admin', 'admin')) + self.assertEqual(response.status_code, requests.codes.ok) + res = response.json() + nbNode = len(res['network'][0]['node']) + self.assertEqual(nbNode, 2) + for i in range(0, nbNode): + self.assertEqual(res['network'][0]['node'][i]['supporting-node'][0]['network-ref'], 'clli-network') + self.assertEqual(res['network'][0]['node'][i]['supporting-node'][0]['node-ref'], 'NodeA') + nodeId = res['network'][0]['node'][i]['node-id'] + if(nodeId == 'XPDR-A1'): + self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'], 'XPONDER') + self.assertEqual(res['network'][0]['node'][i]['org-openroadm-network:model'], 'model2') + elif(nodeId == 'ROADM-A1'): + self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'], 'ROADM') + self.assertEqual(res['network'][0]['node'][i]['org-openroadm-network:model'], 'model2') + else: self.assertFalse(True) def test_09_getNodes_OpenRoadmTopology(self): - url = ("{}/config/ietf-network:networks/network/openroadm-topology" + url = ("{}/config/ietf-network:networks/network/openroadm-topology" .format(self.restconf_baseurl)) - headers = {'content-type': 'application/json'} - response = requests.request( - "GET", url, headers=headers, auth=('admin', 'admin')) - res = response.json() - #Tests related to nodes - self.assertEqual(response.status_code, requests.codes.ok) - nbNode=len(res['network'][0]['node']) - self.assertEqual(nbNode,5) - listNode=['XPDR-A1-XPDR1','ROADM-A1-SRG1','ROADM-A1-SRG3','ROADM-A1-DEG1','ROADM-A1-DEG2'] - for i in range(0,nbNode): - nodeType=res['network'][0]['node'][i]['org-openroadm-common-network:node-type'] - nodeId=res['network'][0]['node'][i]['node-id'] - #Tests related to XPDRA nodes - if(nodeId=='XPDR-A1-XPDR1'): - self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'XPDR-A1'}, - res['network'][0]['node'][i]['supporting-node']) - self.assertIn({'network-ref': 'clli-network', 'node-ref': 'NodeA'}, - 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-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 - if (tpId == 'XPDR1-NETWORK2'): - self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j] - ['transportpce-topology:associated-connection-map-port'],'XPDR1-CLIENT2') - if (tpId == 'XPDR1-CLIENT2'): - self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j] - ['transportpce-topology:associated-connection-map-port'],'XPDR1-NETWORK2') + headers = {'content-type': 'application/json'} + response = requests.request( + "GET", url, headers=headers, auth=('admin', 'admin')) + res = response.json() + # Tests related to nodes + self.assertEqual(response.status_code, requests.codes.ok) + nbNode = len(res['network'][0]['node']) + self.assertEqual(nbNode, 5) + listNode = ['XPDR-A1-XPDR1', 'ROADM-A1-SRG1', 'ROADM-A1-SRG3', 'ROADM-A1-DEG1', 'ROADM-A1-DEG2'] + for i in range(0, nbNode): + nodeType = res['network'][0]['node'][i]['org-openroadm-common-network:node-type'] + nodeId = res['network'][0]['node'][i]['node-id'] + # Tests related to XPDRA nodes + if(nodeId == 'XPDR-A1-XPDR1'): + self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'XPDR-A1'}, + res['network'][0]['node'][i]['supporting-node']) + self.assertIn({'network-ref': 'clli-network', 'node-ref': 'NodeA'}, + 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-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 + if (tpId == 'XPDR1-NETWORK2'): + self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j] + ['transportpce-topology:associated-connection-map-port'], 'XPDR1-CLIENT2') + if (tpId == 'XPDR1-CLIENT2'): + self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j] + ['transportpce-topology:associated-connection-map-port'], 'XPDR1-NETWORK2') - self.assertTrue(client == 2) - self.assertTrue(network == 2) - listNode.remove(nodeId) - elif(nodeId=='ROADM-A1-SRG1'): - #Test related to SRG1 - self.assertEqual(nodeType,'SRG') - self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']),5) - self.assertIn({'tp-id': 'SRG1-CP-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-CP'}, - res['network'][0]['node'][i]['ietf-network-topology:termination-point']) - self.assertIn({'tp-id': 'SRG1-PP1-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-PP'}, - res['network'][0]['node'][i]['ietf-network-topology:termination-point']) - self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADM-A1'}, - res['network'][0]['node'][i]['supporting-node']) - listNode.remove(nodeId) - elif(nodeId=='ROADM-A1-SRG3'): - #Test related to SRG1 - self.assertEqual(nodeType,'SRG') - self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']),5) - self.assertIn({'tp-id': 'SRG3-CP-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-CP'}, - res['network'][0]['node'][i]['ietf-network-topology:termination-point']) - self.assertIn({'tp-id': 'SRG3-PP1-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-PP'}, - res['network'][0]['node'][i]['ietf-network-topology:termination-point']) - self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADM-A1'}, - res['network'][0]['node'][i]['supporting-node']) - listNode.remove(nodeId) - elif(nodeId=='ROADM-A1-DEG1'): - #Test related to DEG1 - self.assertEqual(nodeType,'DEGREE') + self.assertTrue(client == 2) + self.assertTrue(network == 2) + listNode.remove(nodeId) + elif(nodeId == 'ROADM-A1-SRG1'): + # Test related to SRG1 + self.assertEqual(nodeType, 'SRG') + self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']), 5) + self.assertIn({'tp-id': 'SRG1-CP-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-CP'}, + res['network'][0]['node'][i]['ietf-network-topology:termination-point']) + self.assertIn({'tp-id': 'SRG1-PP1-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-PP'}, + res['network'][0]['node'][i]['ietf-network-topology:termination-point']) + self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADM-A1'}, + res['network'][0]['node'][i]['supporting-node']) + listNode.remove(nodeId) + elif(nodeId == 'ROADM-A1-SRG3'): + # Test related to SRG1 + self.assertEqual(nodeType, 'SRG') + self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']), 5) + self.assertIn({'tp-id': 'SRG3-CP-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-CP'}, + res['network'][0]['node'][i]['ietf-network-topology:termination-point']) + self.assertIn({'tp-id': 'SRG3-PP1-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-PP'}, + res['network'][0]['node'][i]['ietf-network-topology:termination-point']) + self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADM-A1'}, + res['network'][0]['node'][i]['supporting-node']) + listNode.remove(nodeId) + elif(nodeId == 'ROADM-A1-DEG1'): + # Test related to DEG1 + self.assertEqual(nodeType, 'DEGREE') self.assertIn({'tp-id': 'DEG1-TTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-TTP'}, res['network'][0]['node'][i]['ietf-network-topology:termination-point']) self.assertIn({'tp-id': 'DEG1-CTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-CTP'}, @@ -375,9 +375,9 @@ class TransportPCEtesting(unittest.TestCase): self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADM-A1'}, res['network'][0]['node'][i]['supporting-node']) listNode.remove(nodeId) - elif(nodeId=='ROADM-A1-DEG2'): - #Test related to DEG2 - self.assertEqual(nodeType,'DEGREE') + elif(nodeId == 'ROADM-A1-DEG2'): + # Test related to DEG2 + self.assertEqual(nodeType, 'DEGREE') self.assertIn({'tp-id': 'DEG2-TTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-TTP'}, res['network'][0]['node'][i]['ietf-network-topology:termination-point']) self.assertIn({'tp-id': 'DEG2-CTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-CTP'}, @@ -385,119 +385,120 @@ class TransportPCEtesting(unittest.TestCase): self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADM-A1'}, res['network'][0]['node'][i]['supporting-node']) listNode.remove(nodeId) - else: + else: self.assertFalse(True) - self.assertEqual(len(listNode),0) + self.assertEqual(len(listNode), 0) - #Connect the tail XPDRA to ROADMA and vice versa + # Connect the tail XPDRA to ROADMA and vice versa def test_10_connect_tail_xpdr_rdm(self): - #Connect the tail: XPDRA to ROADMA + # Connect the tail: XPDRA to ROADMA url = ("{}/operations/transportpce-networkutils:init-xpdr-rdm-links" - .format(self.restconf_baseurl)) + .format(self.restconf_baseurl)) data = {"networkutils:input": { - "networkutils:links-input": { - "networkutils:xpdr-node": "XPDR-A1", - "networkutils:xpdr-num": "1", - "networkutils:network-num": "1", - "networkutils:rdm-node": "ROADM-A1", - "networkutils:srg-num": "1", - "networkutils:termination-point-num": "SRG1-PP1-TXRX" + "networkutils:links-input": { + "networkutils:xpdr-node": "XPDR-A1", + "networkutils:xpdr-num": "1", + "networkutils:network-num": "1", + "networkutils:rdm-node": "ROADM-A1", + "networkutils:srg-num": "1", + "networkutils:termination-point-num": "SRG1-PP1-TXRX" } - } + } } headers = {'content-type': 'application/json'} response = requests.request( - "POST", url, data=json.dumps(data), headers=headers, - auth=('admin', 'admin')) + "POST", url, data=json.dumps(data), headers=headers, + auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) def test_11_connect_tail_rdm_xpdr(self): - #Connect the tail: ROADMA to XPDRA - url = ("{}/operations/transportpce-networkutils:init-rdm-xpdr-links" - .format(self.restconf_baseurl)) - data = {"networkutils:input": { - "networkutils:links-input": { + # Connect the tail: ROADMA to XPDRA + url = ("{}/operations/transportpce-networkutils:init-rdm-xpdr-links" + .format(self.restconf_baseurl)) + data = {"networkutils:input": { + "networkutils:links-input": { "networkutils:xpdr-node": "XPDR-A1", "networkutils:xpdr-num": "1", "networkutils:network-num": "1", "networkutils:rdm-node": "ROADM-A1", "networkutils:srg-num": "1", "networkutils:termination-point-num": "SRG1-PP1-TXRX" - } - } - } - headers = {'content-type': 'application/json'} - response = requests.request( - "POST", url, data=json.dumps(data), headers=headers, - auth=('admin', 'admin')) - self.assertEqual(response.status_code, requests.codes.ok) + } + } + } + headers = {'content-type': 'application/json'} + response = requests.request( + "POST", url, data=json.dumps(data), headers=headers, + auth=('admin', 'admin')) + self.assertEqual(response.status_code, requests.codes.ok) def test_12_getLinks_OpenRoadmTopology(self): url = ("{}/config/ietf-network:networks/network/openroadm-topology" .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "GET", url, headers=headers, auth=('admin', 'admin')) + "GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() - #Tests related to links - nbLink=len(res['network'][0]['ietf-network-topology:link']) - self.assertEqual(nbLink,12) - expressLink=['ROADM-A1-DEG2-DEG2-CTP-TXRXtoROADM-A1-DEG1-DEG1-CTP-TXRX','ROADM-A1-DEG1-DEG1-CTP-TXRXtoROADM-A1-DEG2-DEG2-CTP-TXRX'] - addLink=['ROADM-A1-SRG1-SRG1-CP-TXRXtoROADM-A1-DEG2-DEG2-CTP-TXRX','ROADM-A1-SRG1-SRG1-CP-TXRXtoROADM-A1-DEG1-DEG1-CTP-TXRX', - 'ROADM-A1-SRG3-SRG3-CP-TXRXtoROADM-A1-DEG2-DEG2-CTP-TXRX','ROADM-A1-SRG3-SRG3-CP-TXRXtoROADM-A1-DEG1-DEG1-CTP-TXRX'] - dropLink=['ROADM-A1-DEG1-DEG1-CTP-TXRXtoROADM-A1-SRG1-SRG1-CP-TXRX','ROADM-A1-DEG2-DEG2-CTP-TXRXtoROADM-A1-SRG1-SRG1-CP-TXRX', - 'ROADM-A1-DEG1-DEG1-CTP-TXRXtoROADM-A1-SRG3-SRG3-CP-TXRX','ROADM-A1-DEG2-DEG2-CTP-TXRXtoROADM-A1-SRG3-SRG3-CP-TXRX'] - XPDR_IN=['ROADM-A1-SRG1-SRG1-PP1-TXRXtoXPDR-A1-XPDR1-XPDR1-NETWORK1'] - XPDR_OUT=['XPDR-A1-XPDR1-XPDR1-NETWORK1toROADM-A1-SRG1-SRG1-PP1-TXRX'] - for i in range(0,nbLink): - nodeType=res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type'] - linkId=res['network'][0]['ietf-network-topology:link'][i]['link-id'] - if(nodeType=='EXPRESS-LINK'): - find= linkId in expressLink + # Tests related to links + nbLink = len(res['network'][0]['ietf-network-topology:link']) + self.assertEqual(nbLink, 12) + expressLink = ['ROADM-A1-DEG2-DEG2-CTP-TXRXtoROADM-A1-DEG1-DEG1-CTP-TXRX', + 'ROADM-A1-DEG1-DEG1-CTP-TXRXtoROADM-A1-DEG2-DEG2-CTP-TXRX'] + addLink = ['ROADM-A1-SRG1-SRG1-CP-TXRXtoROADM-A1-DEG2-DEG2-CTP-TXRX', 'ROADM-A1-SRG1-SRG1-CP-TXRXtoROADM-A1-DEG1-DEG1-CTP-TXRX', + 'ROADM-A1-SRG3-SRG3-CP-TXRXtoROADM-A1-DEG2-DEG2-CTP-TXRX', 'ROADM-A1-SRG3-SRG3-CP-TXRXtoROADM-A1-DEG1-DEG1-CTP-TXRX'] + dropLink = ['ROADM-A1-DEG1-DEG1-CTP-TXRXtoROADM-A1-SRG1-SRG1-CP-TXRX', 'ROADM-A1-DEG2-DEG2-CTP-TXRXtoROADM-A1-SRG1-SRG1-CP-TXRX', + 'ROADM-A1-DEG1-DEG1-CTP-TXRXtoROADM-A1-SRG3-SRG3-CP-TXRX', 'ROADM-A1-DEG2-DEG2-CTP-TXRXtoROADM-A1-SRG3-SRG3-CP-TXRX'] + XPDR_IN = ['ROADM-A1-SRG1-SRG1-PP1-TXRXtoXPDR-A1-XPDR1-XPDR1-NETWORK1'] + XPDR_OUT = ['XPDR-A1-XPDR1-XPDR1-NETWORK1toROADM-A1-SRG1-SRG1-PP1-TXRX'] + for i in range(0, nbLink): + nodeType = res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type'] + linkId = res['network'][0]['ietf-network-topology:link'][i]['link-id'] + if(nodeType == 'EXPRESS-LINK'): + find = linkId in expressLink self.assertEqual(find, True) expressLink.remove(linkId) - elif(nodeType=='ADD-LINK'): - find= linkId in addLink + elif(nodeType == 'ADD-LINK'): + find = linkId in addLink self.assertEqual(find, True) addLink.remove(linkId) - elif(nodeType=='DROP-LINK'): - find= linkId in dropLink + elif(nodeType == 'DROP-LINK'): + find = linkId in dropLink self.assertEqual(find, True) dropLink.remove(linkId) - elif(nodeType=='XPONDER-INPUT'): - find= linkId in XPDR_IN + elif(nodeType == 'XPONDER-INPUT'): + find = linkId in XPDR_IN self.assertEqual(find, True) XPDR_IN.remove(linkId) - elif(nodeType=='XPONDER-OUTPUT'): - find= linkId in XPDR_OUT + elif(nodeType == 'XPONDER-OUTPUT'): + find = linkId in XPDR_OUT self.assertEqual(find, True) XPDR_OUT.remove(linkId) else: self.assertFalse(True) - self.assertEqual(len(expressLink),0) - self.assertEqual(len(addLink),0) - self.assertEqual(len(dropLink),0) - self.assertEqual(len(XPDR_IN),0) - self.assertEqual(len(XPDR_OUT),0) + self.assertEqual(len(expressLink), 0) + self.assertEqual(len(addLink), 0) + self.assertEqual(len(dropLink), 0) + self.assertEqual(len(XPDR_IN), 0) + self.assertEqual(len(XPDR_OUT), 0) def test_13_connect_ROADMC(self): - #Config ROADMC + # Config ROADMC url = ("{}/config/network-topology:" - "network-topology/topology/topology-netconf/node/ROADM-C1" - .format(self.restconf_baseurl)) + "network-topology/topology/topology-netconf/node/ROADM-C1" + .format(self.restconf_baseurl)) data = {"node": [{ - "node-id": "ROADM-C1", - "netconf-node-topology:username": "admin", - "netconf-node-topology:password": "admin", - "netconf-node-topology:host": "127.0.0.1", - "netconf-node-topology:port": "17843", - "netconf-node-topology:tcp-only": "false", - "netconf-node-topology:pass-through": {}}]} + "node-id": "ROADM-C1", + "netconf-node-topology:username": "admin", + "netconf-node-topology:password": "admin", + "netconf-node-topology:host": "127.0.0.1", + "netconf-node-topology:port": "17843", + "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(20) @@ -544,272 +545,273 @@ class TransportPCEtesting(unittest.TestCase): def test_16_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')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() - nbNode=len(res['network'][0]['node']) - listNode=['NodeA','NodeC'] - for i in range(0,nbNode): + nbNode = len(res['network'][0]['node']) + listNode = ['NodeA', 'NodeC'] + for i in range(0, nbNode): nodeId = res['network'][0]['node'][i]['node-id'] - find= nodeId in listNode + find = nodeId in listNode self.assertEqual(find, True) - if(nodeId=='NodeA'): - self.assertEqual(res['network'][0]['node'][i]['org-openroadm-clli-network:clli'],'NodeA') + if(nodeId == 'NodeA'): + self.assertEqual(res['network'][0]['node'][i]['org-openroadm-clli-network:clli'], 'NodeA') else: - self.assertEqual(res['network'][0]['node'][i]['org-openroadm-clli-network:clli'],'NodeC') + self.assertEqual(res['network'][0]['node'][i]['org-openroadm-clli-network:clli'], 'NodeC') listNode.remove(nodeId) - self.assertEqual(len(listNode),0) + self.assertEqual(len(listNode), 0) def test_17_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')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() - nbNode=len(res['network'][0]['node']) - self.assertEqual(nbNode,3) - listNode=['XPDR-A1','ROADM-A1','ROADM-C1'] - for i in range(0,nbNode): - self.assertEqual(res['network'][0]['node'][i]['supporting-node'][0]['network-ref'],'clli-network') - nodeId=res['network'][0]['node'][i]['node-id'] - if(nodeId=='XPDR-A1'): - self.assertEqual(res['network'][0]['node'][i]['supporting-node'][0]['node-ref'],'NodeA') - self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'],'XPONDER') - self.assertEqual(res['network'][0]['node'][i]['org-openroadm-network:model'],'model2') + nbNode = len(res['network'][0]['node']) + self.assertEqual(nbNode, 3) + listNode = ['XPDR-A1', 'ROADM-A1', 'ROADM-C1'] + for i in range(0, nbNode): + self.assertEqual(res['network'][0]['node'][i]['supporting-node'][0]['network-ref'], 'clli-network') + nodeId = res['network'][0]['node'][i]['node-id'] + if(nodeId == 'XPDR-A1'): + self.assertEqual(res['network'][0]['node'][i]['supporting-node'][0]['node-ref'], 'NodeA') + self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'], 'XPONDER') + self.assertEqual(res['network'][0]['node'][i]['org-openroadm-network:model'], 'model2') listNode.remove(nodeId) - elif(nodeId=='ROADM-A1'): - self.assertEqual(res['network'][0]['node'][i]['supporting-node'][0]['node-ref'],'NodeA') - self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'],'ROADM') - self.assertEqual(res['network'][0]['node'][i]['org-openroadm-network:model'],'model2') + elif(nodeId == 'ROADM-A1'): + self.assertEqual(res['network'][0]['node'][i]['supporting-node'][0]['node-ref'], 'NodeA') + self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'], 'ROADM') + self.assertEqual(res['network'][0]['node'][i]['org-openroadm-network:model'], 'model2') listNode.remove(nodeId) - elif(nodeId=='ROADM-C1'): - self.assertEqual(res['network'][0]['node'][i]['supporting-node'][0]['node-ref'],'NodeC') - self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'],'ROADM') - self.assertEqual(res['network'][0]['node'][i]['org-openroadm-network:model'],'model2') + elif(nodeId == 'ROADM-C1'): + self.assertEqual(res['network'][0]['node'][i]['supporting-node'][0]['node-ref'], 'NodeC') + self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'], 'ROADM') + self.assertEqual(res['network'][0]['node'][i]['org-openroadm-network:model'], 'model2') listNode.remove(nodeId) else: self.assertFalse(True) - self.assertEqual(len(listNode),0) + self.assertEqual(len(listNode), 0) def test_18_getROADMLinkOpenRoadmTopology(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')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() - #Tests related to links - nbLink=len(res['network'][0]['ietf-network-topology:link']) - self.assertEqual(nbLink,20) - expressLink=['ROADM-A1-DEG2-DEG2-CTP-TXRXtoROADM-A1-DEG1-DEG1-CTP-TXRX','ROADM-A1-DEG1-DEG1-CTP-TXRXtoROADM-A1-DEG2-DEG2-CTP-TXRX', - 'ROADM-C1-DEG2-DEG2-CTP-TXRXtoROADM-C1-DEG1-DEG1-CTP-TXRX','ROADM-C1-DEG1-DEG1-CTP-TXRXtoROADM-C1-DEG2-DEG2-CTP-TXRX'] - addLink=['ROADM-A1-SRG1-SRG1-CP-TXRXtoROADM-A1-DEG2-DEG2-CTP-TXRX','ROADM-A1-SRG1-SRG1-CP-TXRXtoROADM-A1-DEG1-DEG1-CTP-TXRX', - 'ROADM-A1-SRG3-SRG3-CP-TXRXtoROADM-A1-DEG2-DEG2-CTP-TXRX','ROADM-A1-SRG3-SRG3-CP-TXRXtoROADM-A1-DEG1-DEG1-CTP-TXRX', - 'ROADM-C1-SRG1-SRG1-CP-TXRXtoROADM-C1-DEG2-DEG2-CTP-TXRX','ROADM-C1-SRG1-SRG1-CP-TXRXtoROADM-C1-DEG1-DEG1-CTP-TXRX'] - dropLink=['ROADM-A1-DEG1-DEG1-CTP-TXRXtoROADM-A1-SRG1-SRG1-CP-TXRX','ROADM-A1-DEG2-DEG2-CTP-TXRXtoROADM-A1-SRG1-SRG1-CP-TXRX', - 'ROADM-A1-DEG1-DEG1-CTP-TXRXtoROADM-A1-SRG3-SRG3-CP-TXRX','ROADM-A1-DEG2-DEG2-CTP-TXRXtoROADM-A1-SRG3-SRG3-CP-TXRX', - 'ROADM-C1-DEG1-DEG1-CTP-TXRXtoROADM-C1-SRG1-SRG1-CP-TXRX','ROADM-C1-DEG2-DEG2-CTP-TXRXtoROADM-C1-SRG1-SRG1-CP-TXRX'] - R2RLink=['ROADM-A1-DEG2-DEG2-TTP-TXRXtoROADM-C1-DEG1-DEG1-TTP-TXRX','ROADM-C1-DEG1-DEG1-TTP-TXRXtoROADM-A1-DEG2-DEG2-TTP-TXRX'] - XPDR_IN=['ROADM-A1-SRG1-SRG1-PP1-TXRXtoXPDR-A1-XPDR1-XPDR1-NETWORK1'] - XPDR_OUT=['XPDR-A1-XPDR1-XPDR1-NETWORK1toROADM-A1-SRG1-SRG1-PP1-TXRX'] - for i in range(0,nbLink): - nodeType=res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type'] - linkId=res['network'][0]['ietf-network-topology:link'][i]['link-id'] - if(nodeType=='EXPRESS-LINK'): - find= linkId in expressLink + # Tests related to links + nbLink = len(res['network'][0]['ietf-network-topology:link']) + self.assertEqual(nbLink, 20) + expressLink = ['ROADM-A1-DEG2-DEG2-CTP-TXRXtoROADM-A1-DEG1-DEG1-CTP-TXRX', 'ROADM-A1-DEG1-DEG1-CTP-TXRXtoROADM-A1-DEG2-DEG2-CTP-TXRX', + 'ROADM-C1-DEG2-DEG2-CTP-TXRXtoROADM-C1-DEG1-DEG1-CTP-TXRX', 'ROADM-C1-DEG1-DEG1-CTP-TXRXtoROADM-C1-DEG2-DEG2-CTP-TXRX'] + addLink = ['ROADM-A1-SRG1-SRG1-CP-TXRXtoROADM-A1-DEG2-DEG2-CTP-TXRX', 'ROADM-A1-SRG1-SRG1-CP-TXRXtoROADM-A1-DEG1-DEG1-CTP-TXRX', + 'ROADM-A1-SRG3-SRG3-CP-TXRXtoROADM-A1-DEG2-DEG2-CTP-TXRX', 'ROADM-A1-SRG3-SRG3-CP-TXRXtoROADM-A1-DEG1-DEG1-CTP-TXRX', + 'ROADM-C1-SRG1-SRG1-CP-TXRXtoROADM-C1-DEG2-DEG2-CTP-TXRX', 'ROADM-C1-SRG1-SRG1-CP-TXRXtoROADM-C1-DEG1-DEG1-CTP-TXRX'] + dropLink = ['ROADM-A1-DEG1-DEG1-CTP-TXRXtoROADM-A1-SRG1-SRG1-CP-TXRX', 'ROADM-A1-DEG2-DEG2-CTP-TXRXtoROADM-A1-SRG1-SRG1-CP-TXRX', + 'ROADM-A1-DEG1-DEG1-CTP-TXRXtoROADM-A1-SRG3-SRG3-CP-TXRX', 'ROADM-A1-DEG2-DEG2-CTP-TXRXtoROADM-A1-SRG3-SRG3-CP-TXRX', + 'ROADM-C1-DEG1-DEG1-CTP-TXRXtoROADM-C1-SRG1-SRG1-CP-TXRX', 'ROADM-C1-DEG2-DEG2-CTP-TXRXtoROADM-C1-SRG1-SRG1-CP-TXRX'] + R2RLink = ['ROADM-A1-DEG2-DEG2-TTP-TXRXtoROADM-C1-DEG1-DEG1-TTP-TXRX', + 'ROADM-C1-DEG1-DEG1-TTP-TXRXtoROADM-A1-DEG2-DEG2-TTP-TXRX'] + XPDR_IN = ['ROADM-A1-SRG1-SRG1-PP1-TXRXtoXPDR-A1-XPDR1-XPDR1-NETWORK1'] + XPDR_OUT = ['XPDR-A1-XPDR1-XPDR1-NETWORK1toROADM-A1-SRG1-SRG1-PP1-TXRX'] + for i in range(0, nbLink): + nodeType = res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type'] + linkId = res['network'][0]['ietf-network-topology:link'][i]['link-id'] + if(nodeType == 'EXPRESS-LINK'): + find = linkId in expressLink self.assertEqual(find, True) expressLink.remove(linkId) - elif(nodeType=='ADD-LINK'): - find= linkId in addLink + elif(nodeType == 'ADD-LINK'): + find = linkId in addLink self.assertEqual(find, True) addLink.remove(linkId) - elif(nodeType=='DROP-LINK'): - find= linkId in dropLink + elif(nodeType == 'DROP-LINK'): + find = linkId in dropLink self.assertEqual(find, True) dropLink.remove(linkId) - elif(nodeType=='ROADM-TO-ROADM'): - find= linkId in R2RLink + elif(nodeType == 'ROADM-TO-ROADM'): + find = linkId in R2RLink self.assertEqual(find, True) R2RLink.remove(linkId) - elif(nodeType=='XPONDER-INPUT'): - find= linkId in XPDR_IN + elif(nodeType == 'XPONDER-INPUT'): + find = linkId in XPDR_IN self.assertEqual(find, True) XPDR_IN.remove(linkId) - elif(nodeType=='XPONDER-OUTPUT'): - find= linkId in XPDR_OUT + elif(nodeType == 'XPONDER-OUTPUT'): + find = linkId in XPDR_OUT self.assertEqual(find, True) XPDR_OUT.remove(linkId) else: self.assertFalse(True) - self.assertEqual(len(expressLink),0) - self.assertEqual(len(addLink),0) - self.assertEqual(len(dropLink),0) - self.assertEqual(len(R2RLink),0) - self.assertEqual(len(XPDR_IN),0) - self.assertEqual(len(XPDR_OUT),0) + self.assertEqual(len(expressLink), 0) + self.assertEqual(len(addLink), 0) + self.assertEqual(len(dropLink), 0) + self.assertEqual(len(R2RLink), 0) + self.assertEqual(len(XPDR_IN), 0) + self.assertEqual(len(XPDR_OUT), 0) def test_19_getLinkOmsAttributesOpenRoadmTopology(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')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() - #Tests related to links - nbLink=len(res['network'][0]['ietf-network-topology:link']) - self.assertEqual(nbLink,20) - R2RLink=['ROADM-A1-DEG2-DEG2-TTP-TXRXtoROADM-C1-DEG1-DEG1-TTP-TXRX', - 'ROADM-C1-DEG1-DEG1-TTP-TXRXtoROADM-A1-DEG2-DEG2-TTP-TXRX'] - for i in range(0,nbLink): + # Tests related to links + nbLink = len(res['network'][0]['ietf-network-topology:link']) + self.assertEqual(nbLink, 20) + R2RLink = ['ROADM-A1-DEG2-DEG2-TTP-TXRXtoROADM-C1-DEG1-DEG1-TTP-TXRX', + 'ROADM-C1-DEG1-DEG1-TTP-TXRXtoROADM-A1-DEG2-DEG2-TTP-TXRX'] + for i in range(0, nbLink): nodeType = res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type'] - link_id=res['network'][0]['ietf-network-topology:link'][i]['link-id'] + link_id = res['network'][0]['ietf-network-topology:link'][i]['link-id'] if(link_id in R2RLink): find = False spanLoss = res['network'][0]['ietf-network-topology:link'][i][ 'org-openroadm-network-topology:OMS-attributes']['span']["engineered-spanloss"] length = res['network'][0]['ietf-network-topology:link'][i][ 'org-openroadm-network-topology:OMS-attributes']['span']['link-concatenation'][0]['SRLG-length'] - if((spanLoss!=None)&(length!=None)): + if((spanLoss != None) & (length != None)): find = True self.assertTrue(find) R2RLink.remove(link_id) - self.assertEqual(len(R2RLink),0) + self.assertEqual(len(R2RLink), 0) def test_20_getNodes_OpenRoadmTopology(self): - url = ("{}/config/ietf-network:networks/network/openroadm-topology" + url = ("{}/config/ietf-network:networks/network/openroadm-topology" .format(self.restconf_baseurl)) - headers = {'content-type': 'application/json'} - response = requests.request( - "GET", url, headers=headers, auth=('admin', 'admin')) - res = response.json() - #Tests related to nodes - self.assertEqual(response.status_code, requests.codes.ok) - nbNode=len(res['network'][0]['node']) - self.assertEqual(nbNode,8) - listNode=['XPDR-A1-XPDR1', - 'ROADM-A1-SRG1','ROADM-A1-SRG3','ROADM-A1-DEG1','ROADM-A1-DEG2', - 'ROADM-C1-SRG1','ROADM-C1-DEG1', 'ROADM-C1-DEG2'] - #************************Tests related to XPDRA nodes - for i in range(0,nbNode): - nodeType=res['network'][0]['node'][i]['org-openroadm-common-network:node-type'] - nodeId=res['network'][0]['node'][i]['node-id'] - if(nodeId=='XPDR-A1-XPDR1'): - self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'XPDR-A1'}, - res['network'][0]['node'][i]['supporting-node']) - self.assertEqual(nodeType,'XPONDER') - nbTps=len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']) - self.assertTrue(nbTps >= 4) - client = 0 - network = 0 - for j in range(0,nbTps): - tpType=res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['org-openroadm-common-network:tp-type'] - if (tpType=='XPONDER-CLIENT'): - client += 1 - elif (tpType=='XPONDER-NETWORK'): - network += 1 - self.assertTrue(client == 2) - self.assertTrue(network == 2) - listNode.remove(nodeId) - elif(nodeId=='ROADM-A1-SRG1'): - #Test related to SRG1 - self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']),5) - self.assertIn({'tp-id': 'SRG1-CP-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-CP'}, - res['network'][0]['node'][i]['ietf-network-topology:termination-point']) - self.assertIn({'tp-id': 'SRG1-PP1-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-PP'}, - res['network'][0]['node'][i]['ietf-network-topology:termination-point']) - self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADM-A1'}, - res['network'][0]['node'][i]['supporting-node']) - self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'],'SRG') - listNode.remove(nodeId) - elif(nodeId=='ROADM-A1-SRG3'): - #Test related to SRG1 - self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']),5) - self.assertIn({'tp-id': 'SRG3-CP-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-CP'}, - res['network'][0]['node'][i]['ietf-network-topology:termination-point']) - self.assertIn({'tp-id': 'SRG3-PP1-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-PP'}, - res['network'][0]['node'][i]['ietf-network-topology:termination-point']) - self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADM-A1'}, - res['network'][0]['node'][i]['supporting-node']) - self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'],'SRG') - listNode.remove(nodeId) - elif(nodeId=='ROADM-A1-DEG1'): - #Test related to DEG1 - self.assertIn({'tp-id': 'DEG1-TTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-TTP'}, - res['network'][0]['node'][i]['ietf-network-topology:termination-point']) - self.assertIn({'tp-id': 'DEG1-CTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-CTP'}, - res['network'][0]['node'][i]['ietf-network-topology:termination-point']) - self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADM-A1'}, - res['network'][0]['node'][i]['supporting-node']) - self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'],'DEGREE') - listNode.remove(nodeId) - elif(nodeId=='ROADM-A1-DEG2'): - #Test related to DEG2 - self.assertIn({'tp-id': 'DEG2-TTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-TTP'}, - res['network'][0]['node'][i]['ietf-network-topology:termination-point']) - self.assertIn({'tp-id': 'DEG2-CTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-CTP'}, - res['network'][0]['node'][i]['ietf-network-topology:termination-point']) - self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADM-A1'}, - res['network'][0]['node'][i]['supporting-node']) - self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'],'DEGREE') - listNode.remove(nodeId) - elif(nodeId=='ROADM-C1-SRG1'): - #Test related to SRG1 - self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']),5) - self.assertIn({'tp-id': 'SRG1-CP-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-CP'}, - res['network'][0]['node'][i]['ietf-network-topology:termination-point']) - self.assertIn({'tp-id': 'SRG1-PP1-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-PP'}, - res['network'][0]['node'][i]['ietf-network-topology:termination-point']) - self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADM-C1'}, - res['network'][0]['node'][i]['supporting-node']) - self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'],'SRG') - listNode.remove(nodeId) - elif(nodeId=='ROADM-C1-DEG1'): - #Test related to DEG1 - self.assertIn({'tp-id': 'DEG1-TTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-TTP'}, - res['network'][0]['node'][i]['ietf-network-topology:termination-point']) - self.assertIn({'tp-id': 'DEG1-CTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-CTP'}, - res['network'][0]['node'][i]['ietf-network-topology:termination-point']) - self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADM-C1'}, - res['network'][0]['node'][i]['supporting-node']) - self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'],'DEGREE') - listNode.remove(nodeId) - elif(nodeId=='ROADM-C1-DEG2'): - #Test related to DEG1 - self.assertIn({'tp-id': 'DEG2-TTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-TTP'}, - res['network'][0]['node'][i]['ietf-network-topology:termination-point']) - self.assertIn({'tp-id': 'DEG2-CTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-CTP'}, - res['network'][0]['node'][i]['ietf-network-topology:termination-point']) - self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADM-C1'}, - res['network'][0]['node'][i]['supporting-node']) - self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'],'DEGREE') - listNode.remove(nodeId) - else: + headers = {'content-type': 'application/json'} + response = requests.request( + "GET", url, headers=headers, auth=('admin', 'admin')) + res = response.json() + # Tests related to nodes + self.assertEqual(response.status_code, requests.codes.ok) + nbNode = len(res['network'][0]['node']) + self.assertEqual(nbNode, 8) + listNode = ['XPDR-A1-XPDR1', + 'ROADM-A1-SRG1', 'ROADM-A1-SRG3', 'ROADM-A1-DEG1', 'ROADM-A1-DEG2', + 'ROADM-C1-SRG1', 'ROADM-C1-DEG1', 'ROADM-C1-DEG2'] + # ************************Tests related to XPDRA nodes + for i in range(0, nbNode): + nodeType = res['network'][0]['node'][i]['org-openroadm-common-network:node-type'] + nodeId = res['network'][0]['node'][i]['node-id'] + if(nodeId == 'XPDR-A1-XPDR1'): + self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'XPDR-A1'}, + res['network'][0]['node'][i]['supporting-node']) + self.assertEqual(nodeType, 'XPONDER') + nbTps = len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']) + self.assertTrue(nbTps >= 4) + client = 0 + network = 0 + for j in range(0, nbTps): + tpType = res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['org-openroadm-common-network:tp-type'] + if (tpType == 'XPONDER-CLIENT'): + client += 1 + elif (tpType == 'XPONDER-NETWORK'): + network += 1 + self.assertTrue(client == 2) + self.assertTrue(network == 2) + listNode.remove(nodeId) + elif(nodeId == 'ROADM-A1-SRG1'): + # Test related to SRG1 + self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']), 5) + self.assertIn({'tp-id': 'SRG1-CP-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-CP'}, + res['network'][0]['node'][i]['ietf-network-topology:termination-point']) + self.assertIn({'tp-id': 'SRG1-PP1-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-PP'}, + res['network'][0]['node'][i]['ietf-network-topology:termination-point']) + self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADM-A1'}, + res['network'][0]['node'][i]['supporting-node']) + self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'], 'SRG') + listNode.remove(nodeId) + elif(nodeId == 'ROADM-A1-SRG3'): + # Test related to SRG1 + self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']), 5) + self.assertIn({'tp-id': 'SRG3-CP-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-CP'}, + res['network'][0]['node'][i]['ietf-network-topology:termination-point']) + self.assertIn({'tp-id': 'SRG3-PP1-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-PP'}, + res['network'][0]['node'][i]['ietf-network-topology:termination-point']) + self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADM-A1'}, + res['network'][0]['node'][i]['supporting-node']) + self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'], 'SRG') + listNode.remove(nodeId) + elif(nodeId == 'ROADM-A1-DEG1'): + # Test related to DEG1 + self.assertIn({'tp-id': 'DEG1-TTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-TTP'}, + res['network'][0]['node'][i]['ietf-network-topology:termination-point']) + self.assertIn({'tp-id': 'DEG1-CTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-CTP'}, + res['network'][0]['node'][i]['ietf-network-topology:termination-point']) + self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADM-A1'}, + res['network'][0]['node'][i]['supporting-node']) + self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'], 'DEGREE') + listNode.remove(nodeId) + elif(nodeId == 'ROADM-A1-DEG2'): + # Test related to DEG2 + self.assertIn({'tp-id': 'DEG2-TTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-TTP'}, + res['network'][0]['node'][i]['ietf-network-topology:termination-point']) + self.assertIn({'tp-id': 'DEG2-CTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-CTP'}, + res['network'][0]['node'][i]['ietf-network-topology:termination-point']) + self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADM-A1'}, + res['network'][0]['node'][i]['supporting-node']) + self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'], 'DEGREE') + listNode.remove(nodeId) + elif(nodeId == 'ROADM-C1-SRG1'): + # Test related to SRG1 + self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']), 5) + self.assertIn({'tp-id': 'SRG1-CP-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-CP'}, + res['network'][0]['node'][i]['ietf-network-topology:termination-point']) + self.assertIn({'tp-id': 'SRG1-PP1-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-PP'}, + res['network'][0]['node'][i]['ietf-network-topology:termination-point']) + self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADM-C1'}, + res['network'][0]['node'][i]['supporting-node']) + self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'], 'SRG') + listNode.remove(nodeId) + elif(nodeId == 'ROADM-C1-DEG1'): + # Test related to DEG1 + self.assertIn({'tp-id': 'DEG1-TTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-TTP'}, + res['network'][0]['node'][i]['ietf-network-topology:termination-point']) + self.assertIn({'tp-id': 'DEG1-CTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-CTP'}, + res['network'][0]['node'][i]['ietf-network-topology:termination-point']) + self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADM-C1'}, + res['network'][0]['node'][i]['supporting-node']) + self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'], 'DEGREE') + listNode.remove(nodeId) + elif(nodeId == 'ROADM-C1-DEG2'): + # Test related to DEG1 + self.assertIn({'tp-id': 'DEG2-TTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-TTP'}, + res['network'][0]['node'][i]['ietf-network-topology:termination-point']) + self.assertIn({'tp-id': 'DEG2-CTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-CTP'}, + res['network'][0]['node'][i]['ietf-network-topology:termination-point']) + self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADM-C1'}, + res['network'][0]['node'][i]['supporting-node']) + self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'], 'DEGREE') + listNode.remove(nodeId) + else: self.assertFalse(True) - self.assertEqual(len(listNode),0) + self.assertEqual(len(listNode), 0) def test_21_connect_ROADMB(self): url = ("{}/config/network-topology:" - "network-topology/topology/topology-netconf/node/ROADM-B1" + "network-topology/topology/topology-netconf/node/ROADM-B1" .format(self.restconf_baseurl)) data = {"node": [{ - "node-id": "ROADM-B1", - "netconf-node-topology:username": "admin", - "netconf-node-topology:password": "admin", - "netconf-node-topology:host": "127.0.0.1", - "netconf-node-topology:port": "17842", - "netconf-node-topology:tcp-only": "false", - "netconf-node-topology:pass-through": {}}]} + "node-id": "ROADM-B1", + "netconf-node-topology:username": "admin", + "netconf-node-topology:password": "admin", + "netconf-node-topology:host": "127.0.0.1", + "netconf-node-topology:port": "17842", + "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(20) @@ -831,8 +833,8 @@ class TransportPCEtesting(unittest.TestCase): "pmd": 0.5}]}} 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) def test_23_omsAttributes_ROADMB_ROADMA(self): @@ -853,8 +855,8 @@ class TransportPCEtesting(unittest.TestCase): "pmd": 0.5}]}} 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) def test_24_omsAttributes_ROADMB_ROADMC(self): @@ -875,8 +877,8 @@ class TransportPCEtesting(unittest.TestCase): "pmd": 0.5}]}} 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) def test_25_omsAttributes_ROADMC_ROADMB(self): @@ -895,165 +897,166 @@ class TransportPCEtesting(unittest.TestCase): "pmd": 0.5}]}} 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) def test_26_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')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() - nbNode=len(res['network'][0]['node']) - listNode=['NodeA','NodeB','NodeC'] - for i in range(0,nbNode): + nbNode = len(res['network'][0]['node']) + listNode = ['NodeA', 'NodeB', 'NodeC'] + for i in range(0, nbNode): nodeId = res['network'][0]['node'][i]['node-id'] - find= nodeId in listNode + find = nodeId in listNode self.assertEqual(find, True) - if(nodeId=='NodeA'): - self.assertEqual(res['network'][0]['node'][i]['org-openroadm-clli-network:clli'],'NodeA') - elif(nodeId=='NodeB'): - self.assertEqual(res['network'][0]['node'][i]['org-openroadm-clli-network:clli'],'NodeB') + if(nodeId == 'NodeA'): + self.assertEqual(res['network'][0]['node'][i]['org-openroadm-clli-network:clli'], 'NodeA') + elif(nodeId == 'NodeB'): + self.assertEqual(res['network'][0]['node'][i]['org-openroadm-clli-network:clli'], 'NodeB') else: - self.assertEqual(res['network'][0]['node'][i]['org-openroadm-clli-network:clli'],'NodeC') + self.assertEqual(res['network'][0]['node'][i]['org-openroadm-clli-network:clli'], 'NodeC') listNode.remove(nodeId) - self.assertEqual(len(listNode),0) + self.assertEqual(len(listNode), 0) def test_27_verifyDegree(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')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() - #Tests related to links - nbLink=len(res['network'][0]['ietf-network-topology:link']) - listR2RLink=['ROADM-A1-DEG2-DEG2-TTP-TXRXtoROADM-C1-DEG1-DEG1-TTP-TXRX','ROADM-C1-DEG1-DEG1-TTP-TXRXtoROADM-A1-DEG2-DEG2-TTP-TXRX', - 'ROADM-A1-DEG1-DEG1-TTP-TXRXtoROADM-B1-DEG1-DEG1-TTP-TXRX','ROADM-C1-DEG2-DEG2-TTP-TXRXtoROADM-B1-DEG2-DEG2-TTP-TXRX', - 'ROADM-B1-DEG1-DEG1-TTP-TXRXtoROADM-A1-DEG1-DEG1-TTP-TXRX','ROADM-B1-DEG2-DEG2-TTP-TXRXtoROADM-C1-DEG2-DEG2-TTP-TXRX'] - for i in range(0,nbLink): + # Tests related to links + nbLink = len(res['network'][0]['ietf-network-topology:link']) + listR2RLink = ['ROADM-A1-DEG2-DEG2-TTP-TXRXtoROADM-C1-DEG1-DEG1-TTP-TXRX', 'ROADM-C1-DEG1-DEG1-TTP-TXRXtoROADM-A1-DEG2-DEG2-TTP-TXRX', + 'ROADM-A1-DEG1-DEG1-TTP-TXRXtoROADM-B1-DEG1-DEG1-TTP-TXRX', 'ROADM-C1-DEG2-DEG2-TTP-TXRXtoROADM-B1-DEG2-DEG2-TTP-TXRX', + 'ROADM-B1-DEG1-DEG1-TTP-TXRXtoROADM-A1-DEG1-DEG1-TTP-TXRX', 'ROADM-B1-DEG2-DEG2-TTP-TXRXtoROADM-C1-DEG2-DEG2-TTP-TXRX'] + for i in range(0, nbLink): if res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type'] == 'ROADM-TO-ROADM': link_id = res['network'][0]['ietf-network-topology:link'][i]['link-id'] - find= link_id in listR2RLink + find = link_id in listR2RLink self.assertEqual(find, True) listR2RLink.remove(link_id) - self.assertEqual(len(listR2RLink),0) + self.assertEqual(len(listR2RLink), 0) def test_28_verifyOppositeLinkTopology(self): url = ("{}/config/ietf-network:networks/network/openroadm-topology" .format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response = requests.request( - "GET", url, headers=headers, auth=('admin', 'admin')) + "GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() - #Tests related to links - nbLink=len(res['network'][0]['ietf-network-topology:link']) - self.assertEqual(nbLink,26) - for i in range(0,nbLink): - link_id=res['network'][0]['ietf-network-topology:link'][i]['link-id'] - link_type=res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type'] - link_src=res['network'][0]['ietf-network-topology:link'][i]['source']['source-node'] - link_dest=res['network'][0]['ietf-network-topology:link'][i]['destination']['dest-node'] - oppLink_id=res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:opposite-link'] - #Find the opposite link - url_oppLink="{}/config/ietf-network:networks/network/openroadm-topology/ietf-network-topology:link/"+oppLink_id + # Tests related to links + nbLink = len(res['network'][0]['ietf-network-topology:link']) + self.assertEqual(nbLink, 26) + for i in range(0, nbLink): + link_id = res['network'][0]['ietf-network-topology:link'][i]['link-id'] + link_type = res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type'] + link_src = res['network'][0]['ietf-network-topology:link'][i]['source']['source-node'] + link_dest = res['network'][0]['ietf-network-topology:link'][i]['destination']['dest-node'] + oppLink_id = res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:opposite-link'] + # Find the opposite link + url_oppLink = "{}/config/ietf-network:networks/network/openroadm-topology/ietf-network-topology:link/"+oppLink_id url = (url_oppLink.format(self.restconf_baseurl)) headers = {'content-type': 'application/json'} response_oppLink = requests.request("GET", url, headers=headers, auth=('admin', 'admin')) self.assertEqual(response_oppLink.status_code, requests.codes.ok) res_oppLink = response_oppLink.json() - self.assertEqual(res_oppLink['ietf-network-topology:link'][0]['org-openroadm-common-network:opposite-link'],link_id) - self.assertEqual(res_oppLink['ietf-network-topology:link'][0]['source']['source-node'],link_dest) - self.assertEqual(res_oppLink['ietf-network-topology:link'][0]['destination']['dest-node'],link_src) - oppLink_type=res_oppLink['ietf-network-topology:link'][0]['org-openroadm-common-network:link-type'] - if link_type=='ADD-LINK': + self.assertEqual(res_oppLink['ietf-network-topology:link'][0] + ['org-openroadm-common-network:opposite-link'], link_id) + self.assertEqual(res_oppLink['ietf-network-topology:link'][0]['source']['source-node'], link_dest) + self.assertEqual(res_oppLink['ietf-network-topology:link'][0]['destination']['dest-node'], link_src) + oppLink_type = res_oppLink['ietf-network-topology:link'][0]['org-openroadm-common-network:link-type'] + if link_type == 'ADD-LINK': self.assertEqual(oppLink_type, 'DROP-LINK') - elif link_type=='DROP-LINK': + elif link_type == 'DROP-LINK': self.assertEqual(oppLink_type, 'ADD-LINK') - elif link_type=='EXPRESS-LINK': + elif link_type == 'EXPRESS-LINK': self.assertEqual(oppLink_type, 'EXPRESS-LINK') - elif link_type=='ROADM-TO-ROADM': + elif link_type == 'ROADM-TO-ROADM': self.assertEqual(oppLink_type, 'ROADM-TO-ROADM') - elif link_type=='XPONDER-INPUT': + elif link_type == 'XPONDER-INPUT': self.assertEqual(oppLink_type, 'XPONDER-OUTPUT') - elif link_type=='XPONDER-OUTPUT': + elif link_type == 'XPONDER-OUTPUT': self.assertEqual(oppLink_type, 'XPONDER-INPUT') def test_29_getLinkOmsAttributesOpenRoadmTopology(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')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() - nbLink=len(res['network'][0]['ietf-network-topology:link']) + nbLink = len(res['network'][0]['ietf-network-topology:link']) R2RLink = ['ROADM-A1-DEG2-DEG2-TTP-TXRXtoROADM-C1-DEG1-DEG1-TTP-TXRX', - 'ROADM-C1-DEG1-DEG1-TTP-TXRXtoROADM-A1-DEG2-DEG2-TTP-TXRX', - 'ROADM-A1-DEG1-DEG1-TTP-TXRXtoROADM-B1-DEG1-DEG1-TTP-TXRX', - 'ROADM-C1-DEG2-DEG2-TTP-TXRXtoROADM-B1-DEG2-DEG2-TTP-TXRX', - 'ROADM-B1-DEG1-DEG1-TTP-TXRXtoROADM-A1-DEG1-DEG1-TTP-TXRX', - 'ROADM-B1-DEG2-DEG2-TTP-TXRXtoROADM-C1-DEG2-DEG2-TTP-TXRX'] - for i in range(0,nbLink): + 'ROADM-C1-DEG1-DEG1-TTP-TXRXtoROADM-A1-DEG2-DEG2-TTP-TXRX', + 'ROADM-A1-DEG1-DEG1-TTP-TXRXtoROADM-B1-DEG1-DEG1-TTP-TXRX', + 'ROADM-C1-DEG2-DEG2-TTP-TXRXtoROADM-B1-DEG2-DEG2-TTP-TXRX', + 'ROADM-B1-DEG1-DEG1-TTP-TXRXtoROADM-A1-DEG1-DEG1-TTP-TXRX', + 'ROADM-B1-DEG2-DEG2-TTP-TXRXtoROADM-C1-DEG2-DEG2-TTP-TXRX'] + for i in range(0, nbLink): nodeType = res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type'] - link_id=res['network'][0]['ietf-network-topology:link'][i]['link-id'] + link_id = res['network'][0]['ietf-network-topology:link'][i]['link-id'] if(link_id in R2RLink): find = False spanLoss = res['network'][0]['ietf-network-topology:link'][i][ 'org-openroadm-network-topology:OMS-attributes']['span']["engineered-spanloss"] length = res['network'][0]['ietf-network-topology:link'][i][ 'org-openroadm-network-topology:OMS-attributes']['span']['link-concatenation'][0]['SRLG-length'] - if((spanLoss!=None)&(length!=None)): + if((spanLoss != None) & (length != None)): find = True self.assertTrue(find) R2RLink.remove(link_id) - self.assertEqual(len(R2RLink),0) + self.assertEqual(len(R2RLink), 0) def test_30_disconnect_ROADMB(self): - #Delete in the topology-netconf + # Delete in the topology-netconf url = ("{}/config/network-topology:" - "network-topology/topology/topology-netconf/node/ROADM-B1" + "network-topology/topology/topology-netconf/node/ROADM-B1" .format(self.restconf_baseurl)) data = {} headers = {'content-type': 'application/json'} response = requests.request( - "DELETE", url, data=json.dumps(data), headers=headers, - auth=('admin', 'admin')) + "DELETE", url, data=json.dumps(data), headers=headers, + auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) - #Delete in the clli-network + # Delete in the clli-network url = ("{}/config/ietf-network:networks/network/clli-network/node/NodeB" .format(self.restconf_baseurl)) data = {} headers = {'content-type': 'application/json'} response = requests.request( - "DELETE", url, data=json.dumps(data), headers=headers, - auth=('admin', 'admin')) + "DELETE", url, data=json.dumps(data), headers=headers, + auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) def test_31_disconnect_ROADMC(self): - #Delete in the topology-netconf + # Delete in the topology-netconf url = ("{}/config/network-topology:" - "network-topology/topology/topology-netconf/node/ROADM-C1" + "network-topology/topology/topology-netconf/node/ROADM-C1" .format(self.restconf_baseurl)) data = {} headers = {'content-type': 'application/json'} response = requests.request( - "DELETE", url, data=json.dumps(data), headers=headers, - auth=('admin', 'admin')) + "DELETE", url, data=json.dumps(data), headers=headers, + auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) - #Delete in the clli-network + # Delete in the clli-network url = ("{}/config/ietf-network:networks/network/clli-network/node/NodeC" .format(self.restconf_baseurl)) data = {} headers = {'content-type': 'application/json'} response = requests.request( - "DELETE", url, data=json.dumps(data), headers=headers, - auth=('admin', 'admin')) + "DELETE", url, data=json.dumps(data), headers=headers, + auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) # def test_24_check_roadm2roadm_links_deletion(self): @@ -1117,21 +1120,21 @@ class TransportPCEtesting(unittest.TestCase): def test_32_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')) res = response.json() - #Tests related to nodes + # Tests related to nodes self.assertEqual(response.status_code, requests.codes.ok) - nbNode=len(res['network'][0]['node']) - self.assertEqual(nbNode,5) - listNode=['XPDR-A1-XPDR1','ROADM-A1-SRG1', 'ROADM-A1-SRG3','ROADM-A1-DEG1','ROADM-A1-DEG2'] - for i in range(0,nbNode): - nodeType=res['network'][0]['node'][i]['org-openroadm-common-network:node-type'] - nodeId=res['network'][0]['node'][i]['node-id'] - #Tests related to XPDRA nodes - if(nodeId=='XPDR-A1-XPDR1'): + nbNode = len(res['network'][0]['node']) + self.assertEqual(nbNode, 5) + listNode = ['XPDR-A1-XPDR1', 'ROADM-A1-SRG1', 'ROADM-A1-SRG3', 'ROADM-A1-DEG1', 'ROADM-A1-DEG2'] + for i in range(0, nbNode): + nodeType = res['network'][0]['node'][i]['org-openroadm-common-network:node-type'] + nodeId = res['network'][0]['node'][i]['node-id'] + # Tests related to XPDRA nodes + if(nodeId == 'XPDR-A1-XPDR1'): nbTp = len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']) for j in range(0, nbTp): tpid = res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['tp-id'] @@ -1145,12 +1148,12 @@ class TransportPCEtesting(unittest.TestCase): ['org-openroadm-network-topology:xpdr-network-attributes']['tail-equipment-id'], 'ROADM-A1-SRG1--SRG1-PP1-TXRX') self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'XPDR-A1'}, - res['network'][0]['node'][i]['supporting-node']) + res['network'][0]['node'][i]['supporting-node']) listNode.remove(nodeId) - elif(nodeId=='ROADM-A1-SRG1'): - #Test related to SRG1 - self.assertEqual(nodeType,'SRG') - self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']),5) + elif(nodeId == 'ROADM-A1-SRG1'): + # Test related to SRG1 + self.assertEqual(nodeType, 'SRG') + self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']), 5) self.assertIn({'tp-id': 'SRG1-CP-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-CP'}, res['network'][0]['node'][i]['ietf-network-topology:termination-point']) self.assertIn({'tp-id': 'SRG1-PP1-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-PP'}, @@ -1158,10 +1161,10 @@ class TransportPCEtesting(unittest.TestCase): self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADM-A1'}, res['network'][0]['node'][i]['supporting-node']) listNode.remove(nodeId) - elif(nodeId=='ROADM-A1-SRG3'): - #Test related to SRG1 - self.assertEqual(nodeType,'SRG') - self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']),5) + elif(nodeId == 'ROADM-A1-SRG3'): + # Test related to SRG1 + self.assertEqual(nodeType, 'SRG') + self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']), 5) self.assertIn({'tp-id': 'SRG3-CP-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-CP'}, res['network'][0]['node'][i]['ietf-network-topology:termination-point']) self.assertIn({'tp-id': 'SRG3-PP1-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-PP'}, @@ -1169,19 +1172,19 @@ class TransportPCEtesting(unittest.TestCase): self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADM-A1'}, res['network'][0]['node'][i]['supporting-node']) listNode.remove(nodeId) - elif(nodeId=='ROADM-A1-DEG1'): - #Test related to DEG1 - self.assertEqual(nodeType,'DEGREE') + elif(nodeId == 'ROADM-A1-DEG1'): + # Test related to DEG1 + self.assertEqual(nodeType, 'DEGREE') self.assertIn({'tp-id': 'DEG1-TTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-TTP'}, - res['network'][0]['node'][i]['ietf-network-topology:termination-point']) + res['network'][0]['node'][i]['ietf-network-topology:termination-point']) self.assertIn({'tp-id': 'DEG1-CTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-CTP'}, - res['network'][0]['node'][i]['ietf-network-topology:termination-point']) + res['network'][0]['node'][i]['ietf-network-topology:termination-point']) self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADM-A1'}, - res['network'][0]['node'][i]['supporting-node']) + res['network'][0]['node'][i]['supporting-node']) listNode.remove(nodeId) - elif(nodeId=='ROADM-A1-DEG2'): - #Test related to DEG2 - self.assertEqual(nodeType,'DEGREE') + elif(nodeId == 'ROADM-A1-DEG2'): + # Test related to DEG2 + self.assertEqual(nodeType, 'DEGREE') self.assertIn({'tp-id': 'DEG2-TTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-TTP'}, res['network'][0]['node'][i]['ietf-network-topology:termination-point']) self.assertIn({'tp-id': 'DEG2-CTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-CTP'}, @@ -1191,44 +1194,44 @@ class TransportPCEtesting(unittest.TestCase): listNode.remove(nodeId) else: self.assertFalse(True) - self.assertEqual(len(listNode),0) - #Test related to SRG1 of ROADMC - for i in range(0,nbNode): - self.assertNotEqual(res['network'][0]['node'][i]['node-id'],'ROADM-C1-SRG1') - self.assertNotEqual(res['network'][0]['node'][i]['node-id'],'ROADM-C1-DEG1') - self.assertNotEqual(res['network'][0]['node'][i]['node-id'],'ROADM-C1-DEG2') + self.assertEqual(len(listNode), 0) + # Test related to SRG1 of ROADMC + for i in range(0, nbNode): + self.assertNotEqual(res['network'][0]['node'][i]['node-id'], 'ROADM-C1-SRG1') + self.assertNotEqual(res['network'][0]['node'][i]['node-id'], 'ROADM-C1-DEG1') + self.assertNotEqual(res['network'][0]['node'][i]['node-id'], 'ROADM-C1-DEG2') def test_33_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')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() - nbNode=len(res['network'][0]['node']) - self.assertEqual(nbNode,2) - for i in range(0,nbNode-1): - self.assertNotEqual(res['network'][0]['node'][i]['node-id'],'ROADM-C1') - self.assertNotEqual(res['network'][0]['node'][i]['node-id'],'ROADM-B1') + nbNode = len(res['network'][0]['node']) + self.assertEqual(nbNode, 2) + for i in range(0, nbNode-1): + self.assertNotEqual(res['network'][0]['node'][i]['node-id'], 'ROADM-C1') + self.assertNotEqual(res['network'][0]['node'][i]['node-id'], 'ROADM-B1') def test_34_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')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() - nbNode=len(res['network'][0]['node']) - self.assertEqual(nbNode,1) - for i in range(0,nbNode-1): - self.assertNotEqual(res['network'][0]['node'][1]['org-openroadm-clli-network:clli'],'NodeC') + nbNode = len(res['network'][0]['node']) + self.assertEqual(nbNode, 1) + for i in range(0, nbNode-1): + self.assertNotEqual(res['network'][0]['node'][1]['org-openroadm-clli-network:clli'], 'NodeC') def test_35_disconnect_XPDRA(self): url = ("{}/config/network-topology:" "network-topology/topology/topology-netconf/node/XPDR-A1" - .format(self.restconf_baseurl)) + .format(self.restconf_baseurl)) data = {} headers = {'content-type': 'application/json'} response = requests.request( @@ -1238,75 +1241,75 @@ class TransportPCEtesting(unittest.TestCase): def test_36_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')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() - nbNode=len(res['network'][0]['node']) - self.assertEqual(nbNode,1) - self.assertEqual(res['network'][0]['node'][0]['org-openroadm-clli-network:clli'],'NodeA') + nbNode = len(res['network'][0]['node']) + self.assertEqual(nbNode, 1) + self.assertEqual(res['network'][0]['node'][0]['org-openroadm-clli-network:clli'], 'NodeA') def test_37_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')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() - nbNode=len(res['network'][0]['node']) - self.assertEqual(nbNode,1) - for i in range(0,nbNode): - self.assertNotEqual(res['network'][0]['node'][i]['node-id'],'XPDR-A1') + nbNode = len(res['network'][0]['node']) + self.assertEqual(nbNode, 1) + for i in range(0, nbNode): + self.assertNotEqual(res['network'][0]['node'][i]['node-id'], 'XPDR-A1') def test_38_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')) res = response.json() - #Tests related to nodes + # Tests related to nodes self.assertEqual(response.status_code, requests.codes.ok) - nbNode=len(res['network'][0]['node']) - self.assertEqual(nbNode,4) - listNode=['ROADM-A1-SRG1','ROADM-A1-SRG3','ROADM-A1-DEG1','ROADM-A1-DEG2'] - for i in range(0,nbNode): + nbNode = len(res['network'][0]['node']) + self.assertEqual(nbNode, 4) + listNode = ['ROADM-A1-SRG1', 'ROADM-A1-SRG3', 'ROADM-A1-DEG1', 'ROADM-A1-DEG2'] + for i in range(0, nbNode): self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADM-A1'}, res['network'][0]['node'][i]['supporting-node']) - nodeType=res['network'][0]['node'][i]['org-openroadm-common-network:node-type'] - nodeId=res['network'][0]['node'][i]['node-id'] - if(nodeId=='ROADM-A1-SRG1'): - #Test related to SRG1 - self.assertEqual(nodeType,'SRG') - self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']),5) + nodeType = res['network'][0]['node'][i]['org-openroadm-common-network:node-type'] + nodeId = res['network'][0]['node'][i]['node-id'] + if(nodeId == 'ROADM-A1-SRG1'): + # Test related to SRG1 + self.assertEqual(nodeType, 'SRG') + self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']), 5) self.assertIn({'tp-id': 'SRG1-CP-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-CP'}, res['network'][0]['node'][i]['ietf-network-topology:termination-point']) self.assertIn({'tp-id': 'SRG1-PP1-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-PP'}, res['network'][0]['node'][i]['ietf-network-topology:termination-point']) listNode.remove(nodeId) - elif(nodeId=='ROADM-A1-SRG3'): - #Test related to SRG1 - self.assertEqual(nodeType,'SRG') - self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']),5) + elif(nodeId == 'ROADM-A1-SRG3'): + # Test related to SRG1 + self.assertEqual(nodeType, 'SRG') + self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']), 5) self.assertIn({'tp-id': 'SRG3-CP-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-CP'}, res['network'][0]['node'][i]['ietf-network-topology:termination-point']) self.assertIn({'tp-id': 'SRG3-PP1-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-PP'}, res['network'][0]['node'][i]['ietf-network-topology:termination-point']) listNode.remove(nodeId) - elif(nodeId=='ROADM-A1-DEG1'): - #Test related to DEG1 - self.assertEqual(nodeType,'DEGREE') + elif(nodeId == 'ROADM-A1-DEG1'): + # Test related to DEG1 + self.assertEqual(nodeType, 'DEGREE') self.assertIn({'tp-id': 'DEG1-TTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-TTP'}, res['network'][0]['node'][i]['ietf-network-topology:termination-point']) self.assertIn({'tp-id': 'DEG1-CTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-CTP'}, res['network'][0]['node'][i]['ietf-network-topology:termination-point']) listNode.remove(nodeId) - elif(nodeId=='ROADM-A1-DEG2'): - #Test related to DEG2 - self.assertEqual(nodeType,'DEGREE') + elif(nodeId == 'ROADM-A1-DEG2'): + # Test related to DEG2 + self.assertEqual(nodeType, 'DEGREE') self.assertIn({'tp-id': 'DEG2-TTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-TTP'}, res['network'][0]['node'][i]['ietf-network-topology:termination-point']) self.assertIn({'tp-id': 'DEG2-CTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-CTP'}, @@ -1314,95 +1317,98 @@ class TransportPCEtesting(unittest.TestCase): listNode.remove(nodeId) else: self.assertFalse(True) - self.assertEqual(len(listNode),0) + self.assertEqual(len(listNode), 0) def test_39_disconnect_ROADM_XPDRA_link(self): - #Link-1 + # Link-1 url = ("{}/config/ietf-network:networks/network/openroadm-topology/ietf-network-topology:" "link/XPDR-A1-XPDR1-XPDR1-NETWORK1toROADM-A1-SRG1-SRG1-PP1-TXRX" - .format(self.restconf_baseurl)) + .format(self.restconf_baseurl)) data = {} headers = {'content-type': 'application/json'} response = requests.request( - "DELETE", url, data=json.dumps(data), headers=headers, - auth=('admin', 'admin')) + "DELETE", url, data=json.dumps(data), headers=headers, + auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) - #Link-2 + # Link-2 url = ("{}/config/ietf-network:networks/network/openroadm-topology/ietf-network-topology:" "link/ROADM-A1-SRG1-SRG1-PP1-TXRXtoXPDR-A1-XPDR1-XPDR1-NETWORK1" - .format(self.restconf_baseurl)) + .format(self.restconf_baseurl)) data = {} headers = {'content-type': 'application/json'} response = requests.request( - "DELETE", url, data=json.dumps(data), headers=headers, - auth=('admin', 'admin')) + "DELETE", url, data=json.dumps(data), headers=headers, + auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) def test_40_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')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() - nbLink=len(res['network'][0]['ietf-network-topology:link']) + nbLink = len(res['network'][0]['ietf-network-topology:link']) self.assertEqual(nbLink, 16) - expressLink=['ROADM-A1-DEG2-DEG2-CTP-TXRXtoROADM-A1-DEG1-DEG1-CTP-TXRX','ROADM-A1-DEG1-DEG1-CTP-TXRXtoROADM-A1-DEG2-DEG2-CTP-TXRX'] - addLink=['ROADM-A1-SRG1-SRG1-CP-TXRXtoROADM-A1-DEG2-DEG2-CTP-TXRX','ROADM-A1-SRG1-SRG1-CP-TXRXtoROADM-A1-DEG1-DEG1-CTP-TXRX', - 'ROADM-A1-SRG3-SRG3-CP-TXRXtoROADM-A1-DEG2-DEG2-CTP-TXRX','ROADM-A1-SRG3-SRG3-CP-TXRXtoROADM-A1-DEG1-DEG1-CTP-TXRX'] - dropLink=['ROADM-A1-DEG1-DEG1-CTP-TXRXtoROADM-A1-SRG1-SRG1-CP-TXRX','ROADM-A1-DEG2-DEG2-CTP-TXRXtoROADM-A1-SRG1-SRG1-CP-TXRX', - 'ROADM-A1-DEG1-DEG1-CTP-TXRXtoROADM-A1-SRG3-SRG3-CP-TXRX','ROADM-A1-DEG2-DEG2-CTP-TXRXtoROADM-A1-SRG3-SRG3-CP-TXRX'] + expressLink = ['ROADM-A1-DEG2-DEG2-CTP-TXRXtoROADM-A1-DEG1-DEG1-CTP-TXRX', + 'ROADM-A1-DEG1-DEG1-CTP-TXRXtoROADM-A1-DEG2-DEG2-CTP-TXRX'] + addLink = ['ROADM-A1-SRG1-SRG1-CP-TXRXtoROADM-A1-DEG2-DEG2-CTP-TXRX', 'ROADM-A1-SRG1-SRG1-CP-TXRXtoROADM-A1-DEG1-DEG1-CTP-TXRX', + 'ROADM-A1-SRG3-SRG3-CP-TXRXtoROADM-A1-DEG2-DEG2-CTP-TXRX', 'ROADM-A1-SRG3-SRG3-CP-TXRXtoROADM-A1-DEG1-DEG1-CTP-TXRX'] + dropLink = ['ROADM-A1-DEG1-DEG1-CTP-TXRXtoROADM-A1-SRG1-SRG1-CP-TXRX', 'ROADM-A1-DEG2-DEG2-CTP-TXRXtoROADM-A1-SRG1-SRG1-CP-TXRX', + 'ROADM-A1-DEG1-DEG1-CTP-TXRXtoROADM-A1-SRG3-SRG3-CP-TXRX', 'ROADM-A1-DEG2-DEG2-CTP-TXRXtoROADM-A1-SRG3-SRG3-CP-TXRX'] roadmtoroadmLink = 0 - for i in range(0,nbLink): - if (res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type']=='EXPRESS-LINK'): + for i in range(0, nbLink): + if (res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type'] == 'EXPRESS-LINK'): link_id = res['network'][0]['ietf-network-topology:link'][i]['link-id'] - find= link_id in expressLink + find = link_id in expressLink self.assertEqual(find, True) expressLink.remove(link_id) - elif (res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type']=='ADD-LINK'): + elif (res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type'] == 'ADD-LINK'): link_id = res['network'][0]['ietf-network-topology:link'][i]['link-id'] - find= link_id in addLink + find = link_id in addLink self.assertEqual(find, True) addLink.remove(link_id) - elif (res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type']=='DROP-LINK'): + elif (res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type'] == 'DROP-LINK'): link_id = res['network'][0]['ietf-network-topology:link'][i]['link-id'] - find= link_id in dropLink + find = link_id in dropLink self.assertEqual(find, True) dropLink.remove(link_id) else: roadmtoroadmLink += 1 - self.assertEqual(len(expressLink),0) - self.assertEqual(len(addLink),0) - self.assertEqual(len(dropLink),0) + self.assertEqual(len(expressLink), 0) + self.assertEqual(len(addLink), 0) + self.assertEqual(len(dropLink), 0) self.assertEqual(roadmtoroadmLink, 6) - for i in range(0,nbLink): - self.assertNotEqual(res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type'],'XPONDER-OUTPUT') - self.assertNotEqual(res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type'],'XPONDER-INPUT') + for i in range(0, nbLink): + self.assertNotEqual(res['network'][0]['ietf-network-topology:link'][i] + ['org-openroadm-common-network:link-type'], 'XPONDER-OUTPUT') + self.assertNotEqual(res['network'][0]['ietf-network-topology:link'][i] + ['org-openroadm-common-network:link-type'], 'XPONDER-INPUT') def test_41_disconnect_ROADMA(self): url = ("{}/config/network-topology:" - "network-topology/topology/topology-netconf/node/ROADM-A1" + "network-topology/topology/topology-netconf/node/ROADM-A1" .format(self.restconf_baseurl)) data = {} headers = {'content-type': 'application/json'} response = requests.request( - "DELETE", url, data=json.dumps(data), headers=headers, - auth=('admin', 'admin')) + "DELETE", url, data=json.dumps(data), headers=headers, + auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) - #Delete in the clli-network + # Delete in the clli-network url = ("{}/config/ietf-network:networks/network/clli-network/node/NodeA" .format(self.restconf_baseurl)) data = {} headers = {'content-type': 'application/json'} response = requests.request( - "DELETE", url, data=json.dumps(data), headers=headers, - auth=('admin', 'admin')) + "DELETE", url, data=json.dumps(data), headers=headers, + auth=('admin', 'admin')) self.assertEqual(response.status_code, requests.codes.ok) def test_42_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')) @@ -1412,7 +1418,7 @@ class TransportPCEtesting(unittest.TestCase): def test_43_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')) @@ -1422,15 +1428,16 @@ class TransportPCEtesting(unittest.TestCase): def test_44_check_roadm2roadm_link_persistence(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')) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() - nbLink=len(res['network'][0]['ietf-network-topology:link']) + nbLink = len(res['network'][0]['ietf-network-topology:link']) self.assertNotIn('node', res['network'][0]) self.assertEqual(nbLink, 6) + if __name__ == "__main__": unittest.main(verbosity=2) diff --git a/tests/transportpce_tests/2.2.1/test_utils.py b/tests/transportpce_tests/2.2.1/test_utils.py index 612a99171..2427cf4e2 100644 --- a/tests/transportpce_tests/2.2.1/test_utils.py +++ b/tests/transportpce_tests/2.2.1/test_utils.py @@ -1,72 +1,79 @@ import os import subprocess -honeynode_executable=os.path.join( - os.path.dirname(os.path.realpath(__file__)), - "..", "..", "honeynode", "2.2.1", "honeynode-distribution", "target", "honeynode-distribution-1.19.04-hc", - "honeynode-distribution-1.19.04", "honeycomb-tpce") -samples_directory=os.path.join( - os.path.dirname(os.path.realpath(__file__)), - "..", "..", "sample_configs", "openroadm", "2.2.1") +honeynode_executable = os.path.join( + os.path.dirname(os.path.realpath(__file__)), + "..", "..", "honeynode", "2.2.1", "honeynode-distribution", "target", "honeynode-distribution-1.19.04-hc", + "honeynode-distribution-1.19.04", "honeycomb-tpce") +samples_directory = os.path.join( + os.path.dirname(os.path.realpath(__file__)), + "..", "..", "sample_configs", "openroadm", "2.2.1") + def start_xpdra_honeynode(): if os.path.isfile(honeynode_executable): with open('honeynode1.log', 'w') as outfile: return subprocess.Popen( - [honeynode_executable, "17840", os.path.join(samples_directory,"oper-XPDRA.xml")], + [honeynode_executable, "17840", os.path.join(samples_directory, "oper-XPDRA.xml")], stdout=outfile, stderr=outfile) + def start_roadma_honeynode(): if os.path.isfile(honeynode_executable): with open('honeynode2.log', 'w') as outfile: return subprocess.Popen( - [honeynode_executable, "17841", os.path.join(samples_directory,"oper-ROADMA.xml")], + [honeynode_executable, "17841", os.path.join(samples_directory, "oper-ROADMA.xml")], stdout=outfile, stderr=outfile) + def start_roadmb_honeynode(): if os.path.isfile(honeynode_executable): with open('honeynode5.log', 'w') as outfile: return subprocess.Popen( - [honeynode_executable, "17842", os.path.join(samples_directory,"oper-ROADMB.xml")], + [honeynode_executable, "17842", os.path.join(samples_directory, "oper-ROADMB.xml")], stdout=outfile, stderr=outfile) + def start_roadmc_honeynode(): if os.path.isfile(honeynode_executable): with open('honeynode3.log', 'w') as outfile: return subprocess.Popen( - [honeynode_executable, "17843", os.path.join(samples_directory,"oper-ROADMC.xml")], + [honeynode_executable, "17843", os.path.join(samples_directory, "oper-ROADMC.xml")], stdout=outfile, stderr=outfile) + def start_xpdrc_honeynode(): if os.path.isfile(honeynode_executable): with open('honeynode4.log', 'w') as outfile: return subprocess.Popen( - [honeynode_executable, "17844", os.path.join(samples_directory,"oper-XPDRC.xml")], + [honeynode_executable, "17844", os.path.join(samples_directory, "oper-XPDRC.xml")], stdout=outfile, stderr=outfile) + def start_spdra_honeynode(): if os.path.isfile(honeynode_executable): with open('honeynode6.log', 'w') as outfile: return subprocess.Popen( - [honeynode_executable, "17845", os.path.join(samples_directory,"oper-SPDRAv2.xml")], + [honeynode_executable, "17845", os.path.join(samples_directory, "oper-SPDRAv2.xml")], stdout=outfile, stderr=outfile) + def start_tpce(): if "USE_LIGHTY" in os.environ and os.environ['USE_LIGHTY'] == 'True': - print ("starting LIGHTY.IO TransportPCE build...") + print("starting LIGHTY.IO TransportPCE build...") executable = os.path.join( - os.path.dirname(os.path.realpath(__file__)), - "..", "..", "..", "lighty", "target", "lighty-transportpce-12.0.0-SNAPSHOT", - "clean-start-controller.sh") + os.path.dirname(os.path.realpath(__file__)), + "..", "..", "..", "lighty", "target", "lighty-transportpce-12.0.0-SNAPSHOT", + "clean-start-controller.sh") with open('odl.log', 'w') as outfile: return subprocess.Popen( ["sh", executable], stdout=outfile, stderr=outfile, stdin=open(os.devnull)) else: - print ("starting KARAF TransportPCE build...") + print("starting KARAF TransportPCE build...") executable = os.path.join( - os.path.dirname(os.path.realpath(__file__)), - "..", "..", "..", "karaf", "target", "assembly", "bin", "karaf") + os.path.dirname(os.path.realpath(__file__)), + "..", "..", "..", "karaf", "target", "assembly", "bin", "karaf") with open('odl.log', 'w') as outfile: return subprocess.Popen( ["sh", executable, "server"], stdout=outfile, stderr=outfile,