X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=tests%2Ftransportpce_tests%2F2.2.1%2Ftest_otn_topology.py;h=dd040f02f9491b2037f552e994cc5ef5254462f6;hb=c668b61cda0335795bb554acd2c85b744044780b;hp=4c1fb6e69a38f6aa4f5bafd304d85bfa5e2f401c;hpb=30434b53a9108db56e63f6743e149b8495a29b97;p=transportpce.git diff --git a/tests/transportpce_tests/2.2.1/test_otn_topology.py b/tests/transportpce_tests/2.2.1/test_otn_topology.py index 4c1fb6e69..dd040f02f 100644 --- a/tests/transportpce_tests/2.2.1/test_otn_topology.py +++ b/tests/transportpce_tests/2.2.1/test_otn_topology.py @@ -9,75 +9,37 @@ # http://www.apache.org/licenses/LICENSE-2.0 ############################################################################## -import json -import os -import psutil -import requests -import signal -import shutil -import subprocess -import time import unittest +import time import logging -import test_utils +import requests +from common import test_utils class TransportPCEtesting(unittest.TestCase): - honeynode_process1 = None - odl_process = None - restconf_baseurl = "http://localhost:8181/restconf" + processes = None @classmethod def setUpClass(cls): - print ("starting honeynode1...") - cls.honeynode_process1 = test_utils.start_spdra_honeynode() - time.sleep(20) - - print ("starting opendaylight...") - cls.odl_process = test_utils.start_tpce() - time.sleep(60) - print ("opendaylight started") + cls.processes = test_utils.start_tpce() + cls.processes = test_utils.start_sims(['spdra']) @classmethod def tearDownClass(cls): - for child in psutil.Process(cls.odl_process.pid).children(): - child.send_signal(signal.SIGINT) - child.wait() - cls.odl_process.send_signal(signal.SIGINT) - cls.odl_process.wait() - for child in psutil.Process(cls.honeynode_process1.pid).children(): - child.send_signal(signal.SIGINT) - child.wait() - cls.honeynode_process1.send_signal(signal.SIGINT) - cls.honeynode_process1.wait() + for process in cls.processes: + test_utils.shutdown_process(process) + print("all processes killed") def setUp(self): time.sleep(5) def test_01_connect_SPDR_SA1(self): - url = ("{}/config/network-topology:" - "network-topology/topology/topology-netconf/node/SPDR-SA1" - .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": {}}]} - 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) + response = test_utils.mount_device("SPDR-SA1", 'spdra') + self.assertEqual(response.status_code, requests.codes.created, test_utils.CODE_SHOULD_BE_201) time.sleep(10) - url = ("{}/operational/network-topology:" - "network-topology/topology/topology-netconf/node/SPDR-SA1" - .format(self.restconf_baseurl)) - response = requests.request( - "GET", url, headers=headers, auth=('admin', 'admin')) + + response = test_utils.get_netconf_oper_request("SPDR-SA1") self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertEqual( @@ -85,11 +47,8 @@ class TransportPCEtesting(unittest.TestCase): 'connected') def test_02_getClliNetwork(self): - 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')) + url = "{}/config/ietf-network:networks/network/clli-network" + response = test_utils.get_request(url) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() logging.info(res) @@ -97,38 +56,29 @@ class TransportPCEtesting(unittest.TestCase): self.assertEqual(res['network'][0]['node'][0]['org-openroadm-clli-network:clli'], 'NodeSA') def test_03_getOpenRoadmNetwork(self): - 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')) + url = "{}/config/ietf-network:networks/network/openroadm-network" + response = test_utils.get_request(url) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertEqual(res['network'][0]['node'][0]['node-id'], 'SPDR-SA1') self.assertEqual(res['network'][0]['node'][0]['supporting-node'][0]['network-ref'], 'clli-network') self.assertEqual(res['network'][0]['node'][0]['supporting-node'][0]['node-ref'], 'NodeSA') - self.assertEqual(res['network'][0]['node'][0]['org-openroadm-network:node-type'], 'XPONDER') + self.assertEqual(res['network'][0]['node'][0]['org-openroadm-common-network:node-type'], 'XPONDER') self.assertEqual(res['network'][0]['node'][0]['org-openroadm-network:model'], 'universal-switchponder') self.assertEqual(res['network'][0]['node'][0]['org-openroadm-network:vendor'], 'vendorA') self.assertEqual(res['network'][0]['node'][0]['org-openroadm-network:ip'], '1.2.3.4') def test_04_getLinks_OpenroadmTopology(self): - url = ("{}/config/ietf-network:networks/network/openroadm-topology" - .format(self.restconf_baseurl)) - headers = {'content-type': 'application/json'} - response = requests.request( - "GET", url, headers=headers, auth=('admin', 'admin')) + url = "{}/config/ietf-network:networks/network/openroadm-topology" + response = test_utils.get_request(url) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() # Tests related to links self.assertNotIn('ietf-network-topology:link', res['network'][0]) def test_05_getNodes_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')) + url = "{}/config/ietf-network:networks/network/openroadm-topology" + response = test_utils.get_request(url) res = response.json() # Tests related to nodes self.assertEqual(response.status_code, requests.codes.ok) @@ -138,40 +88,44 @@ class TransportPCEtesting(unittest.TestCase): self.assertEqual(nbNode, 2) listNode = ['SPDR-SA1-XPDR1', 'SPDR-SA1-XPDR2'] for i in range(0, nbNode): - nodeType = res['network'][0]['node'][i]['org-openroadm-network-topology:node-type'] + nodeType = res['network'][0]['node'][i]['org-openroadm-common-network:node-type'] nodeId = res['network'][0]['node'][i]['node-id'] - if(nodeId == 'SPDR-SA1-XPDR1'): + if (nodeId == 'SPDR-SA1-XPDR1'): self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'SPDR-SA1'}, res['network'][0]['node'][i]['supporting-node']) + self.assertIn({'network-ref': 'clli-network', 'node-ref': 'NodeSA'}, + res['network'][0]['node'][i]['supporting-node']) self.assertEqual(nodeType, 'XPONDER') nbTps = len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']) client = 0 network = 0 for j in range(0, nbTps): - tpType = res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['org-openroadm-network-topology:tp-type'] + tpType = res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['org-openroadm-common-network:tp-type'] tpId = res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['tp-id'] if (tpType == 'XPONDER-CLIENT'): client += 1 elif (tpType == 'XPONDER-NETWORK'): network += 1 - self.assertTrue(client == 4) + self.assertTrue(client == 0) self.assertTrue(network == 1) listNode.remove(nodeId) - if(nodeId == 'SPDR-SA1-XPDR2'): + elif (nodeId == 'SPDR-SA1-XPDR2'): self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'SPDR-SA1'}, res['network'][0]['node'][i]['supporting-node']) + self.assertIn({'network-ref': 'clli-network', 'node-ref': 'NodeSA'}, + res['network'][0]['node'][i]['supporting-node']) self.assertEqual(nodeType, 'XPONDER') nbTps = len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']) client = 0 network = 0 for j in range(0, nbTps): - tpType = res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['org-openroadm-network-topology:tp-type'] + tpType = res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['org-openroadm-common-network:tp-type'] tpId = res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['tp-id'] if (tpType == 'XPONDER-CLIENT'): client += 1 elif (tpType == 'XPONDER-NETWORK'): network += 1 - self.assertTrue(client == 4) + self.assertTrue(client == 0) self.assertTrue(network == 4) listNode.remove(nodeId) else: @@ -179,21 +133,15 @@ class TransportPCEtesting(unittest.TestCase): self.assertEqual(len(listNode), 0) def test_06_getLinks_OtnTopology(self): - url = ("{}/config/ietf-network:networks/network/otn-topology" - .format(self.restconf_baseurl)) - headers = {'content-type': 'application/json'} - response = requests.request( - "GET", url, headers=headers, auth=('admin', 'admin')) + url = "{}/config/ietf-network:networks/network/otn-topology" + response = test_utils.get_request(url) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertNotIn('ietf-network-topology:link', res['network'][0]) def test_07_getNodes_OtnTopology(self): - url = ("{}/config/ietf-network:networks/network/otn-topology" - .format(self.restconf_baseurl)) - headers = {'content-type': 'application/json'} - response = requests.request( - "GET", url, headers=headers, auth=('admin', 'admin')) + url = "{}/config/ietf-network:networks/network/otn-topology" + response = test_utils.get_request(url) res = response.json() self.assertEqual(response.status_code, requests.codes.ok) nbNode = len(res['network'][0]['node']) @@ -202,34 +150,45 @@ class TransportPCEtesting(unittest.TestCase): for i in range(0, nbNode): nodeId = res['network'][0]['node'][i]['node-id'] if(nodeId == 'SPDR-SA1-XPDR1'): - nodeType = res['network'][0]['node'][i]['org-openroadm-otn-network-topology:node-type'] + nodeType = res['network'][0]['node'][i]['org-openroadm-common-network:node-type'] self.assertEqual(nodeType, 'MUXPDR') self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'SPDR-SA1'}, res['network'][0]['node'][i]['supporting-node']) self.assertIn({'network-ref': 'openroadm-topology', 'node-ref': 'SPDR-SA1-XPDR1'}, res['network'][0]['node'][i]['supporting-node']) - self.assertEqual(res['network'][0]['node'][i]['org-openroadm-otn-network-topology:xpdr-attributes']['xpdr-number'], 1) + self.assertIn({'network-ref': 'clli-network', 'node-ref': 'NodeSA'}, + res['network'][0]['node'][i]['supporting-node']) + self.assertEqual(res['network'][0]['node'][i] + ['org-openroadm-otn-network-topology:xpdr-attributes']['xpdr-number'], 1) nbTps = len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']) client = 0 network = 0 for j in range(0, nbTps): - tpType = res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['org-openroadm-otn-network-topology:tp-type'] + tpType = res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['org-openroadm-common-network:tp-type'] tpId = res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['tp-id'] if (tpType == 'XPONDER-CLIENT'): client += 1 - self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['org-openroadm-otn-network-topology:tp-supported-interfaces']['supported-interface-capability'][0]['if-cap-type'], 'org-openroadm-port-types:if-10GE-ODU2e') - self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['org-openroadm-otn-network-topology:xpdr-tp-port-connection-attributes']['rate'], 'org-openroadm-otn-common-types:ODU2e') + self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['org-openroadm-otn-network-topology:tp-supported-interfaces'] + ['supported-interface-capability'][0]['if-cap-type'], 'org-openroadm-port-types:if-10GE-ODU2e') + self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j] + ['org-openroadm-otn-network-topology:xpdr-tp-port-connection-attributes']['rate'], 'org-openroadm-otn-common-types:ODU2e') elif (tpType == 'XPONDER-NETWORK'): network += 1 - self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['org-openroadm-otn-network-topology:tp-supported-interfaces']['supported-interface-capability'][0]['if-cap-type'], 'org-openroadm-port-types:if-OCH-OTU4-ODU4') - self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['org-openroadm-otn-network-topology:xpdr-tp-port-connection-attributes']['rate'], 'org-openroadm-otn-common-types:ODU4') - self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['supporting-termination-point'][0]['network-ref'], 'openroadm-topology') - self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['supporting-termination-point'][0]['node-ref'], 'SPDR-SA1-XPDR1') - self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['supporting-termination-point'][0]['tp-ref'], 'XPDR1-NETWORK1') + self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['org-openroadm-otn-network-topology:tp-supported-interfaces'] + ['supported-interface-capability'][0]['if-cap-type'], 'org-openroadm-port-types:if-OCH-OTU4-ODU4') + self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j] + ['org-openroadm-otn-network-topology:xpdr-tp-port-connection-attributes']['rate'], 'org-openroadm-otn-common-types:ODU4') + self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'] + [j]['supporting-termination-point'][0]['network-ref'], 'openroadm-topology') + self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'] + [j]['supporting-termination-point'][0]['node-ref'], 'SPDR-SA1-XPDR1') + self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'] + [j]['supporting-termination-point'][0]['tp-ref'], 'XPDR1-NETWORK1') self.assertTrue(client == 4) self.assertTrue(network == 1) listNode.remove(nodeId) - nbNbl = len(res['network'][0]['node'][i]['org-openroadm-otn-network-topology:switching-pools']['odu-switching-pools'][0]['non-blocking-list']) + nbNbl = len(res['network'][0]['node'][i]['org-openroadm-otn-network-topology:switching-pools'] + ['odu-switching-pools'][0]['non-blocking-list']) self.assertEqual(nbNbl, 4) for k in range(0, nbNbl): nbl = res['network'][0]['node'][i]['org-openroadm-otn-network-topology:switching-pools']['odu-switching-pools'][0]['non-blocking-list'][k] @@ -240,34 +199,45 @@ class TransportPCEtesting(unittest.TestCase): self.assertIn('XPDR1-CLIENT1', nbl['tp-list']) self.assertNotIn('XPDR1-CLIENT2', nbl['tp-list']) elif(nodeId == 'SPDR-SA1-XPDR2'): - nodeType = res['network'][0]['node'][i]['org-openroadm-otn-network-topology:node-type'] + nodeType = res['network'][0]['node'][i]['org-openroadm-common-network:node-type'] self.assertEqual(nodeType, 'SWITCH') self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'SPDR-SA1'}, res['network'][0]['node'][i]['supporting-node']) self.assertIn({'network-ref': 'openroadm-topology', 'node-ref': 'SPDR-SA1-XPDR2'}, res['network'][0]['node'][i]['supporting-node']) - self.assertEqual(res['network'][0]['node'][i]['org-openroadm-otn-network-topology:xpdr-attributes']['xpdr-number'], 2) + self.assertIn({'network-ref': 'clli-network', 'node-ref': 'NodeSA'}, + res['network'][0]['node'][i]['supporting-node']) + self.assertEqual(res['network'][0]['node'][i] + ['org-openroadm-otn-network-topology:xpdr-attributes']['xpdr-number'], 2) nbTps = len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']) client = 0 network = 0 for j in range(0, nbTps): - tpType = res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['org-openroadm-otn-network-topology:tp-type'] + tpType = res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['org-openroadm-common-network:tp-type'] tpId = res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['tp-id'] if (tpType == 'XPONDER-CLIENT'): client += 1 - self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['org-openroadm-otn-network-topology:tp-supported-interfaces']['supported-interface-capability'][0]['if-cap-type'], 'org-openroadm-port-types:if-100GE-ODU4') - self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['org-openroadm-otn-network-topology:xpdr-tp-port-connection-attributes']['rate'], 'org-openroadm-otn-common-types:ODU4') + self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['org-openroadm-otn-network-topology:tp-supported-interfaces'] + ['supported-interface-capability'][0]['if-cap-type'], 'org-openroadm-port-types:if-100GE-ODU4') + self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j] + ['org-openroadm-otn-network-topology:xpdr-tp-port-connection-attributes']['rate'], 'org-openroadm-otn-common-types:ODU4') elif (tpType == 'XPONDER-NETWORK'): network += 1 - self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['org-openroadm-otn-network-topology:tp-supported-interfaces']['supported-interface-capability'][0]['if-cap-type'], 'org-openroadm-port-types:if-OCH-OTU4-ODU4') - self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['org-openroadm-otn-network-topology:xpdr-tp-port-connection-attributes']['rate'], 'org-openroadm-otn-common-types:ODU4') - self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['supporting-termination-point'][0]['network-ref'], 'openroadm-topology') - self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['supporting-termination-point'][0]['node-ref'], 'SPDR-SA1-XPDR2') - self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['supporting-termination-point'][0]['tp-ref'], tpId) + self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['org-openroadm-otn-network-topology:tp-supported-interfaces'] + ['supported-interface-capability'][0]['if-cap-type'], 'org-openroadm-port-types:if-OCH-OTU4-ODU4') + self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j] + ['org-openroadm-otn-network-topology:xpdr-tp-port-connection-attributes']['rate'], 'org-openroadm-otn-common-types:ODU4') + self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'] + [j]['supporting-termination-point'][0]['network-ref'], 'openroadm-topology') + self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'] + [j]['supporting-termination-point'][0]['node-ref'], 'SPDR-SA1-XPDR2') + self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'] + [j]['supporting-termination-point'][0]['tp-ref'], tpId) self.assertTrue(client == 4) self.assertTrue(network == 4) listNode.remove(nodeId) - nbNbl = len(res['network'][0]['node'][i]['org-openroadm-otn-network-topology:switching-pools']['odu-switching-pools'][0]['non-blocking-list']) + nbNbl = len(res['network'][0]['node'][i]['org-openroadm-otn-network-topology:switching-pools'] + ['odu-switching-pools'][0]['non-blocking-list']) self.assertEqual(nbNbl, 1) nbl = res['network'][0]['node'][i]['org-openroadm-otn-network-topology:switching-pools']['odu-switching-pools'][0]['non-blocking-list'][0] self.assertIn('XPDR2-NETWORK1', nbl['tp-list']) @@ -283,22 +253,12 @@ class TransportPCEtesting(unittest.TestCase): self.assertEqual(len(listNode), 0) def test_08_disconnect_SPDR_SA1(self): - url = ("{}/config/network-topology:" - "network-topology/topology/topology-netconf/node/SPDR-SA1" - .format(self.restconf_baseurl)) - data = {} - headers = {'content-type': 'application/json'} - response = requests.request( - "DELETE", url, data=json.dumps(data), headers=headers, - auth=('admin', 'admin')) - self.assertEqual(response.status_code, requests.codes.ok) + response = test_utils.unmount_device("SPDR-SA1") + self.assertEqual(response.status_code, requests.codes.ok, test_utils.CODE_SHOULD_BE_200) def test_09_getClliNetwork(self): - 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')) + url = "{}/config/ietf-network:networks/network/clli-network" + response = test_utils.get_request(url) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() nbNode = len(res['network'][0]['node']) @@ -306,30 +266,21 @@ class TransportPCEtesting(unittest.TestCase): self.assertEqual(res['network'][0]['node'][0]['org-openroadm-clli-network:clli'], 'NodeSA') def test_10_getOpenRoadmNetwork(self): - 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')) + url = "{}/config/ietf-network:networks/network/openroadm-network" + response = test_utils.get_request(url) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertNotIn('node', res['network'][0]) def test_11_getNodes_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')) + url = "{}/config/ietf-network:networks/network/openroadm-topology" + response = test_utils.get_request(url) res = response.json() self.assertNotIn('node', res['network'][0]) def test_12_getNodes_OtnTopology(self): - url = ("{}/config/ietf-network:networks/network/otn-topology" - .format(self.restconf_baseurl)) - headers = {'content-type': 'application/json'} - response = requests.request( - "GET", url, headers=headers, auth=('admin', 'admin')) + url = "{}/config/ietf-network:networks/network/otn-topology" + response = test_utils.get_request(url) res = response.json() self.assertNotIn('node', res['network'][0])