def test_17_xpdr_device_disconnected(self):
response = test_utils_rfc8040.check_device_connection("XPDRA01")
self.assertEqual(response['status_code'], requests.codes.conflict)
- self.assertIn(
- {"error-tag": "data-missing",
- "error-message": "Request could not be completed because the relevant data model content does not exist",
- "error-type": "protocol"},
- response['connection-status'])
+ self.assertIn(response['connection-status']['error-type'], ('protocol', 'application'))
+ self.assertEqual(response['connection-status']['error-tag'], 'data-missing')
+ self.assertEqual(response['connection-status']['error-message'],
+ 'Request could not be completed because the relevant data model content does not exist')
def test_18_xpdr_device_not_connected(self):
response = test_utils_rfc8040.get_portmapping_node_info("XPDRA01")
self.assertEqual(response['status_code'], requests.codes.conflict)
- self.assertIn(
- {"error-tag": "data-missing",
- "error-message": "Request could not be completed because the relevant data model content does not exist",
- "error-type": "protocol"},
- response['node-info'])
+ self.assertIn(response['node-info']['error-type'], ('protocol', 'application'))
+ self.assertEqual(response['node-info']['error-tag'], 'data-missing')
+ self.assertEqual(response['node-info']['error-message'],
+ 'Request could not be completed because the relevant data model content does not exist')
def test_19_rdm_device_disconnection(self):
response = test_utils_rfc8040.unmount_device("ROADMA01")
def test_20_rdm_device_disconnected(self):
response = test_utils_rfc8040.check_device_connection("ROADMA01")
self.assertEqual(response['status_code'], requests.codes.conflict)
- self.assertIn(
- {"error-tag": "data-missing",
- "error-message": "Request could not be completed because the relevant data model content does not exist",
- "error-type": "protocol"},
- response['connection-status'])
+ self.assertIn(response['connection-status']['error-type'], ('protocol', 'application'))
+ self.assertEqual(response['connection-status']['error-tag'], 'data-missing')
+ self.assertEqual(response['connection-status']['error-message'],
+ 'Request could not be completed because the relevant data model content does not exist')
def test_21_rdm_device_not_connected(self):
response = test_utils_rfc8040.get_portmapping_node_info("ROADMA01")
self.assertEqual(response['status_code'], requests.codes.conflict)
- self.assertIn(
- {"error-tag": "data-missing",
- "error-message": "Request could not be completed because the relevant data model content does not exist",
- "error-type": "protocol"},
- response['node-info'])
+ self.assertIn(response['node-info']['error-type'], ('protocol', 'application'))
+ self.assertEqual(response['node-info']['error-tag'], 'data-missing')
+ self.assertEqual(response['node-info']['error-message'],
+ 'Request could not be completed because the relevant data model content does not exist')
if __name__ == "__main__":
# Verify the termination points of the ROADMA
def test_02_compare_Openroadm_topology_portmapping_rdm(self):
- responseTopo = test_utils_rfc8040.get_request(test_utils_rfc8040.URL_CONFIG_ORDM_TOPO)
- resTopo = responseTopo.json()
- for val in resTopo['ietf-network:network'][0]['node']:
+ resTopo = test_utils_rfc8040.get_ietf_network_request('openroadm-topology', 'config')
+ self.assertEqual(resTopo['status_code'], requests.codes.ok)
+ for val in resTopo['network'][0]['node']:
nodeId = val['node-id']
nodeMapId = nodeId.split("-")[0]
response = test_utils_rfc8040.get_portmapping_node_info(nodeMapId)
sys.path.append('transportpce_tests/common/')
# pylint: disable=wrong-import-position
# pylint: disable=import-error
-import test_utils # nopep8
+import test_utils_rfc8040 # nopep8
class TransportPCETopologyTesting(unittest.TestCase):
@classmethod
def setUpClass(cls):
- cls.processes = test_utils.start_tpce()
- cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION), ('roadma', cls.NODE_VERSION),
- ('roadmb', cls.NODE_VERSION), ('roadmc', cls.NODE_VERSION)])
+ cls.processes = test_utils_rfc8040.start_tpce()
+ cls.processes = test_utils_rfc8040.start_sims([('xpdra', cls.NODE_VERSION), ('roadma', cls.NODE_VERSION),
+ ('roadmb', cls.NODE_VERSION), ('roadmc', cls.NODE_VERSION)])
@classmethod
def tearDownClass(cls):
# pylint: disable=not-an-iterable
for process in cls.processes:
- test_utils.shutdown_process(process)
+ test_utils_rfc8040.shutdown_process(process)
print("all processes killed")
def setUp(self):
time.sleep(5)
def test_01_connect_ROADMA(self):
- response = test_utils.mount_device("ROADMA01", ('roadma', self.NODE_VERSION))
- self.assertEqual(response.status_code, requests.codes.created, test_utils.CODE_SHOULD_BE_201)
+ response = test_utils_rfc8040.mount_device("ROADMA01", ('roadma', self.NODE_VERSION))
+ self.assertEqual(response.status_code, requests.codes.created, test_utils_rfc8040.CODE_SHOULD_BE_201)
def test_02_getClliNetwork(self):
- response = test_utils.get_clli_net_request()
- 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')
+ response = test_utils_rfc8040.get_ietf_network_request('clli-network', 'config')
+ self.assertEqual(response['status_code'], requests.codes.ok)
+ self.assertEqual(response['network'][0]['node'][0]['node-id'], 'NodeA')
+ self.assertEqual(response['network'][0]['node'][0]['org-openroadm-clli-network:clli'], 'NodeA')
def test_03_getOpenRoadmNetwork(self):
- response = test_utils.get_ordm_net_request()
- 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')
+ response = test_utils_rfc8040.get_ietf_network_request('openroadm-network', 'config')
+ self.assertEqual(response['status_code'], requests.codes.ok)
+ self.assertEqual(response['network'][0]['node'][0]['node-id'], 'ROADMA01')
+ self.assertEqual(response['network'][0]['node'][0]['supporting-node'][0]['network-ref'], 'clli-network')
+ self.assertEqual(response['network'][0]['node'][0]['supporting-node'][0]['node-ref'], 'NodeA')
+ self.assertEqual(response['network'][0]['node'][0]['org-openroadm-common-network:node-type'], 'ROADM')
+ self.assertEqual(response['network'][0]['node'][0]['org-openroadm-network:model'], '2')
def test_04_getLinks_OpenroadmTopology(self):
- # pylint: disable=redundant-unittest-assert
- response = test_utils.get_ordm_topo_request("")
- self.assertEqual(response.status_code, requests.codes.ok)
- res = response.json()
+ response = test_utils_rfc8040.get_ietf_network_request('openroadm-topology', 'config')
+ self.assertEqual(response['status_code'], requests.codes.ok)
# Tests related to links
- nbLink = len(res['network'][0]['ietf-network-topology:link'])
- self.assertEqual(nbLink, 10)
+ self.assertEqual(len(response['network'][0]['ietf-network-topology:link']), 10)
check_list = {'EXPRESS-LINK': ['ROADMA01-DEG2-DEG2-CTP-TXRXtoROADMA01-DEG1-DEG1-CTP-TXRX',
'ROADMA01-DEG1-DEG1-CTP-TXRXtoROADMA01-DEG2-DEG2-CTP-TXRX'],
'ADD-LINK': ['ROADMA01-SRG1-SRG1-CP-TXRXtoROADMA01-DEG2-DEG2-CTP-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']
- linkType = res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type']
- if linkType in check_list:
- find = linkId in check_list[linkType]
- self.assertEqual(find, True)
- (check_list[linkType]).remove(linkId)
- else:
- self.assertFalse(True)
+ for val in response['network'][0]['ietf-network-topology:link']:
+ linkId = val['link-id']
+ linkType = val['org-openroadm-common-network:link-type']
+ self.assertIn(linkType, check_list)
+ find = linkId in check_list[linkType]
+ self.assertEqual(find, True)
+ (check_list[linkType]).remove(linkId)
for val in check_list.values():
self.assertEqual(len(val), 0)
def test_05_getNodes_OpenRoadmTopology(self):
- # pylint: disable=redundant-unittest-assert
- response = test_utils.get_ordm_topo_request("")
- res = response.json()
- # Tests related to nodes
- self.assertEqual(response.status_code, requests.codes.ok)
- nbNode = len(res['network'][0]['node'])
- self.assertEqual(nbNode, 4)
+ response = test_utils_rfc8040.get_ietf_network_request('openroadm-topology', 'config')
+ self.assertEqual(response['status_code'], requests.codes.ok)
+ self.assertEqual(len(response['network'][0]['node']), 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 in self.CHECK_DICT1:
- self.assertEqual(nodeType, self.CHECK_DICT1[nodeId]['node_type'])
- if self.CHECK_DICT1[nodeId]['node_type'] == 'SRG':
- self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']), 17)
- for item in self.CHECK_DICT1[nodeId]['checks_tp']:
- self.assertIn(item, res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
- self.assertIn({'network-ref': 'clli-network', 'node-ref': 'NodeA'},
- res['network'][0]['node'][i]['supporting-node'])
- self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADMA01'},
- res['network'][0]['node'][i]['supporting-node'])
- listNode.remove(nodeId)
- else:
- self.assertFalse(True)
+ for val in response['network'][0]['node']:
+ self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADMA01'}, val['supporting-node'])
+ nodeType = val['org-openroadm-common-network:node-type']
+ nodeId = val['node-id']
+ self.assertIn(nodeId, self.CHECK_DICT1)
+ self.assertEqual(nodeType, self.CHECK_DICT1[nodeId]['node_type'])
+ if self.CHECK_DICT1[nodeId]['node_type'] == 'SRG':
+ self.assertEqual(len(val['ietf-network-topology:termination-point']), 17)
+ for item in self.CHECK_DICT1[nodeId]['checks_tp']:
+ self.assertIn(item, val['ietf-network-topology:termination-point'])
+ self.assertIn({'network-ref': 'clli-network', 'node-ref': 'NodeA'}, val['supporting-node'])
+ self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADMA01'}, val['supporting-node'])
+ listNode.remove(nodeId)
self.assertEqual(len(listNode), 0)
def test_06_connect_XPDRA(self):
- response = test_utils.mount_device("XPDRA01", ('xpdra', self.NODE_VERSION))
- self.assertEqual(response.status_code, requests.codes.created, test_utils.CODE_SHOULD_BE_201)
+ response = test_utils_rfc8040.mount_device("XPDRA01", ('xpdra', self.NODE_VERSION))
+ self.assertEqual(response.status_code, requests.codes.created, test_utils_rfc8040.CODE_SHOULD_BE_201)
def test_07_getClliNetwork(self):
- response = test_utils.get_clli_net_request()
- 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')
+ response = test_utils_rfc8040.get_ietf_network_request('clli-network', 'config')
+ self.assertEqual(response['status_code'], requests.codes.ok)
+ self.assertEqual(response['network'][0]['node'][0]['node-id'], 'NodeA')
+ self.assertEqual(response['network'][0]['node'][0]['org-openroadm-clli-network:clli'], 'NodeA')
def test_08_getOpenRoadmNetwork(self):
# pylint: disable=redundant-unittest-assert
- response = test_utils.get_ordm_net_request()
- 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']
+ response = test_utils_rfc8040.get_ietf_network_request('openroadm-network', 'config')
+ self.assertEqual(response['status_code'], requests.codes.ok)
+ self.assertEqual(len(response['network'][0]['node']), 2)
+ for val in response['network'][0]['node']:
+ self.assertEqual(val['supporting-node'][0]['network-ref'], 'clli-network')
+ self.assertEqual(val['supporting-node'][0]['node-ref'], 'NodeA')
+ nodeId = val['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')
+ self.assertEqual(val['org-openroadm-common-network:node-type'], 'XPONDER')
+ self.assertEqual(val['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')
+ self.assertEqual(val['org-openroadm-common-network:node-type'], 'ROADM')
+ self.assertEqual(val['org-openroadm-network:model'], '2')
else:
self.assertFalse(True)
def test_09_getNodes_OpenRoadmTopology(self):
# pylint: disable=redundant-unittest-assert
- response = test_utils.get_ordm_topo_request("")
- 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)
+ response = test_utils_rfc8040.get_ietf_network_request('openroadm-topology', 'config')
+ self.assertEqual(response['status_code'], requests.codes.ok)
+ self.assertEqual(len(response['network'][0]['node']), 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']
+ for val in response['network'][0]['node']:
+ nodeType = val['org-openroadm-common-network:node-type']
+ nodeId = val['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.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'XPDRA01'}, val['supporting-node'])
+ self.assertIn({'network-ref': 'clli-network', 'node-ref': 'NodeA'}, val['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']
+ for val2 in val['ietf-network-topology:termination-point']:
+ tpType = val2['org-openroadm-common-network:tp-type']
+ tpId = val2['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.assertEqual(val2['transportpce-topology:associated-connection-map-port'], 'XPDR1-CLIENT3')
+ elif tpId == 'XPDR1-CLIENT3':
+ self.assertEqual(val2['transportpce-topology:associated-connection-map-port'], 'XPDR1-NETWORK2')
self.assertTrue(client == 4)
self.assertTrue(network == 2)
listNode.remove(nodeId)
elif nodeId in self.CHECK_DICT1:
self.assertEqual(nodeType, self.CHECK_DICT1[nodeId]['node_type'])
if self.CHECK_DICT1[nodeId]['node_type'] == 'SRG':
- self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']), 17)
+ self.assertEqual(len(val['ietf-network-topology:termination-point']), 17)
for item in self.CHECK_DICT1[nodeId]['checks_tp']:
- self.assertIn(item, res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
- self.assertIn({'network-ref': 'clli-network', 'node-ref': 'NodeA'},
- res['network'][0]['node'][i]['supporting-node'])
- self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADMA01'},
- res['network'][0]['node'][i]['supporting-node'])
+ self.assertIn(item, val['ietf-network-topology:termination-point'])
+ self.assertIn({'network-ref': 'clli-network', 'node-ref': 'NodeA'}, val['supporting-node'])
+ self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADMA01'}, val['supporting-node'])
listNode.remove(nodeId)
else:
self.assertFalse(True)
# Connect the tail XPDRA to ROADMA and vice versa
def test_10_connect_tail_xpdr_rdm(self):
# Connect the tail: XPDRA to ROADMA
- response = test_utils.connect_xpdr_to_rdm_request("XPDRA01", "1", "1",
- "ROADMA01", "1", "SRG1-PP1-TXRX")
+ response = test_utils_rfc8040.connect_xpdr_to_rdm_request(
+ {'xpdr-node': 'XPDRA01', 'xpdr-num': '1', 'network-num': '1',
+ 'rdm-node': 'ROADMA01', 'srg-num': '1', 'termination-point-num': 'SRG1-PP1-TXRX'})
self.assertEqual(response.status_code, requests.codes.ok)
def test_11_connect_tail_rdm_xpdr(self):
# Connect the tail: ROADMA to XPDRA
- response = test_utils.connect_rdm_to_xpdr_request("XPDRA01", "1", "1",
- "ROADMA01", "1", "SRG1-PP1-TXRX")
+ response = test_utils_rfc8040.connect_rdm_to_xpdr_request(
+ {'xpdr-node': 'XPDRA01', 'xpdr-num': '1', 'network-num': '1',
+ 'rdm-node': 'ROADMA01', 'srg-num': '1', 'termination-point-num': 'SRG1-PP1-TXRX'})
self.assertEqual(response.status_code, requests.codes.ok)
def test_12_getLinks_OpenRoadmTopology(self):
- # pylint: disable=redundant-unittest-assert
- response = test_utils.get_ordm_topo_request("")
- 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)
+ response = test_utils_rfc8040.get_ietf_network_request('openroadm-topology', 'config')
+ self.assertEqual(response['status_code'], requests.codes.ok)
+ self.assertEqual(len(response['network'][0]['ietf-network-topology:link']), 12)
check_list = {'EXPRESS-LINK': ['ROADMA01-DEG2-DEG2-CTP-TXRXtoROADMA01-DEG1-DEG1-CTP-TXRX',
'ROADMA01-DEG1-DEG1-CTP-TXRXtoROADMA01-DEG2-DEG2-CTP-TXRX'],
'ADD-LINK': ['ROADMA01-SRG1-SRG1-CP-TXRXtoROADMA01-DEG2-DEG2-CTP-TXRX',
'XPONDER-INPUT': ['ROADMA01-SRG1-SRG1-PP1-TXRXtoXPDRA01-XPDR1-XPDR1-NETWORK1'],
'XPONDER-OUTPUT': ['XPDRA01-XPDR1-XPDR1-NETWORK1toROADMA01-SRG1-SRG1-PP1-TXRX']
}
- for i in range(0, nbLink):
- linkId = res['network'][0]['ietf-network-topology:link'][i]['link-id']
- linkType = res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type']
- if linkType in check_list:
- find = linkId in check_list[linkType]
- self.assertEqual(find, True)
- (check_list[linkType]).remove(linkId)
- else:
- self.assertFalse(True)
+ for val in response['network'][0]['ietf-network-topology:link']:
+ linkId = val['link-id']
+ linkType = val['org-openroadm-common-network:link-type']
+ self.assertIn(linkType, check_list)
+ find = linkId in check_list[linkType]
+ self.assertEqual(find, True)
+ (check_list[linkType]).remove(linkId)
for val in check_list.values():
self.assertEqual(len(val), 0)
def test_13_connect_ROADMC(self):
- response = test_utils.mount_device("ROADMC01", ('roadmc', self.NODE_VERSION))
- self.assertEqual(response.status_code, requests.codes.created, test_utils.CODE_SHOULD_BE_201)
+ response = test_utils_rfc8040.mount_device("ROADMC01", ('roadmc', self.NODE_VERSION))
+ self.assertEqual(response.status_code, requests.codes.created, test_utils_rfc8040.CODE_SHOULD_BE_201)
def test_14_omsAttributes_ROADMA_ROADMC(self):
# Config ROADMA01-ROADMC01 oms-attributes
"fiber-type": "smf",
"SRLG-length": 100000,
"pmd": 0.5}]}}
- response = test_utils.add_oms_attr_request("ROADMA01-DEG1-DEG1-TTP-TXRXtoROADMC01-DEG2-DEG2-TTP-TXRX", data)
+ response = test_utils_rfc8040.add_oms_attr_request(
+ "ROADMA01-DEG1-DEG1-TTP-TXRXtoROADMC01-DEG2-DEG2-TTP-TXRX", data)
self.assertEqual(response.status_code, requests.codes.created)
def test_15_omsAttributes_ROADMC_ROADMA(self):
"fiber-type": "smf",
"SRLG-length": 100000,
"pmd": 0.5}]}}
- response = test_utils.add_oms_attr_request("ROADMC01-DEG2-DEG2-TTP-TXRXtoROADMA01-DEG1-DEG1-TTP-TXRX", data)
+ response = test_utils_rfc8040.add_oms_attr_request(
+ "ROADMC01-DEG2-DEG2-TTP-TXRXtoROADMA01-DEG1-DEG1-TTP-TXRX", data)
self.assertEqual(response.status_code, requests.codes.created)
def test_16_getClliNetwork(self):
- # pylint: disable=redundant-unittest-assert
- response = test_utils.get_clli_net_request()
- self.assertEqual(response.status_code, requests.codes.ok)
- res = response.json()
- nbNode = len(res['network'][0]['node'])
+ response = test_utils_rfc8040.get_ietf_network_request('clli-network', 'config')
+ self.assertEqual(response['status_code'], requests.codes.ok)
listNode = ['NodeA', 'NodeC']
- for i in range(0, nbNode):
- nodeId = res['network'][0]['node'][i]['node-id']
- if nodeId in listNode:
- self.assertEqual(res['network'][0]['node'][i]['org-openroadm-clli-network:clli'], nodeId)
- listNode.remove(nodeId)
- else:
- self.assertFalse(True)
+ for val in response['network'][0]['node']:
+ nodeId = val['node-id']
+ self.assertIn(nodeId, listNode)
+ self.assertEqual(val['org-openroadm-clli-network:clli'], nodeId)
+ listNode.remove(nodeId)
self.assertEqual(len(listNode), 0)
def test_17_getOpenRoadmNetwork(self):
- # pylint: disable=redundant-unittest-assert
- response = test_utils.get_ordm_net_request()
- self.assertEqual(response.status_code, requests.codes.ok)
- res = response.json()
- nbNode = len(res['network'][0]['node'])
- self.assertEqual(nbNode, 3)
+ response = test_utils_rfc8040.get_ietf_network_request('openroadm-network', 'config')
+ self.assertEqual(response['status_code'], requests.codes.ok)
+ self.assertEqual(len(response['network'][0]['node']), 3)
listNode = ['XPDRA01', 'ROADMA01', 'ROADMC01']
CHECK_LIST = {'XPDRA01': {'node-ref': 'NodeA', 'node-type': 'XPONDER', 'model': '1'},
'ROADMA01': {'node-ref': 'NodeA', 'node-type': 'ROADM', 'model': '2'},
'ROADMC01': {'node-ref': 'NodeC', 'node-type': 'ROADM', 'model': '2'}
}
- 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 in CHECK_LIST:
- self.assertEqual(res['network'][0]['node'][i]['supporting-node'][0]['node-ref'],
- CHECK_LIST[nodeId]['node-ref'])
- self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'],
- CHECK_LIST[nodeId]['node-type'])
- self.assertEqual(res['network'][0]['node'][i]['org-openroadm-network:model'],
- CHECK_LIST[nodeId]['model'])
- listNode.remove(nodeId)
- else:
- self.assertFalse(True)
+ for val in response['network'][0]['node']:
+ self.assertEqual(val['supporting-node'][0]['network-ref'], 'clli-network')
+ nodeId = val['node-id']
+ self.assertIn(nodeId, CHECK_LIST)
+ self.assertEqual(val['supporting-node'][0]['node-ref'],
+ CHECK_LIST[nodeId]['node-ref'])
+ self.assertEqual(val['org-openroadm-common-network:node-type'],
+ CHECK_LIST[nodeId]['node-type'])
+ self.assertEqual(val['org-openroadm-network:model'],
+ CHECK_LIST[nodeId]['model'])
+ listNode.remove(nodeId)
self.assertEqual(len(listNode), 0)
def test_18_getROADMLinkOpenRoadmTopology(self):
- # pylint: disable=redundant-unittest-assert
- response = test_utils.get_ordm_topo_request("")
- 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)
+ response = test_utils_rfc8040.get_ietf_network_request('openroadm-topology', 'config')
+ self.assertEqual(response['status_code'], requests.codes.ok)
+ self.assertEqual(len(response['network'][0]['ietf-network-topology:link']), 20)
check_list = {'EXPRESS-LINK': ['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',
'XPONDER-INPUT': ['ROADMA01-SRG1-SRG1-PP1-TXRXtoXPDRA01-XPDR1-XPDR1-NETWORK1'],
'XPONDER-OUTPUT': ['XPDRA01-XPDR1-XPDR1-NETWORK1toROADMA01-SRG1-SRG1-PP1-TXRX']
}
- for i in range(0, nbLink):
- linkId = res['network'][0]['ietf-network-topology:link'][i]['link-id']
- linkType = res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type']
- if linkType in check_list:
- find = linkId in check_list[linkType]
- self.assertEqual(find, True)
- (check_list[linkType]).remove(linkId)
- else:
- self.assertFalse(True)
+ for val in response['network'][0]['ietf-network-topology:link']:
+ linkId = val['link-id']
+ linkType = val['org-openroadm-common-network:link-type']
+ self.assertIn(linkType, check_list)
+ find = linkId in check_list[linkType]
+ self.assertEqual(find, True)
+ (check_list[linkType]).remove(linkId)
for val in check_list.values():
self.assertEqual(len(val), 0)
def test_19_getLinkOmsAttributesOpenRoadmTopology(self):
- response = test_utils.get_ordm_topo_request("")
- 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)
+ response = test_utils_rfc8040.get_ietf_network_request('openroadm-topology', 'config')
+ self.assertEqual(response['status_code'], requests.codes.ok)
+ self.assertEqual(len(response['network'][0]['ietf-network-topology:link']), 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):
- link_id = res['network'][0]['ietf-network-topology:link'][i]['link-id']
+ for val in response['network'][0]['ietf-network-topology:link']:
+ link_id = val['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'])
+ spanLoss = val['org-openroadm-network-topology:OMS-attributes']['span']['engineered-spanloss']
+ # pylint: disable=line-too-long
+ length = val['org-openroadm-network-topology:OMS-attributes']['span']['link-concatenation'][0]['SRLG-length']
if (spanLoss is not None) & (length is not None):
find = True
self.assertTrue(find)
def test_20_getNodes_OpenRoadmTopology(self):
# pylint: disable=redundant-unittest-assert
- response = test_utils.get_ordm_topo_request("")
- 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)
+ response = test_utils_rfc8040.get_ietf_network_request('openroadm-topology', 'config')
+ self.assertEqual(response['status_code'], requests.codes.ok)
+ self.assertEqual(len(response['network'][0]['node']), 8)
listNode = ['XPDRA01-XPDR1',
'ROADMA01-SRG1', 'ROADMA01-SRG3', 'ROADMA01-DEG1', 'ROADMA01-DEG2',
'ROADMC01-SRG1', 'ROADMC01-DEG1', 'ROADMC01-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']
+ for val in response['network'][0]['node']:
+ nodeType = val['org-openroadm-common-network:node-type']
+ nodeId = val['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': 'openroadm-network', 'node-ref': 'XPDRA01'}, val['supporting-node'])
self.assertEqual(nodeType, 'XPONDER')
- nbTps = len(res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
- self.assertTrue(nbTps == 6)
+ self.assertEqual(len(val['ietf-network-topology:termination-point']), 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']
+ for val2 in val['ietf-network-topology:termination-point']:
+ tpType = val2['org-openroadm-common-network:tp-type']
if tpType == 'XPONDER-CLIENT':
client += 1
elif tpType == 'XPONDER-NETWORK':
elif nodeId in self.CHECK_DICT1:
self.assertEqual(nodeType, self.CHECK_DICT1[nodeId]['node_type'])
if self.CHECK_DICT1[nodeId]['node_type'] == 'SRG':
- self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']), 17)
+ self.assertEqual(len(val['ietf-network-topology:termination-point']), 17)
for item in self.CHECK_DICT1[nodeId]['checks_tp']:
- self.assertIn(item, res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
- self.assertIn({'network-ref': 'clli-network', 'node-ref': 'NodeA'},
- res['network'][0]['node'][i]['supporting-node'])
- 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'],
- self.CHECK_DICT1[nodeId]['node_type'])
+ self.assertIn(item, val['ietf-network-topology:termination-point'])
+ self.assertIn({'network-ref': 'clli-network', 'node-ref': 'NodeA'}, val['supporting-node'])
+ self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADMA01'}, val['supporting-node'])
+ self.assertEqual(val['org-openroadm-common-network:node-type'], self.CHECK_DICT1[nodeId]['node_type'])
listNode.remove(nodeId)
# Tests related to ROADMC nodes
elif nodeId in self.CHECK_DICT2:
self.assertEqual(nodeType, self.CHECK_DICT2[nodeId]['node_type'])
if self.CHECK_DICT2[nodeId]['node_type'] == 'SRG':
- self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']), 17)
+ self.assertEqual(len(val['ietf-network-topology:termination-point']), 17)
for item in self.CHECK_DICT2[nodeId]['checks_tp']:
- self.assertIn(item, res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
- self.assertIn({'network-ref': 'clli-network', 'node-ref': 'NodeC'},
- res['network'][0]['node'][i]['supporting-node'])
- 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'],
- self.CHECK_DICT2[nodeId]['node_type'])
+ self.assertIn(item, val['ietf-network-topology:termination-point'])
+ self.assertIn({'network-ref': 'clli-network', 'node-ref': 'NodeC'}, val['supporting-node'])
+ self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADMC01'}, val['supporting-node'])
+ self.assertEqual(val['org-openroadm-common-network:node-type'], self.CHECK_DICT2[nodeId]['node_type'])
listNode.remove(nodeId)
else:
self.assertFalse(True)
self.assertEqual(len(listNode), 0)
def test_21_connect_ROADMB(self):
- response = test_utils.mount_device("ROADMB01", ('roadmb', self.NODE_VERSION))
- self.assertEqual(response.status_code, requests.codes.created, test_utils.CODE_SHOULD_BE_201)
+ response = test_utils_rfc8040.mount_device("ROADMB01", ('roadmb', self.NODE_VERSION))
+ self.assertEqual(response.status_code, requests.codes.created, test_utils_rfc8040.CODE_SHOULD_BE_201)
def test_22_omsAttributes_ROADMA_ROADMB(self):
# Config ROADMA01-ROADMB01 oms-attributes
"fiber-type": "smf",
"SRLG-length": 100000,
"pmd": 0.5}]}}
- response = test_utils.add_oms_attr_request("ROADMA01-DEG2-DEG2-TTP-TXRXtoROADMB01-DEG1-DEG1-TTP-TXRX", data)
+ response = test_utils_rfc8040.add_oms_attr_request(
+ "ROADMA01-DEG2-DEG2-TTP-TXRXtoROADMB01-DEG1-DEG1-TTP-TXRX", data)
self.assertEqual(response.status_code, requests.codes.created)
def test_23_omsAttributes_ROADMB_ROADMA(self):
"fiber-type": "smf",
"SRLG-length": 100000,
"pmd": 0.5}]}}
- response = test_utils.add_oms_attr_request("ROADMB01-DEG1-DEG1-TTP-TXRXtoROADMA01-DEG2-DEG2-TTP-TXRX", data)
+ response = test_utils_rfc8040.add_oms_attr_request(
+ "ROADMB01-DEG1-DEG1-TTP-TXRXtoROADMA01-DEG2-DEG2-TTP-TXRX", data)
self.assertEqual(response.status_code, requests.codes.created)
def test_24_omsAttributes_ROADMB_ROADMC(self):
"fiber-type": "smf",
"SRLG-length": 100000,
"pmd": 0.5}]}}
- response = test_utils.add_oms_attr_request("ROADMB01-DEG2-DEG2-TTP-TXRXtoROADMC01-DEG1-DEG1-TTP-TXRX", data)
+ response = test_utils_rfc8040.add_oms_attr_request(
+ "ROADMB01-DEG2-DEG2-TTP-TXRXtoROADMC01-DEG1-DEG1-TTP-TXRX", data)
self.assertEqual(response.status_code, requests.codes.created)
def test_25_omsAttributes_ROADMC_ROADMB(self):
"fiber-type": "smf",
"SRLG-length": 100000,
"pmd": 0.5}]}}
- response = test_utils.add_oms_attr_request("ROADMC01-DEG1-DEG1-TTP-TXRXtoROADMB01-DEG2-DEG2-TTP-TXRX", data)
+ response = test_utils_rfc8040.add_oms_attr_request(
+ "ROADMC01-DEG1-DEG1-TTP-TXRXtoROADMB01-DEG2-DEG2-TTP-TXRX", data)
self.assertEqual(response.status_code, requests.codes.created)
def test_26_getClliNetwork(self):
- # pylint: disable=redundant-unittest-assert
- response = test_utils.get_clli_net_request()
- self.assertEqual(response.status_code, requests.codes.ok)
- res = response.json()
- nbNode = len(res['network'][0]['node'])
+ response = test_utils_rfc8040.get_ietf_network_request('clli-network', 'config')
+ self.assertEqual(response['status_code'], requests.codes.ok)
listNode = ['NodeA', 'NodeB', 'NodeC']
- for i in range(0, nbNode):
- nodeId = res['network'][0]['node'][i]['node-id']
- if nodeId in listNode:
- self.assertEqual(res['network'][0]['node'][i]['org-openroadm-clli-network:clli'], nodeId)
- listNode.remove(nodeId)
- else:
- self.assertFalse(True)
+ for val in response['network'][0]['node']:
+ nodeId = val['node-id']
+ self.assertIn(nodeId, listNode)
+ self.assertEqual(val['org-openroadm-clli-network:clli'], nodeId)
+ listNode.remove(nodeId)
self.assertEqual(len(listNode), 0)
def test_27_verifyDegree(self):
- response = test_utils.get_ordm_topo_request("")
- self.assertEqual(response.status_code, requests.codes.ok)
- res = response.json()
- # Tests related to links
- nbLink = len(res['network'][0]['ietf-network-topology:link'])
+ response = test_utils_rfc8040.get_ietf_network_request('openroadm-topology', 'config')
+ self.assertEqual(response['status_code'], requests.codes.ok)
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']
+ for val in response['network'][0]['ietf-network-topology:link']:
+ if val['org-openroadm-common-network:link-type'] == 'ROADM-TO-ROADM':
+ link_id = val['link-id']
find = link_id in listR2RLink
self.assertEqual(find, True)
listR2RLink.remove(link_id)
self.assertEqual(len(listR2RLink), 0)
def test_28_verifyOppositeLinkTopology(self):
- response = test_utils.get_ordm_topo_request("")
- 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'])
+ response = test_utils_rfc8040.get_ietf_network_request('openroadm-topology', 'config')
+ self.assertEqual(response['status_code'], requests.codes.ok)
+ self.assertEqual(len(response['network'][0]['ietf-network-topology:link']), 34)
+ for val in response['network'][0]['ietf-network-topology:link']:
+ link_id = val['link-id']
+ link_type = val['org-openroadm-common-network:link-type']
+ link_src = val['source']['source-node']
+ link_dest = val['destination']['dest-node']
+ oppLink_id = val['org-openroadm-common-network:opposite-link']
# Find the opposite link
- response_oppLink = test_utils.get_ordm_topo_request("ietf-network-topology:link/"+oppLink_id)
- 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']
+ res_oppLink = test_utils_rfc8040.get_ietf_network_link_request('openroadm-topology', oppLink_id, 'config')
+ self.assertEqual(res_oppLink['status_code'], requests.codes.ok)
+ self.assertEqual(res_oppLink['link']['org-openroadm-common-network:opposite-link'], link_id)
+ self.assertEqual(res_oppLink['link']['source']['source-node'], link_dest)
+ self.assertEqual(res_oppLink['link']['destination']['dest-node'], link_src)
+ oppLink_type = res_oppLink['link']['org-openroadm-common-network:link-type']
CHECK_DICT = {'ADD-LINK': 'DROP-LINK', 'DROP-LINK': 'ADD-LINK',
'EXPRESS-LINK': 'EXPRESS-LINK', 'ROADM-TO-ROADM': 'ROADM-TO-ROADM',
'XPONDER-INPUT': 'XPONDER-OUTPUT', 'XPONDER-OUTUT': 'XPONDER-INPUT'}
self.assertEqual(oppLink_type, CHECK_DICT[link_type])
def test_29_getLinkOmsAttributesOpenRoadmTopology(self):
- response = test_utils.get_ordm_topo_request("")
- self.assertEqual(response.status_code, requests.codes.ok)
- res = response.json()
- nbLink = len(res['network'][0]['ietf-network-topology:link'])
+ response = test_utils_rfc8040.get_ietf_network_request('openroadm-topology', 'config')
+ self.assertEqual(response['status_code'], requests.codes.ok)
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):
- link_id = res['network'][0]['ietf-network-topology:link'][i]['link-id']
+ for val in response['network'][0]['ietf-network-topology:link']:
+ link_id = val['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']
+ spanLoss = val['org-openroadm-network-topology:OMS-attributes']['span']['engineered-spanloss']
+ # pylint: disable=line-too-long
+ length = val['org-openroadm-network-topology:OMS-attributes']['span']['link-concatenation'][0]['SRLG-length']
if (spanLoss is not None) & (length is not None):
find = True
self.assertTrue(find)
def test_30_disconnect_ROADMB(self):
# Delete in the topology-netconf
- response = test_utils.unmount_device("ROADMB01")
- self.assertEqual(response.status_code, requests.codes.ok, test_utils.CODE_SHOULD_BE_200)
+ response = test_utils_rfc8040.unmount_device("ROADMB01")
+ self.assertIn(response.status_code, (requests.codes.ok, requests.codes.no_content))
# Delete in the clli-network
- response = test_utils.del_node_request("NodeB")
- self.assertEqual(response.status_code, requests.codes.ok)
+ response = test_utils_rfc8040.del_ietf_network_node_request('clli-network', 'NodeB', 'config')
+ self.assertIn(response.status_code, (requests.codes.ok, requests.codes.no_content))
def test_31_disconnect_ROADMC(self):
- response = test_utils.unmount_device("ROADMC01")
- self.assertEqual(response.status_code, requests.codes.ok, test_utils.CODE_SHOULD_BE_200)
+ response = test_utils_rfc8040.unmount_device("ROADMC01")
+ self.assertIn(response.status_code, (requests.codes.ok, requests.codes.no_content))
# Delete in the clli-network
- response = test_utils.del_node_request("NodeC")
- self.assertEqual(response.status_code, requests.codes.ok)
+ response = test_utils_rfc8040.del_ietf_network_node_request('clli-network', 'NodeC', 'config')
+ self.assertIn(response.status_code, (requests.codes.ok, requests.codes.no_content))
def test_32_getNodes_OpenRoadmTopology(self):
# pylint: disable=redundant-unittest-assert
- response = test_utils.get_ordm_topo_request("")
- 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)
+ response = test_utils_rfc8040.get_ietf_network_request('openroadm-topology', 'config')
+ self.assertEqual(response['status_code'], requests.codes.ok)
+ self.assertEqual(len(response['network'][0]['node']), 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']
+ for val in response['network'][0]['node']:
+ nodeType = val['org-openroadm-common-network:node-type']
+ nodeId = val['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']
+ for val2 in val['ietf-network-topology:termination-point']:
+ tpid = val2['tp-id']
if tpid == 'XPDR1-CLIENT1':
- self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]
- ['org-openroadm-common-network:tp-type'], 'XPONDER-CLIENT')
+ self.assertEqual(val2['org-openroadm-common-network:tp-type'], 'XPONDER-CLIENT')
if tpid == 'XPDR1-NETWORK1':
- self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]
- ['org-openroadm-common-network:tp-type'], 'XPONDER-NETWORK')
- self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]
- ['org-openroadm-network-topology:xpdr-network-attributes']
- ['tail-equipment-id'],
+ self.assertEqual(val2['org-openroadm-common-network:tp-type'], 'XPONDER-NETWORK')
+ # pylint: disable=line-too-long
+ self.assertEqual(val2['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'])
+ self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'XPDRA01'}, val['supporting-node'])
listNode.remove(nodeId)
# Tests related to ROADMA nodes
elif nodeId in self.CHECK_DICT1:
self.assertEqual(nodeType, self.CHECK_DICT1[nodeId]['node_type'])
if self.CHECK_DICT1[nodeId]['node_type'] == 'SRG':
- self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']), 17)
+ self.assertEqual(len(val['ietf-network-topology:termination-point']), 17)
for item in self.CHECK_DICT1[nodeId]['checks_tp']:
- self.assertIn(item, res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
- self.assertIn({'network-ref': 'clli-network', 'node-ref': 'NodeA'},
- res['network'][0]['node'][i]['supporting-node'])
- self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADMA01'},
- res['network'][0]['node'][i]['supporting-node'])
+ self.assertIn(item, val['ietf-network-topology:termination-point'])
+ self.assertIn({'network-ref': 'clli-network', 'node-ref': 'NodeA'}, val['supporting-node'])
+ self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADMA01'}, val['supporting-node'])
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')
+ for val in response['network'][0]['node']:
+ self.assertNotEqual(val['node-id'], 'ROADMC01-SRG1')
+ self.assertNotEqual(val['node-id'], 'ROADMC01-DEG1')
+ self.assertNotEqual(val['node-id'], 'ROADMC01-DEG2')
def test_33_getOpenRoadmNetwork(self):
- response = test_utils.get_ordm_net_request()
- 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')
+ response = test_utils_rfc8040.get_ietf_network_request('openroadm-network', 'config')
+ self.assertEqual(response['status_code'], requests.codes.ok)
+ self.assertEqual(len(response['network'][0]['node']), 2)
+ for val in response['network'][0]['node']:
+ self.assertNotEqual(val['node-id'], 'ROADMC01')
+ self.assertNotEqual(val['node-id'], 'ROADMB01')
def test_34_getClliNetwork(self):
- response = test_utils.get_clli_net_request()
- 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'][i]['org-openroadm-clli-network:clli'], 'NodeC')
+ response = test_utils_rfc8040.get_ietf_network_request('clli-network', 'config')
+ self.assertEqual(response['status_code'], requests.codes.ok)
+ self.assertEqual(len(response['network'][0]['node']), 1)
+ self.assertNotEqual(response['network'][0]['node'][0]['org-openroadm-clli-network:clli'], 'NodeC')
def test_35_disconnect_XPDRA(self):
- response = test_utils.unmount_device("XPDRA01")
- self.assertEqual(response.status_code, requests.codes.ok, test_utils.CODE_SHOULD_BE_200)
+ response = test_utils_rfc8040.unmount_device("XPDRA01")
+ self.assertIn(response.status_code, (requests.codes.ok, requests.codes.no_content))
def test_36_getClliNetwork(self):
- response = test_utils.get_clli_net_request()
- 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')
+ response = test_utils_rfc8040.get_ietf_network_request('clli-network', 'config')
+ self.assertEqual(response['status_code'], requests.codes.ok)
+ self.assertEqual(len(response['network'][0]['node']), 1)
+ self.assertEqual(response['network'][0]['node'][0]['org-openroadm-clli-network:clli'], 'NodeA')
def test_37_getOpenRoadmNetwork(self):
- response = test_utils.get_ordm_net_request()
- 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')
+ response = test_utils_rfc8040.get_ietf_network_request('openroadm-network', 'config')
+ self.assertEqual(response['status_code'], requests.codes.ok)
+ self.assertEqual(len(response['network'][0]['node']), 1)
+ self.assertNotEqual(response['network'][0]['node'][0]['node-id'], 'XPDRA01')
def test_38_getNodes_OpenRoadmTopology(self):
- # pylint: disable=redundant-unittest-assert
- response = test_utils.get_ordm_topo_request("")
- res = response.json()
- # Tests related to nodes
- self.assertEqual(response.status_code, requests.codes.ok)
- nbNode = len(res['network'][0]['node'])
- self.assertEqual(nbNode, 4)
+ response = test_utils_rfc8040.get_ietf_network_request('openroadm-topology', 'config')
+ self.assertEqual(response['status_code'], requests.codes.ok)
+ self.assertEqual(len(response['network'][0]['node']), 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 in self.CHECK_DICT1:
- self.assertEqual(nodeType, self.CHECK_DICT1[nodeId]['node_type'])
- if self.CHECK_DICT1[nodeId]['node_type'] == 'SRG':
- self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']), 17)
- for item in self.CHECK_DICT1[nodeId]['checks_tp']:
- self.assertIn(item, res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
- self.assertIn({'network-ref': 'clli-network', 'node-ref': 'NodeA'},
- res['network'][0]['node'][i]['supporting-node'])
- self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADMA01'},
- res['network'][0]['node'][i]['supporting-node'])
- listNode.remove(nodeId)
- else:
- self.assertFalse(True)
+ for val in response['network'][0]['node']:
+ self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADMA01'}, val['supporting-node'])
+ nodeType = val['org-openroadm-common-network:node-type']
+ nodeId = val['node-id']
+ self.assertIn(nodeId, self.CHECK_DICT1)
+ self.assertEqual(nodeType, self.CHECK_DICT1[nodeId]['node_type'])
+ if self.CHECK_DICT1[nodeId]['node_type'] == 'SRG':
+ self.assertEqual(len(val['ietf-network-topology:termination-point']), 17)
+ for item in self.CHECK_DICT1[nodeId]['checks_tp']:
+ self.assertIn(item, val['ietf-network-topology:termination-point'])
+ self.assertIn({'network-ref': 'clli-network', 'node-ref': 'NodeA'}, val['supporting-node'])
+ self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADMA01'}, val['supporting-node'])
+ listNode.remove(nodeId)
self.assertEqual(len(listNode), 0)
def test_39_disconnect_ROADM_XPDRA_link(self):
# Link-1
- response = test_utils.del_link_request("XPDRA01-XPDR1-XPDR1-NETWORK1toROADMA01-SRG1-SRG1-PP1-TXRX")
- self.assertEqual(response.status_code, requests.codes.ok)
+ response = test_utils_rfc8040.del_ietf_network_link_request(
+ 'openroadm-topology',
+ 'XPDRA01-XPDR1-XPDR1-NETWORK1toROADMA01-SRG1-SRG1-PP1-TXRX',
+ 'config')
# Link-2
- response = test_utils.del_link_request("ROADMA01-SRG1-SRG1-PP1-TXRXtoXPDRA01-XPDR1-XPDR1-NETWORK1")
- self.assertEqual(response.status_code, requests.codes.ok)
+ response2 = test_utils_rfc8040.del_ietf_network_link_request(
+ 'openroadm-topology',
+ 'ROADMA01-SRG1-SRG1-PP1-TXRXtoXPDRA01-XPDR1-XPDR1-NETWORK1',
+ 'config')
+ self.assertIn(response.status_code, (requests.codes.ok, requests.codes.no_content))
+ self.assertIn(response2.status_code, (requests.codes.ok, requests.codes.no_content))
def test_40_getLinks_OpenRoadmTopology(self):
- response = test_utils.get_ordm_topo_request("")
- self.assertEqual(response.status_code, requests.codes.ok)
- res = response.json()
- nbLink = len(res['network'][0]['ietf-network-topology:link'])
- self.assertEqual(nbLink, 16)
+ response = test_utils_rfc8040.get_ietf_network_request('openroadm-topology', 'config')
+ self.assertEqual(response['status_code'], requests.codes.ok)
+ self.assertEqual(len(response['network'][0]['ietf-network-topology:link']), 16)
check_list = {'EXPRESS-LINK': ['ROADMA01-DEG2-DEG2-CTP-TXRXtoROADMA01-DEG1-DEG1-CTP-TXRX',
'ROADMA01-DEG1-DEG1-CTP-TXRXtoROADMA01-DEG2-DEG2-CTP-TXRX'],
'ADD-LINK': ['ROADMA01-SRG1-SRG1-CP-TXRXtoROADMA01-DEG2-DEG2-CTP-TXRX',
'ROADMA01-DEG2-DEG2-CTP-TXRXtoROADMA01-SRG3-SRG3-CP-TXRX']
}
roadmtoroadmLink = 0
- for i in range(0, nbLink):
- linkId = res['network'][0]['ietf-network-topology:link'][i]['link-id']
- linkType = res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type']
+ for val in response['network'][0]['ietf-network-topology:link']:
+ linkId = val['link-id']
+ linkType = val['org-openroadm-common-network:link-type']
if linkType in check_list:
find = linkId in check_list[linkType]
self.assertEqual(find, True)
for val in check_list.values():
self.assertEqual(len(val), 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 val in response['network'][0]['ietf-network-topology:link']:
+ self.assertNotEqual(val['org-openroadm-common-network:link-type'], 'XPONDER-OUTPUT')
+ self.assertNotEqual(val['org-openroadm-common-network:link-type'], 'XPONDER-INPUT')
def test_41_disconnect_ROADMA(self):
- response = test_utils.unmount_device("ROADMA01")
- self.assertEqual(response.status_code, requests.codes.ok, test_utils.CODE_SHOULD_BE_200)
+ response = test_utils_rfc8040.unmount_device("ROADMA01")
+ self.assertIn(response.status_code, (requests.codes.ok, requests.codes.no_content))
# Delete in the clli-network
- response = test_utils.del_node_request("NodeA")
- self.assertEqual(response.status_code, requests.codes.ok)
+ response = test_utils_rfc8040.del_ietf_network_node_request('clli-network', 'NodeA', 'config')
+ self.assertIn(response.status_code, (requests.codes.ok, requests.codes.no_content))
def test_42_getClliNetwork(self):
- response = test_utils.get_clli_net_request()
- self.assertEqual(response.status_code, requests.codes.ok)
- res = response.json()
- self.assertNotIn('node', res['network'][0])
+ response = test_utils_rfc8040.get_ietf_network_request('clli-network', 'config')
+ self.assertEqual(response['status_code'], requests.codes.ok)
+ self.assertNotIn('node', response['network'][0])
def test_43_getOpenRoadmNetwork(self):
- response = test_utils.get_ordm_net_request()
- self.assertEqual(response.status_code, requests.codes.ok)
- res = response.json()
- self.assertNotIn('node', res['network'][0])
+ response = test_utils_rfc8040.get_ietf_network_request('openroadm-network', 'config')
+ self.assertEqual(response['status_code'], requests.codes.ok)
+ self.assertNotIn('node', response['network'][0])
def test_44_check_roadm2roadm_link_persistence(self):
- response = test_utils.get_ordm_topo_request("")
- self.assertEqual(response.status_code, requests.codes.ok)
- res = response.json()
- nbLink = len(res['network'][0]['ietf-network-topology:link'])
- self.assertNotIn('node', res['network'][0])
- self.assertEqual(nbLink, 6)
+ response = test_utils_rfc8040.get_ietf_network_request('openroadm-topology', 'config')
+ self.assertEqual(response['status_code'], requests.codes.ok)
+ self.assertNotIn('node', response['network'][0])
+ self.assertEqual(len(response['network'][0]['ietf-network-topology:link']), 6)
if __name__ == "__main__":
def test_16_xpdr_device_disconnected(self):
response = test_utils_rfc8040.check_device_connection("XPDR-A1")
self.assertEqual(response['status_code'], requests.codes.conflict)
- self.assertIn(
- {"error-tag": "data-missing",
- "error-message": "Request could not be completed because the relevant data model content does not exist",
- "error-type": "protocol"},
- response['connection-status'])
+ self.assertIn(response['connection-status']['error-type'], ('protocol', 'application'))
+ self.assertEqual(response['connection-status']['error-tag'], 'data-missing')
+ self.assertEqual(response['connection-status']['error-message'],
+ 'Request could not be completed because the relevant data model content does not exist')
def test_17_xpdr_device_not_connected(self):
response = test_utils_rfc8040.get_portmapping_node_info("XPDR-A1")
self.assertEqual(response['status_code'], requests.codes.conflict)
- self.assertIn(
- {"error-tag": "data-missing",
- "error-message": "Request could not be completed because the relevant data model content does not exist",
- "error-type": "protocol"},
- response['node-info'])
+ self.assertIn(response['node-info']['error-type'], ('protocol', 'application'))
+ self.assertEqual(response['node-info']['error-tag'], 'data-missing')
+ self.assertEqual(response['node-info']['error-message'],
+ 'Request could not be completed because the relevant data model content does not exist')
def test_18_rdm_device_disconnection(self):
response = test_utils_rfc8040.unmount_device("ROADM-A1")
def test_19_rdm_device_disconnected(self):
response = test_utils_rfc8040.check_device_connection("ROADM-A1")
self.assertEqual(response['status_code'], requests.codes.conflict)
- self.assertIn(
- {"error-tag": "data-missing",
- "error-message": "Request could not be completed because the relevant data model content does not exist",
- "error-type": "protocol"},
- response['connection-status'])
+ self.assertIn(response['connection-status']['error-type'], ('protocol', 'application'))
+ self.assertEqual(response['connection-status']['error-tag'], 'data-missing')
+ self.assertEqual(response['connection-status']['error-message'],
+ 'Request could not be completed because the relevant data model content does not exist')
def test_20_rdm_device_not_connected(self):
response = test_utils_rfc8040.get_portmapping_node_info("ROADM-A1")
self.assertEqual(response['status_code'], requests.codes.conflict)
- self.assertIn(
- {"error-tag": "data-missing",
- "error-message": "Request could not be completed because the relevant data model content does not exist",
- "error-type": "protocol"},
- response['node-info'])
+ self.assertIn(response['node-info']['error-type'], ('protocol', 'application'))
+ self.assertEqual(response['node-info']['error-tag'], 'data-missing')
+ self.assertEqual(response['node-info']['error-message'],
+ 'Request could not be completed because the relevant data model content does not exist')
if __name__ == "__main__":
# Verify the termination points of the ROADMA
def test_02_compareOpenroadmTopologyPortMapping_rdm(self):
- responseTopo = test_utils_rfc8040.get_request(test_utils_rfc8040.URL_CONFIG_ORDM_TOPO)
- resTopo = responseTopo.json()
+ resTopo = test_utils_rfc8040.get_ietf_network_request('openroadm-topology', 'config')
+ self.assertEqual(resTopo['status_code'], requests.codes.ok)
nbMapCumul = 0
nbMappings = 0
- for val in resTopo['ietf-network:network'][0]['node']:
+ for val in resTopo['network'][0]['node']:
nodeId = val['node-id']
# pylint: disable=consider-using-f-string
print("nodeId={}".format(nodeId))
sys.path.append('transportpce_tests/common/')
# pylint: disable=wrong-import-position
# pylint: disable=import-error
-import test_utils # nopep8
+import test_utils_rfc8040 # nopep8
class TransportPCEtesting(unittest.TestCase):
@classmethod
def setUpClass(cls):
- cls.processes = test_utils.start_tpce()
- cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION), ('roadma', cls.NODE_VERSION),
- ('roadmb', cls.NODE_VERSION), ('roadmc', cls.NODE_VERSION)])
+ cls.processes = test_utils_rfc8040.start_tpce()
+ cls.processes = test_utils_rfc8040.start_sims([('xpdra', cls.NODE_VERSION), ('roadma', cls.NODE_VERSION),
+ ('roadmb', cls.NODE_VERSION), ('roadmc', cls.NODE_VERSION)])
@classmethod
def tearDownClass(cls):
# pylint: disable=not-an-iterable
for process in cls.processes:
- test_utils.shutdown_process(process)
+ test_utils_rfc8040.shutdown_process(process)
print("all processes killed")
def setUp(self):
time.sleep(5)
def test_01_connect_ROADM_A1(self):
- response = test_utils.mount_device("ROADM-A1", ('roadma', self.NODE_VERSION))
- self.assertEqual(response.status_code, requests.codes.created, test_utils.CODE_SHOULD_BE_201)
+ response = test_utils_rfc8040.mount_device("ROADM-A1", ('roadma', self.NODE_VERSION))
+ self.assertEqual(response.status_code, requests.codes.created, test_utils_rfc8040.CODE_SHOULD_BE_201)
def test_02_getClliNetwork(self):
- response = test_utils.get_clli_net_request()
- 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')
+ response = test_utils_rfc8040.get_ietf_network_request('clli-network', 'config')
+ self.assertEqual(response['status_code'], requests.codes.ok)
+ logging.info(response)
+ self.assertEqual(response['network'][0]['node'][0]['node-id'], 'NodeA')
+ self.assertEqual(response['network'][0]['node'][0]['org-openroadm-clli-network:clli'], 'NodeA')
def test_03_getOpenRoadmNetwork(self):
- response = test_utils.get_ordm_net_request()
- 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')
+ response = test_utils_rfc8040.get_ietf_network_request('openroadm-network', 'config')
+ self.assertEqual(response['status_code'], requests.codes.ok)
+ self.assertEqual(response['network'][0]['node'][0]['node-id'], 'ROADM-A1')
+ self.assertEqual(response['network'][0]['node'][0]['supporting-node'][0]['network-ref'], 'clli-network')
+ self.assertEqual(response['network'][0]['node'][0]['supporting-node'][0]['node-ref'], 'NodeA')
+ self.assertEqual(response['network'][0]['node'][0]['org-openroadm-common-network:node-type'], 'ROADM')
+ self.assertEqual(response['network'][0]['node'][0]['org-openroadm-network:model'], 'model2')
def test_04_getLinks_OpenroadmTopology(self):
# pylint: disable=redundant-unittest-assert
- response = test_utils.get_ordm_topo_request("")
- 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)
+ response = test_utils_rfc8040.get_ietf_network_request('openroadm-topology', 'config')
+ self.assertEqual(response['status_code'], requests.codes.ok)
+ self.assertEqual(len(response['network'][0]['ietf-network-topology:link']), 10)
check_list = {'EXPRESS-LINK': ['ROADM-A1-DEG2-DEG2-CTP-TXRXtoROADM-A1-DEG1-DEG1-CTP-TXRX',
'ROADM-A1-DEG1-DEG1-CTP-TXRXtoROADM-A1-DEG2-DEG2-CTP-TXRX'],
'ADD-LINK': ['ROADM-A1-SRG1-SRG1-CP-TXRXtoROADM-A1-DEG2-DEG2-CTP-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']
- linkType = res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type']
- if linkType in check_list:
- find = linkId in check_list[linkType]
- self.assertEqual(find, True)
- (check_list[linkType]).remove(linkId)
- else:
- self.assertFalse(True)
+ for val in response['network'][0]['ietf-network-topology:link']:
+ linkId = val['link-id']
+ linkType = val['org-openroadm-common-network:link-type']
+ self.assertIn(linkType, check_list)
+ find = linkId in check_list[linkType]
+ self.assertEqual(find, True)
+ (check_list[linkType]).remove(linkId)
for val in check_list.values():
self.assertEqual(len(val), 0)
def test_05_getNodes_OpenRoadmTopology(self):
# pylint: disable=redundant-unittest-assert
- response = test_utils.get_ordm_topo_request("")
- res = response.json()
- # Tests related to nodes
- self.assertEqual(response.status_code, requests.codes.ok)
- nbNode = len(res['network'][0]['node'])
- self.assertEqual(nbNode, 4)
+ response = test_utils_rfc8040.get_ietf_network_request('openroadm-topology', 'config')
+ self.assertEqual(response['status_code'], requests.codes.ok)
+ self.assertEqual(len(response['network'][0]['node']), 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 in self.CHECK_DICT1:
- self.assertEqual(nodeType, self.CHECK_DICT1[nodeId]['node_type'])
- if self.CHECK_DICT1[nodeId]['node_type'] == 'SRG':
- self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']), 5)
- for item in self.CHECK_DICT1[nodeId]['checks_tp']:
- self.assertIn(item, res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
- self.assertIn({'network-ref': 'clli-network', 'node-ref': 'NodeA'},
- res['network'][0]['node'][i]['supporting-node'])
- self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADM-A1'},
- res['network'][0]['node'][i]['supporting-node'])
- listNode.remove(nodeId)
- else:
- self.assertFalse(True)
+ for val in response['network'][0]['node']:
+ self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADM-A1'}, val['supporting-node'])
+ nodeType = val['org-openroadm-common-network:node-type']
+ nodeId = val['node-id']
+ self.assertIn(nodeId, self.CHECK_DICT1)
+ self.assertEqual(nodeType, self.CHECK_DICT1[nodeId]['node_type'])
+ if self.CHECK_DICT1[nodeId]['node_type'] == 'SRG':
+ self.assertEqual(len(val['ietf-network-topology:termination-point']), 5)
+ for item in self.CHECK_DICT1[nodeId]['checks_tp']:
+ self.assertIn(item, val['ietf-network-topology:termination-point'])
+ self.assertIn({'network-ref': 'clli-network', 'node-ref': 'NodeA'}, val['supporting-node'])
+ self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADM-A1'}, val['supporting-node'])
+ listNode.remove(nodeId)
self.assertEqual(len(listNode), 0)
def test_06_connect_XPDRA(self):
- response = test_utils.mount_device("XPDR-A1", ('xpdra', self.NODE_VERSION))
- self.assertEqual(response.status_code, requests.codes.created, test_utils.CODE_SHOULD_BE_201)
+ response = test_utils_rfc8040.mount_device("XPDR-A1", ('xpdra', self.NODE_VERSION))
+ self.assertEqual(response.status_code, requests.codes.created, test_utils_rfc8040.CODE_SHOULD_BE_201)
def test_07_getClliNetwork(self):
- response = test_utils.get_clli_net_request()
- 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')
+ response = test_utils_rfc8040.get_ietf_network_request('clli-network', 'config')
+ self.assertEqual(response['status_code'], requests.codes.ok)
+ self.assertEqual(response['network'][0]['node'][0]['node-id'], 'NodeA')
+ self.assertEqual(response['network'][0]['node'][0]['org-openroadm-clli-network:clli'], 'NodeA')
def test_08_getOpenRoadmNetwork(self):
# pylint: disable=redundant-unittest-assert
- response = test_utils.get_ordm_net_request()
- self.assertEqual(response.status_code, requests.codes.ok)
- res = response.json()
- nbNode = len(res['network'][0]['node'])
+ response = test_utils_rfc8040.get_ietf_network_request('openroadm-network', 'config')
+ self.assertEqual(response['status_code'], requests.codes.ok)
+ nbNode = len(response['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']
+ for val in response['network'][0]['node']:
+ self.assertEqual(val['supporting-node'][0]['network-ref'], 'clli-network')
+ self.assertEqual(val['supporting-node'][0]['node-ref'], 'NodeA')
+ nodeId = val['node-id']
if nodeId == 'XPDR-A1':
- self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'], 'XPONDER')
+ self.assertEqual(val['org-openroadm-common-network:node-type'], 'XPONDER')
elif nodeId == 'ROADM-A1':
- self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'], 'ROADM')
+ self.assertEqual(val['org-openroadm-common-network:node-type'], 'ROADM')
else:
self.assertFalse(True)
continue
- self.assertEqual(res['network'][0]['node'][i]['org-openroadm-network:model'], 'model2')
+ self.assertEqual(val['org-openroadm-network:model'], 'model2')
def test_09_getNodes_OpenRoadmTopology(self):
# pylint: disable=redundant-unittest-assert
- response = test_utils.get_ordm_topo_request("")
- 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)
+ response = test_utils_rfc8040.get_ietf_network_request('openroadm-topology', 'config')
+ self.assertEqual(response['status_code'], requests.codes.ok)
+ self.assertEqual(len(response['network'][0]['node']), 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']
+ for val in response['network'][0]['node']:
+ nodeType = val['org-openroadm-common-network:node-type']
+ nodeId = val['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.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'XPDR-A1'}, val['supporting-node'])
+ self.assertIn({'network-ref': 'clli-network', 'node-ref': 'NodeA'}, val['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']
+ for val2 in val['ietf-network-topology:termination-point']:
+ tpType = (val2['org-openroadm-common-network:tp-type'])
+ tpId = val2['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')
+ self.assertEqual(val2['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)
+ self.assertEqual(val2['transportpce-topology:associated-connection-map-port'], 'XPDR1-NETWORK2')
+ self.assertEqual(client, 2)
+ self.assertEqual(network, 2)
listNode.remove(nodeId)
elif nodeId in self.CHECK_DICT1:
self.assertEqual(nodeType, self.CHECK_DICT1[nodeId]['node_type'])
if self.CHECK_DICT1[nodeId]['node_type'] == 'SRG':
- self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']), 5)
+ self.assertEqual(len(val['ietf-network-topology:termination-point']), 5)
for item in self.CHECK_DICT1[nodeId]['checks_tp']:
- self.assertIn(item, res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
- self.assertIn({'network-ref': 'clli-network', 'node-ref': 'NodeA'},
- res['network'][0]['node'][i]['supporting-node'])
- self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADM-A1'},
- res['network'][0]['node'][i]['supporting-node'])
+ self.assertIn(item, val['ietf-network-topology:termination-point'])
+ self.assertIn({'network-ref': 'clli-network', 'node-ref': 'NodeA'}, val['supporting-node'])
+ self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADM-A1'}, val['supporting-node'])
listNode.remove(nodeId)
else:
self.assertFalse(True)
# Connect the tail XPDRA to ROADMA and vice versa
def test_10_connect_tail_xpdr_rdm(self):
# Connect the tail: XPDRA to ROADMA
- response = test_utils.connect_xpdr_to_rdm_request("XPDR-A1", "1", "1",
- "ROADM-A1", "1", "SRG1-PP1-TXRX")
+ response = test_utils_rfc8040.connect_xpdr_to_rdm_request(
+ {'xpdr-node': 'XPDR-A1', 'xpdr-num': '1', 'network-num': '1',
+ 'rdm-node': 'ROADM-A1', 'srg-num': '1', 'termination-point-num': 'SRG1-PP1-TXRX'})
self.assertEqual(response.status_code, requests.codes.ok)
def test_11_connect_tail_rdm_xpdr(self):
- response = test_utils.connect_rdm_to_xpdr_request("XPDR-A1", "1", "1",
- "ROADM-A1", "1", "SRG1-PP1-TXRX")
+ response = test_utils_rfc8040.connect_rdm_to_xpdr_request(
+ {'xpdr-node': 'XPDR-A1', 'xpdr-num': '1', 'network-num': '1',
+ 'rdm-node': 'ROADM-A1', 'srg-num': '1', 'termination-point-num': 'SRG1-PP1-TXRX'})
self.assertEqual(response.status_code, requests.codes.ok)
def test_12_getLinks_OpenRoadmTopology(self):
# pylint: disable=redundant-unittest-assert
- response = test_utils.get_ordm_topo_request("")
- 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)
+ response = test_utils_rfc8040.get_ietf_network_request('openroadm-topology', 'config')
+ self.assertEqual(response['status_code'], requests.codes.ok)
+ self.assertEqual(len(response['network'][0]['ietf-network-topology:link']), 12)
check_list = {'EXPRESS-LINK': ['ROADM-A1-DEG2-DEG2-CTP-TXRXtoROADM-A1-DEG1-DEG1-CTP-TXRX',
'ROADM-A1-DEG1-DEG1-CTP-TXRXtoROADM-A1-DEG2-DEG2-CTP-TXRX'],
'ADD-LINK': ['ROADM-A1-SRG1-SRG1-CP-TXRXtoROADM-A1-DEG2-DEG2-CTP-TXRX',
'XPONDER-INPUT': ['ROADM-A1-SRG1-SRG1-PP1-TXRXtoXPDR-A1-XPDR1-XPDR1-NETWORK1'],
'XPONDER-OUTPUT': ['XPDR-A1-XPDR1-XPDR1-NETWORK1toROADM-A1-SRG1-SRG1-PP1-TXRX']
}
- for i in range(0, nbLink):
- linkId = res['network'][0]['ietf-network-topology:link'][i]['link-id']
- linkType = res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type']
- if linkType in check_list:
- find = linkId in check_list[linkType]
- self.assertEqual(find, True)
- (check_list[linkType]).remove(linkId)
- else:
- self.assertFalse(True)
+ for val in response['network'][0]['ietf-network-topology:link']:
+ linkId = val['link-id']
+ linkType = val['org-openroadm-common-network:link-type']
+ self.assertIn(linkType, check_list)
+ find = linkId in check_list[linkType]
+ self.assertEqual(find, True)
+ (check_list[linkType]).remove(linkId)
for val in check_list.values():
self.assertEqual(len(val), 0)
def test_13_connect_ROADMC(self):
- response = test_utils.mount_device("ROADM-C1", ('roadmc', self.NODE_VERSION))
- self.assertEqual(response.status_code, requests.codes.created, test_utils.CODE_SHOULD_BE_201)
+ response = test_utils_rfc8040.mount_device("ROADM-C1", ('roadmc', self.NODE_VERSION))
+ self.assertEqual(response.status_code, requests.codes.created, test_utils_rfc8040.CODE_SHOULD_BE_201)
def test_14_omsAttributes_ROADMA_ROADMC(self):
# Config ROADMA-ROADMC oms-attributes
"fiber-type": "smf",
"SRLG-length": 100000,
"pmd": 0.5}]}}
- response = test_utils.add_oms_attr_request("ROADM-A1-DEG2-DEG2-TTP-TXRXtoROADM-C1-DEG1-DEG1-TTP-TXRX", data)
+ response = test_utils_rfc8040.add_oms_attr_request(
+ "ROADM-A1-DEG2-DEG2-TTP-TXRXtoROADM-C1-DEG1-DEG1-TTP-TXRX", data)
self.assertEqual(response.status_code, requests.codes.created)
def test_15_omsAttributes_ROADMC_ROADMA(self):
"SRLG-length": 100000,
"pmd": 0.5}]}}
- response = test_utils.add_oms_attr_request("ROADM-C1-DEG1-DEG1-TTP-TXRXtoROADM-A1-DEG2-DEG2-TTP-TXRX", data)
+ response = test_utils_rfc8040.add_oms_attr_request(
+ "ROADM-C1-DEG1-DEG1-TTP-TXRXtoROADM-A1-DEG2-DEG2-TTP-TXRX", data)
self.assertEqual(response.status_code, requests.codes.created)
def test_16_getClliNetwork(self):
# pylint: disable=redundant-unittest-assert
- response = test_utils.get_clli_net_request()
- self.assertEqual(response.status_code, requests.codes.ok)
- res = response.json()
- nbNode = len(res['network'][0]['node'])
+ response = test_utils_rfc8040.get_ietf_network_request('clli-network', 'config')
+ self.assertEqual(response['status_code'], requests.codes.ok)
listNode = ['NodeA', 'NodeC']
- for i in range(0, nbNode):
- nodeId = res['network'][0]['node'][i]['node-id']
- if nodeId in listNode:
- self.assertEqual(res['network'][0]['node'][i]['org-openroadm-clli-network:clli'], nodeId)
- listNode.remove(nodeId)
- else:
- self.assertFalse(True)
+ for val in response['network'][0]['node']:
+ nodeId = val['node-id']
+ self.assertIn(nodeId, listNode)
+ self.assertEqual(val['org-openroadm-clli-network:clli'], nodeId)
+ listNode.remove(nodeId)
self.assertEqual(len(listNode), 0)
def test_17_getOpenRoadmNetwork(self):
# pylint: disable=redundant-unittest-assert
- response = test_utils.get_ordm_net_request()
- self.assertEqual(response.status_code, requests.codes.ok)
- res = response.json()
- nbNode = len(res['network'][0]['node'])
+ response = test_utils_rfc8040.get_ietf_network_request('openroadm-network', 'config')
+ self.assertEqual(response['status_code'], requests.codes.ok)
+ nbNode = len(response['network'][0]['node'])
self.assertEqual(nbNode, 3)
listNode = ['XPDR-A1', 'ROADM-A1', 'ROADM-C1']
CHECK_LIST = {'XPDR-A1': {'node-ref': 'NodeA', 'node-type': 'XPONDER'},
'ROADM-A1': {'node-ref': 'NodeA', 'node-type': 'ROADM'},
'ROADM-C1': {'node-ref': 'NodeC', 'node-type': 'ROADM'}
}
- 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']
+ for val in response['network'][0]['node']:
+ self.assertEqual(val['supporting-node'][0]['network-ref'], 'clli-network')
+ nodeId = val['node-id']
if nodeId in CHECK_LIST:
- self.assertEqual(res['network'][0]['node'][i]['supporting-node'][0]['node-ref'],
- CHECK_LIST[nodeId]['node-ref'])
- self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'],
- CHECK_LIST[nodeId]['node-type'])
+ self.assertEqual(val['supporting-node'][0]['node-ref'], CHECK_LIST[nodeId]['node-ref'])
+ self.assertEqual(val['org-openroadm-common-network:node-type'], CHECK_LIST[nodeId]['node-type'])
listNode.remove(nodeId)
else:
self.assertFalse(True)
continue
- self.assertEqual(res['network'][0]['node'][i]['org-openroadm-network:model'], 'model2')
+ self.assertEqual(val['org-openroadm-network:model'], 'model2')
self.assertEqual(len(listNode), 0)
def test_18_getROADMLinkOpenRoadmTopology(self):
# pylint: disable=redundant-unittest-assert
- response = test_utils.get_ordm_topo_request("")
- 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)
+ response = test_utils_rfc8040.get_ietf_network_request('openroadm-topology', 'config')
+ self.assertEqual(response['status_code'], requests.codes.ok)
+ self.assertEqual(len(response['network'][0]['ietf-network-topology:link']), 20)
check_list = {'EXPRESS-LINK': ['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',
'XPONDER-INPUT': ['ROADM-A1-SRG1-SRG1-PP1-TXRXtoXPDR-A1-XPDR1-XPDR1-NETWORK1'],
'XPONDER-OUTPUT': ['XPDR-A1-XPDR1-XPDR1-NETWORK1toROADM-A1-SRG1-SRG1-PP1-TXRX']
}
- for i in range(0, nbLink):
- linkId = res['network'][0]['ietf-network-topology:link'][i]['link-id']
- linkType = res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type']
- if linkType in check_list:
- find = linkId in check_list[linkType]
- self.assertEqual(find, True)
- (check_list[linkType]).remove(linkId)
- else:
- self.assertFalse(True)
+ for val in response['network'][0]['ietf-network-topology:link']:
+ linkId = val['link-id']
+ linkType = val['org-openroadm-common-network:link-type']
+ self.assertIn(linkType, check_list)
+ find = linkId in check_list[linkType]
+ self.assertEqual(find, True)
+ (check_list[linkType]).remove(linkId)
for val in check_list.values():
self.assertEqual(len(val), 0)
def test_19_getLinkOmsAttributesOpenRoadmTopology(self):
- response = test_utils.get_ordm_topo_request("")
- 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)
+ response = test_utils_rfc8040.get_ietf_network_request('openroadm-topology', 'config')
+ self.assertEqual(response['status_code'], requests.codes.ok)
+ self.assertEqual(len(response['network'][0]['ietf-network-topology:link']), 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):
- link_id = res['network'][0]['ietf-network-topology:link'][i]['link-id']
+ for val in response['network'][0]['ietf-network-topology:link']:
+ link_id = val['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']
+ spanLoss = val['org-openroadm-network-topology:OMS-attributes']['span']['engineered-spanloss']
+ # pylint: disable=line-too-long
+ length = val['org-openroadm-network-topology:OMS-attributes']['span']['link-concatenation'][0]['SRLG-length']
if (spanLoss is not None) & (length is not None):
find = True
self.assertTrue(find)
def test_20_getNodes_OpenRoadmTopology(self):
# pylint: disable=redundant-unittest-assert
- response = test_utils.get_ordm_topo_request("")
- 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)
+ response = test_utils_rfc8040.get_ietf_network_request('openroadm-topology', 'config')
+ self.assertEqual(response['status_code'], requests.codes.ok)
+ self.assertEqual(len(response['network'][0]['node']), 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']
+ for val in response['network'][0]['node']:
+ nodeType = val['org-openroadm-common-network:node-type']
+ nodeId = val['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.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'XPDR-A1'}, val['supporting-node'])
self.assertEqual(nodeType, 'XPONDER')
- nbTps = len(res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
+ nbTps = len(val['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'])
+ for val2 in val['ietf-network-topology:termination-point']:
+ tpType = (val2['org-openroadm-common-network:tp-type'])
if tpType == 'XPONDER-CLIENT':
client += 1
elif tpType == 'XPONDER-NETWORK':
elif nodeId in self.CHECK_DICT1:
self.assertEqual(nodeType, self.CHECK_DICT1[nodeId]['node_type'])
if self.CHECK_DICT1[nodeId]['node_type'] == 'SRG':
- self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']), 5)
+ self.assertEqual(len(val['ietf-network-topology:termination-point']), 5)
for item in self.CHECK_DICT1[nodeId]['checks_tp']:
- self.assertIn(item, res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
- self.assertIn({'network-ref': 'clli-network', 'node-ref': 'NodeA'},
- res['network'][0]['node'][i]['supporting-node'])
- 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'],
- self.CHECK_DICT1[nodeId]['node_type'])
+ self.assertIn(item, val['ietf-network-topology:termination-point'])
+ self.assertIn({'network-ref': 'clli-network', 'node-ref': 'NodeA'}, val['supporting-node'])
+ self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADM-A1'}, val['supporting-node'])
+ self.assertEqual(val['org-openroadm-common-network:node-type'], self.CHECK_DICT1[nodeId]['node_type'])
listNode.remove(nodeId)
# Tests related to ROADMA nodes
elif nodeId in self.CHECK_DICT2:
self.assertEqual(nodeType, self.CHECK_DICT2[nodeId]['node_type'])
if self.CHECK_DICT2[nodeId]['node_type'] == 'SRG':
- self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']), 5)
+ self.assertEqual(len(val['ietf-network-topology:termination-point']), 5)
for item in self.CHECK_DICT2[nodeId]['checks_tp']:
- self.assertIn(item, res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
- self.assertIn({'network-ref': 'clli-network', 'node-ref': 'NodeC'},
- res['network'][0]['node'][i]['supporting-node'])
- 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'],
- self.CHECK_DICT2[nodeId]['node_type'])
+ self.assertIn(item, val['ietf-network-topology:termination-point'])
+ self.assertIn({'network-ref': 'clli-network', 'node-ref': 'NodeC'}, val['supporting-node'])
+ self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADM-C1'}, val['supporting-node'])
+ self.assertEqual(val['org-openroadm-common-network:node-type'], self.CHECK_DICT2[nodeId]['node_type'])
listNode.remove(nodeId)
self.assertEqual(len(listNode), 0)
def test_21_connect_ROADMB(self):
- response = test_utils.mount_device("ROADM-B1", ('roadmb', self.NODE_VERSION))
- self.assertEqual(response.status_code, requests.codes.created, test_utils.CODE_SHOULD_BE_201)
+ response = test_utils_rfc8040.mount_device("ROADM-B1", ('roadmb', self.NODE_VERSION))
+ self.assertEqual(response.status_code, requests.codes.created, test_utils_rfc8040.CODE_SHOULD_BE_201)
def test_22_omsAttributes_ROADMA_ROADMB(self):
# Config ROADM-A1-ROADM-B1 oms-attributes
"fiber-type": "smf",
"SRLG-length": 100000,
"pmd": 0.5}]}}
- response = test_utils.add_oms_attr_request("ROADM-A1-DEG1-DEG1-TTP-TXRXtoROADM-B1-DEG1-DEG1-TTP-TXRX", data)
+ response = test_utils_rfc8040.add_oms_attr_request(
+ "ROADM-A1-DEG1-DEG1-TTP-TXRXtoROADM-B1-DEG1-DEG1-TTP-TXRX", data)
self.assertEqual(response.status_code, requests.codes.created)
def test_23_omsAttributes_ROADMB_ROADMA(self):
"fiber-type": "smf",
"SRLG-length": 100000,
"pmd": 0.5}]}}
- response = test_utils.add_oms_attr_request("ROADM-B1-DEG1-DEG1-TTP-TXRXtoROADM-A1-DEG1-DEG1-TTP-TXRX", data)
+ response = test_utils_rfc8040.add_oms_attr_request(
+ "ROADM-B1-DEG1-DEG1-TTP-TXRXtoROADM-A1-DEG1-DEG1-TTP-TXRX", data)
self.assertEqual(response.status_code, requests.codes.created)
def test_24_omsAttributes_ROADMB_ROADMC(self):
"fiber-type": "smf",
"SRLG-length": 100000,
"pmd": 0.5}]}}
- response = test_utils.add_oms_attr_request("ROADM-B1-DEG2-DEG2-TTP-TXRXtoROADM-C1-DEG2-DEG2-TTP-TXRX", data)
+ response = test_utils_rfc8040.add_oms_attr_request(
+ "ROADM-B1-DEG2-DEG2-TTP-TXRXtoROADM-C1-DEG2-DEG2-TTP-TXRX", data)
self.assertEqual(response.status_code, requests.codes.created)
def test_25_omsAttributes_ROADMC_ROADMB(self):
"fiber-type": "smf",
"SRLG-length": 100000,
"pmd": 0.5}]}}
- response = test_utils.add_oms_attr_request("ROADM-C1-DEG2-DEG2-TTP-TXRXtoROADM-B1-DEG2-DEG2-TTP-TXRX", data)
+ response = test_utils_rfc8040.add_oms_attr_request(
+ "ROADM-C1-DEG2-DEG2-TTP-TXRXtoROADM-B1-DEG2-DEG2-TTP-TXRX", data)
self.assertEqual(response.status_code, requests.codes.created)
def test_26_getClliNetwork(self):
# pylint: disable=redundant-unittest-assert
- response = test_utils.get_clli_net_request()
- self.assertEqual(response.status_code, requests.codes.ok)
- res = response.json()
- nbNode = len(res['network'][0]['node'])
+ response = test_utils_rfc8040.get_ietf_network_request('clli-network', 'config')
+ self.assertEqual(response['status_code'], requests.codes.ok)
listNode = ['NodeA', 'NodeB', 'NodeC']
- for i in range(0, nbNode):
- nodeId = res['network'][0]['node'][i]['node-id']
- if nodeId in listNode:
- self.assertEqual(res['network'][0]['node'][i]['org-openroadm-clli-network:clli'], nodeId)
- listNode.remove(nodeId)
- else:
- self.assertFalse(True)
+ for val in response['network'][0]['node']:
+ nodeId = val['node-id']
+ self.assertIn(nodeId, listNode)
+ self.assertEqual(val['org-openroadm-clli-network:clli'], nodeId)
+ listNode.remove(nodeId)
self.assertEqual(len(listNode), 0)
def test_27_verifyDegree(self):
- response = test_utils.get_ordm_topo_request("")
- self.assertEqual(response.status_code, requests.codes.ok)
- res = response.json()
- # Tests related to links
- nbLink = len(res['network'][0]['ietf-network-topology:link'])
+ response = test_utils_rfc8040.get_ietf_network_request('openroadm-topology', 'config')
+ self.assertEqual(response['status_code'], requests.codes.ok)
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']
+ for val in response['network'][0]['ietf-network-topology:link']:
+ if val['org-openroadm-common-network:link-type'] == 'ROADM-TO-ROADM':
+ link_id = val['link-id']
find = link_id in listR2RLink
self.assertEqual(find, True)
listR2RLink.remove(link_id)
self.assertEqual(len(listR2RLink), 0)
def test_28_verifyOppositeLinkTopology(self):
- response = test_utils.get_ordm_topo_request("")
- 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, 30)
- 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'])
+ response = test_utils_rfc8040.get_ietf_network_request('openroadm-topology', 'config')
+ self.assertEqual(response['status_code'], requests.codes.ok)
+ self.assertEqual(len(response['network'][0]['ietf-network-topology:link']), 30)
+ for val in response['network'][0]['ietf-network-topology:link']:
+ link_id = val['link-id']
+ link_type = val['org-openroadm-common-network:link-type']
+ link_src = val['source']['source-node']
+ link_dest = val['destination']['dest-node']
+ oppLink_id = val['org-openroadm-common-network:opposite-link']
# Find the opposite link
- response_oppLink = test_utils.get_ordm_topo_request("ietf-network-topology:link/"+oppLink_id)
- 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']
+ res_oppLink = test_utils_rfc8040.get_ietf_network_link_request('openroadm-topology', oppLink_id, 'config')
+ self.assertEqual(res_oppLink['status_code'], requests.codes.ok)
+ self.assertEqual(res_oppLink['link']['org-openroadm-common-network:opposite-link'], link_id)
+ self.assertEqual(res_oppLink['link']['source']['source-node'], link_dest)
+ self.assertEqual(res_oppLink['link']['destination']['dest-node'], link_src)
+ oppLink_type = res_oppLink['link']['org-openroadm-common-network:link-type']
CHECK_DICT = {'ADD-LINK': 'DROP-LINK', 'DROP-LINK': 'ADD-LINK',
'EXPRESS-LINK': 'EXPRESS-LINK', 'ROADM-TO-ROADM': 'ROADM-TO-ROADM',
'XPONDER-INPUT': 'XPONDER-OUTPUT', 'XPONDER-OUTUT': 'XPONDER-INPUT'}
self.assertEqual(oppLink_type, CHECK_DICT[link_type])
def test_29_getLinkOmsAttributesOpenRoadmTopology(self):
- response = test_utils.get_ordm_topo_request("")
- self.assertEqual(response.status_code, requests.codes.ok)
- res = response.json()
- nbLink = len(res['network'][0]['ietf-network-topology:link'])
+ response = test_utils_rfc8040.get_ietf_network_request('openroadm-topology', 'config')
+ self.assertEqual(response['status_code'], requests.codes.ok)
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):
- link_id = res['network'][0]['ietf-network-topology:link'][i]['link-id']
+ for val in response['network'][0]['ietf-network-topology:link']:
+ link_id = val['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']
+ spanLoss = val['org-openroadm-network-topology:OMS-attributes']['span']["engineered-spanloss"]
+ # pylint: disable=line-too-long
+ length = val['org-openroadm-network-topology:OMS-attributes']['span']['link-concatenation'][0]['SRLG-length']
if (spanLoss is not None) & (length is not None):
find = True
self.assertTrue(find)
def test_30_disconnect_ROADMB(self):
# Delete in the topology-netconf
- response = test_utils.unmount_device("ROADM-B1")
+ response = test_utils_rfc8040.unmount_device("ROADM-B1")
+ self.assertIn(response.status_code, (requests.codes.ok, requests.codes.no_content))
# Delete in the clli-network
- response = test_utils.del_node_request("NodeB")
- self.assertEqual(response.status_code, requests.codes.ok)
+ response = test_utils_rfc8040.del_ietf_network_node_request('clli-network', 'NodeB', 'config')
+ self.assertIn(response.status_code, (requests.codes.ok, requests.codes.no_content))
def test_31_disconnect_ROADMC(self):
# Delete in the topology-netconf
- response = test_utils.unmount_device("ROADM-C1")
- self.assertEqual(response.status_code, requests.codes.ok, test_utils.CODE_SHOULD_BE_200)
+ response = test_utils_rfc8040.unmount_device("ROADM-C1")
+ self.assertIn(response.status_code, (requests.codes.ok, requests.codes.no_content))
# Delete in the clli-network
- response = test_utils.del_node_request("NodeC")
- self.assertEqual(response.status_code, requests.codes.ok)
+ response = test_utils_rfc8040.del_ietf_network_node_request('clli-network', 'NodeC', 'config')
+ self.assertIn(response.status_code, (requests.codes.ok, requests.codes.no_content))
def test_32_getNodes_OpenRoadmTopology(self):
# pylint: disable=redundant-unittest-assert
- response = test_utils.get_ordm_topo_request("")
- 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)
+ response = test_utils_rfc8040.get_ietf_network_request('openroadm-topology', 'config')
+ self.assertEqual(response['status_code'], requests.codes.ok)
+ self.assertEqual(len(response['network'][0]['node']), 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']
+ for val in response['network'][0]['node']:
+ nodeType = val['org-openroadm-common-network:node-type']
+ nodeId = val['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']
+ for val2 in val['ietf-network-topology:termination-point']:
+ tpid = val2['tp-id']
if tpid == 'XPDR1-CLIENT1':
- self.assertEqual((res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]
- ['org-openroadm-common-network:tp-type']), 'XPONDER-CLIENT')
- if tpid == 'XPDR1-NETWORK1':
- self.assertEqual((res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]
- ['org-openroadm-common-network:tp-type']), 'XPONDER-NETWORK')
- self.assertEqual((res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]
- ['org-openroadm-network-topology:xpdr-network-attributes']
- ['tail-equipment-id']),
+ self.assertEqual((val2['org-openroadm-common-network:tp-type']), 'XPONDER-CLIENT')
+ elif tpid == 'XPDR1-NETWORK1':
+ self.assertEqual((val2['org-openroadm-common-network:tp-type']), 'XPONDER-NETWORK')
+ # pylint: disable=line-too-long
+ self.assertEqual((val2['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'])
+ self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'XPDR-A1'}, val['supporting-node'])
listNode.remove(nodeId)
# Tests related to ROADMA nodes
elif nodeId in self.CHECK_DICT1:
self.assertEqual(nodeType, self.CHECK_DICT1[nodeId]['node_type'])
if self.CHECK_DICT1[nodeId]['node_type'] == 'SRG':
- self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']), 5)
+ self.assertEqual(len(val['ietf-network-topology:termination-point']), 5)
for item in self.CHECK_DICT1[nodeId]['checks_tp']:
- self.assertIn(item, res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
- self.assertIn({'network-ref': 'clli-network', 'node-ref': 'NodeA'},
- res['network'][0]['node'][i]['supporting-node'])
- self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADM-A1'},
- res['network'][0]['node'][i]['supporting-node'])
+ self.assertIn(item, val['ietf-network-topology:termination-point'])
+ self.assertIn({'network-ref': 'clli-network', 'node-ref': 'NodeA'}, val['supporting-node'])
+ self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADM-A1'}, val['supporting-node'])
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')
+ for val in response['network'][0]['node']:
+ self.assertNotEqual(val['node-id'], 'ROADM-C1-SRG1')
+ self.assertNotEqual(val['node-id'], 'ROADM-C1-DEG1')
+ self.assertNotEqual(val['node-id'], 'ROADM-C1-DEG2')
def test_33_getOpenRoadmNetwork(self):
- response = test_utils.get_ordm_net_request()
- self.assertEqual(response.status_code, requests.codes.ok)
- res = response.json()
- nbNode = len(res['network'][0]['node'])
+ response = test_utils_rfc8040.get_ietf_network_request('openroadm-network', 'config')
+ self.assertEqual(response['status_code'], requests.codes.ok)
+ nbNode = len(response['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')
+ for val in response['network'][0]['node']:
+ self.assertNotEqual(val['node-id'], 'ROADM-C1')
+ self.assertNotEqual(val['node-id'], 'ROADM-B1')
def test_34_getClliNetwork(self):
- response = test_utils.get_clli_net_request()
- 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'][i]['org-openroadm-clli-network:clli'], 'NodeC')
+ response = test_utils_rfc8040.get_ietf_network_request('clli-network', 'config')
+ self.assertEqual(response['status_code'], requests.codes.ok)
+ self.assertEqual(len(response['network'][0]['node']), 1)
+ self.assertNotEqual(response['network'][0]['node'][0]['org-openroadm-clli-network:clli'], 'NodeC')
def test_35_disconnect_XPDRA(self):
- response = test_utils.unmount_device("XPDR-A1")
- self.assertEqual(response.status_code, requests.codes.ok, test_utils.CODE_SHOULD_BE_200)
+ response = test_utils_rfc8040.unmount_device("XPDR-A1")
+ self.assertIn(response.status_code, (requests.codes.ok, requests.codes.no_content))
def test_36_getClliNetwork(self):
- response = test_utils.get_clli_net_request()
- 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')
+ response = test_utils_rfc8040.get_ietf_network_request('clli-network', 'config')
+ self.assertEqual(response['status_code'], requests.codes.ok)
+ self.assertEqual(len(response['network'][0]['node']), 1)
+ self.assertEqual(response['network'][0]['node'][0]['org-openroadm-clli-network:clli'], 'NodeA')
def test_37_getOpenRoadmNetwork(self):
- response = test_utils.get_ordm_net_request()
- 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')
+ response = test_utils_rfc8040.get_ietf_network_request('openroadm-network', 'config')
+ self.assertEqual(response['status_code'], requests.codes.ok)
+ self.assertEqual(len(response['network'][0]['node']), 1)
+ self.assertNotEqual(response['network'][0]['node'][0]['node-id'], 'XPDR-A1')
def test_38_getNodes_OpenRoadmTopology(self):
- # pylint: disable=redundant-unittest-assert
- response = test_utils.get_ordm_topo_request("")
- res = response.json()
- # Tests related to nodes
- self.assertEqual(response.status_code, requests.codes.ok)
- nbNode = len(res['network'][0]['node'])
- self.assertEqual(nbNode, 4)
+ response = test_utils_rfc8040.get_ietf_network_request('openroadm-topology', 'config')
+ self.assertEqual(response['status_code'], requests.codes.ok)
+ self.assertEqual(len(response['network'][0]['node']), 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 in self.CHECK_DICT1:
- self.assertEqual(nodeType, self.CHECK_DICT1[nodeId]['node_type'])
- if self.CHECK_DICT1[nodeId]['node_type'] == 'SRG':
- self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']), 5)
- for item in self.CHECK_DICT1[nodeId]['checks_tp']:
- self.assertIn(item, res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
- self.assertIn({'network-ref': 'clli-network', 'node-ref': 'NodeA'},
- res['network'][0]['node'][i]['supporting-node'])
- self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADM-A1'},
- res['network'][0]['node'][i]['supporting-node'])
- listNode.remove(nodeId)
- else:
- self.assertFalse(True)
+ for val in response['network'][0]['node']:
+ self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADM-A1'}, val['supporting-node'])
+ nodeType = val['org-openroadm-common-network:node-type']
+ nodeId = val['node-id']
+ self.assertIn(nodeId, self.CHECK_DICT1)
+ self.assertEqual(nodeType, self.CHECK_DICT1[nodeId]['node_type'])
+ if self.CHECK_DICT1[nodeId]['node_type'] == 'SRG':
+ self.assertEqual(len(val['ietf-network-topology:termination-point']), 5)
+ for item in self.CHECK_DICT1[nodeId]['checks_tp']:
+ self.assertIn(item, val['ietf-network-topology:termination-point'])
+ self.assertIn({'network-ref': 'clli-network', 'node-ref': 'NodeA'}, val['supporting-node'])
+ self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADM-A1'}, val['supporting-node'])
+ listNode.remove(nodeId)
self.assertEqual(len(listNode), 0)
def test_39_disconnect_ROADM_XPDRA_link(self):
# Link-1
- response = test_utils.del_link_request("XPDR-A1-XPDR1-XPDR1-NETWORK1toROADM-A1-SRG1-SRG1-PP1-TXRX")
- self.assertEqual(response.status_code, requests.codes.ok)
+ response = test_utils_rfc8040.del_ietf_network_link_request(
+ 'openroadm-topology',
+ 'XPDR-A1-XPDR1-XPDR1-NETWORK1toROADM-A1-SRG1-SRG1-PP1-TXRX',
+ 'config')
# Link-2
- response = test_utils.del_link_request("ROADM-A1-SRG1-SRG1-PP1-TXRXtoXPDR-A1-XPDR1-XPDR1-NETWORK1")
- self.assertEqual(response.status_code, requests.codes.ok)
+ response2 = test_utils_rfc8040.del_ietf_network_link_request(
+ 'openroadm-topology',
+ 'ROADM-A1-SRG1-SRG1-PP1-TXRXtoXPDR-A1-XPDR1-XPDR1-NETWORK1',
+ 'config')
+ self.assertIn(response.status_code, (requests.codes.ok, requests.codes.no_content))
+ self.assertIn(response2.status_code, (requests.codes.ok, requests.codes.no_content))
def test_40_getLinks_OpenRoadmTopology(self):
- response = test_utils.get_ordm_topo_request("")
- self.assertEqual(response.status_code, requests.codes.ok)
- res = response.json()
- nbLink = len(res['network'][0]['ietf-network-topology:link'])
- self.assertEqual(nbLink, 16)
+ response = test_utils_rfc8040.get_ietf_network_request('openroadm-topology', 'config')
+ self.assertEqual(response['status_code'], requests.codes.ok)
+ self.assertEqual(len(response['network'][0]['ietf-network-topology:link']), 16)
check_list = {'EXPRESS-LINK': ['ROADM-A1-DEG2-DEG2-CTP-TXRXtoROADM-A1-DEG1-DEG1-CTP-TXRX',
'ROADM-A1-DEG1-DEG1-CTP-TXRXtoROADM-A1-DEG2-DEG2-CTP-TXRX'],
'ADD-LINK': ['ROADM-A1-SRG1-SRG1-CP-TXRXtoROADM-A1-DEG2-DEG2-CTP-TXRX',
'ROADM-A1-DEG2-DEG2-CTP-TXRXtoROADM-A1-SRG3-SRG3-CP-TXRX']
}
roadmtoroadmLink = 0
- for i in range(0, nbLink):
- linkId = res['network'][0]['ietf-network-topology:link'][i]['link-id']
- linkType = res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type']
+ for val in response['network'][0]['ietf-network-topology:link']:
+ linkId = val['link-id']
+ linkType = val['org-openroadm-common-network:link-type']
if linkType in check_list:
find = linkId in check_list[linkType]
self.assertEqual(find, True)
for val in check_list.values():
self.assertEqual(len(val), 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 val in response['network'][0]['ietf-network-topology:link']:
+ self.assertNotEqual(val['org-openroadm-common-network:link-type'], 'XPONDER-OUTPUT')
+ self.assertNotEqual(val['org-openroadm-common-network:link-type'], 'XPONDER-INPUT')
def test_41_disconnect_ROADMA(self):
- response = test_utils.unmount_device("ROADM-A1")
- self.assertEqual(response.status_code, requests.codes.ok, test_utils.CODE_SHOULD_BE_200)
+ response = test_utils_rfc8040.unmount_device("ROADM-A1")
+ self.assertIn(response.status_code, (requests.codes.ok, requests.codes.no_content))
# Delete in the clli-network
- response = test_utils.del_node_request("NodeA")
- self.assertEqual(response.status_code, requests.codes.ok)
+ response = test_utils_rfc8040.del_ietf_network_node_request('clli-network', 'NodeA', 'config')
+ self.assertIn(response.status_code, (requests.codes.ok, requests.codes.no_content))
def test_42_getClliNetwork(self):
- response = test_utils.get_clli_net_request()
- self.assertEqual(response.status_code, requests.codes.ok)
- res = response.json()
- self.assertNotIn('node', res['network'][0])
+ response = test_utils_rfc8040.get_ietf_network_request('clli-network', 'config')
+ self.assertEqual(response['status_code'], requests.codes.ok)
+ self.assertNotIn('node', response['network'][0])
def test_43_getOpenRoadmNetwork(self):
- response = test_utils.get_ordm_net_request()
- self.assertEqual(response.status_code, requests.codes.ok)
- res = response.json()
- self.assertNotIn('node', res['network'][0])
+ response = test_utils_rfc8040.get_ietf_network_request('openroadm-network', 'config')
+ self.assertEqual(response['status_code'], requests.codes.ok)
+ self.assertNotIn('node', response['network'][0])
def test_44_check_roadm2roadm_link_persistence(self):
- response = test_utils.get_ordm_topo_request("")
- self.assertEqual(response.status_code, requests.codes.ok)
- res = response.json()
- nbLink = len(res['network'][0]['ietf-network-topology:link'])
- self.assertNotIn('node', res['network'][0])
- self.assertEqual(nbLink, 6)
+ response = test_utils_rfc8040.get_ietf_network_request('openroadm-topology', 'config')
+ self.assertEqual(response['status_code'], requests.codes.ok)
+ self.assertNotIn('node', response['network'][0])
+ self.assertEqual(len(response['network'][0]['ietf-network-topology:link']), 6)
if __name__ == "__main__":
res = test_utils_rfc8040.portmapping_mc_capa_request("XPDR-A2", "XPDR-mcprofile")
self.assertEqual(res['status_code'], requests.codes.ok)
self.assertEqual(res['mc-capabilities'][0]['mc-node-name'], 'XPDR-mcprofile')
- self.assertEqual(res['mc-capabilities'][0]['center-freq-granularity'], '3.125')
- self.assertEqual(res['mc-capabilities'][0]['slot-width-granularity'], '6.25')
+ self.assertEqual(str(res['mc-capabilities'][0]['center-freq-granularity']), '3.125')
+ self.assertEqual(str(res['mc-capabilities'][0]['slot-width-granularity']), '6.25')
def test_09_xpdr_device_disconnection(self):
response = test_utils_rfc8040.unmount_device("XPDR-A2")
def test_10_xpdr_device_disconnected(self):
response = test_utils_rfc8040.check_device_connection("XPDR-A2")
self.assertEqual(response['status_code'], requests.codes.conflict)
- self.assertIn(
- {"error-tag": "data-missing",
- "error-message": "Request could not be completed because the relevant data model content does not exist",
- "error-type": "protocol"},
- response['connection-status'])
+ self.assertIn(response['connection-status']['error-type'], ('protocol', 'application'))
+ self.assertEqual(response['connection-status']['error-tag'], 'data-missing')
+ self.assertEqual(response['connection-status']['error-message'],
+ 'Request could not be completed because the relevant data model content does not exist')
def test_11_xpdr_device_not_connected(self):
response = test_utils_rfc8040.get_portmapping_node_info("XPDR-A2")
self.assertEqual(response['status_code'], requests.codes.conflict)
- self.assertIn(
- {"error-tag": "data-missing",
- "error-message": "Request could not be completed because the relevant data model content does not exist",
- "error-type": "protocol"},
- response['node-info'])
+ self.assertIn(response['node-info']['error-type'], ('protocol', 'application'))
+ self.assertEqual(response['node-info']['error-tag'], 'data-missing')
+ self.assertEqual(response['node-info']['error-message'],
+ 'Request could not be completed because the relevant data model content does not exist')
if __name__ == '__main__':
SIMS = simulators.SIMS
-HONEYNODE_OK_START_MSG = "Netconf SSH endpoint started successfully at 0.0.0.0"
+HONEYNODE_OK_START_MSG = 'Netconf SSH endpoint started successfully at 0.0.0.0'
KARAF_OK_START_MSG = re.escape(
"Blueprint container for bundle org.opendaylight.netconf.restconf")+".* was successfully created"
LIGHTY_OK_START_MSG = re.escape("lighty.io and RESTCONF-NETCONF started")
-ODL_LOGIN = "admin"
-ODL_PWD = "admin"
-NODES_LOGIN = "admin"
-NODES_PWD = "admin"
-URL_CONFIG_ORDM_TOPO = "{}/data/ietf-network:networks/network=openroadm-topology"
-URL_PORTMAPPING = "{}/data/transportpce-portmapping:network/nodes="
+ODL_LOGIN = 'admin'
+ODL_PWD = 'admin'
+NODES_LOGIN = 'admin'
+NODES_PWD = 'admin'
TYPE_APPLICATION_JSON = {'Content-Type': 'application/json', 'Accept': 'application/json'}
TYPE_APPLICATION_XML = {'Content-Type': 'application/xml', 'Accept': 'application/xml'}
CODE_SHOULD_BE_200 = 'Http status code should be 200'
CODE_SHOULD_BE_201 = 'Http status code should be 201'
-SIM_LOG_DIRECTORY = os.path.join(os.path.dirname(os.path.realpath(__file__)), "log")
+SIM_LOG_DIRECTORY = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'log')
process_list = []
-
-if "USE_ODL_ALT_RESTCONF_PORT" in os.environ:
- RESTCONF_BASE_URL = "http://localhost:" + os.environ['USE_ODL_ALT_RESTCONF_PORT'] + "/rests"
+if 'USE_ODL_ALT_RESTCONF_PORT' in os.environ:
+ RESTCONF_PORT = os.environ['USE_ODL_ALT_RESTCONF_PORT']
+else:
+ RESTCONF_PORT = 8181
+
+RESTCONF_PATH_PREFIX = {'rfc8040': '/rests',
+ 'draft-bierman02': '/restconf'}
+if 'USE_ODL_RESTCONF_VERSION' in os.environ:
+ RESTCONF_VERSION = os.environ['USE_ODL_RESTCONF_VERSION']
+ if RESTCONF_VERSION not in RESTCONF_PATH_PREFIX:
+ print('unsupported RESTCONF version ' + RESTCONF_VERSION)
+ sys.exit(3)
else:
- RESTCONF_BASE_URL = "http://localhost:8181/rests"
+ RESTCONF_VERSION = 'rfc8040'
+
+RESTCONF_BASE_URL = 'http://localhost:' + RESTCONF_PORT + RESTCONF_PATH_PREFIX[RESTCONF_VERSION]
-if "USE_ODL_ALT_KARAF_INSTALL_DIR" in os.environ:
+if 'USE_ODL_ALT_KARAF_INSTALL_DIR' in os.environ:
KARAF_INSTALLDIR = os.environ['USE_ODL_ALT_KARAF_INSTALL_DIR']
else:
- KARAF_INSTALLDIR = "karaf"
+ KARAF_INSTALLDIR = 'karaf'
KARAF_LOG = os.path.join(
os.path.dirname(os.path.realpath(__file__)),
- "..", "..", "..", KARAF_INSTALLDIR, "target", "assembly", "data", "log", "karaf.log")
+ '..', '..', '..', KARAF_INSTALLDIR, 'target', 'assembly', 'data', 'log', 'karaf.log')
-if "USE_LIGHTY" in os.environ and os.environ['USE_LIGHTY'] == 'True':
+if 'USE_LIGHTY' in os.environ and os.environ['USE_LIGHTY'] == 'True':
TPCE_LOG = 'odl-' + str(os.getpid()) + '.log'
else:
TPCE_LOG = KARAF_LOG
def get_request(url):
return requests.request(
- "GET", url.format(RESTCONF_BASE_URL),
+ 'GET', url.format(RESTCONF_BASE_URL),
headers=TYPE_APPLICATION_JSON,
auth=(ODL_LOGIN, ODL_PWD))
def put_request(url, data):
return requests.request(
- "PUT", url.format(RESTCONF_BASE_URL),
+ 'PUT', url.format(RESTCONF_BASE_URL),
data=json.dumps(data),
headers=TYPE_APPLICATION_JSON,
auth=(ODL_LOGIN, ODL_PWD))
def delete_request(url):
return requests.request(
- "DELETE", url.format(RESTCONF_BASE_URL),
+ 'DELETE', url.format(RESTCONF_BASE_URL),
+ headers=TYPE_APPLICATION_JSON,
+ auth=(ODL_LOGIN, ODL_PWD))
+
+
+def post_request(url, data):
+ if data:
+ print(json.dumps(data))
+ return requests.request(
+ "POST", url.format(RESTCONF_BASE_URL),
+ data=json.dumps(data),
+ headers=TYPE_APPLICATION_JSON,
+ auth=(ODL_LOGIN, ODL_PWD))
+ return requests.request(
+ "POST", url.format(RESTCONF_BASE_URL),
headers=TYPE_APPLICATION_JSON,
auth=(ODL_LOGIN, ODL_PWD))
def start_sims(sims_list):
for sim in sims_list:
- print("starting simulator " + sim[0] + " in OpenROADM device version " + sim[1] + "...")
+ print('starting simulator ' + sim[0] + ' in OpenROADM device version ' + sim[1] + '...')
log_file = os.path.join(SIM_LOG_DIRECTORY, SIMS[sim]['logfile'])
process = start_honeynode(log_file, sim)
if wait_until_log_contains(log_file, HONEYNODE_OK_START_MSG, 100):
- print("simulator for " + sim[0] + " started")
+ print('simulator for ' + sim[0] + ' started')
else:
- print("simulator for " + sim[0] + " failed to start")
+ print('simulator for ' + sim[0] + ' failed to start')
shutdown_process(process)
for pid in process_list:
shutdown_process(pid)
def start_tpce():
- print("starting OpenDaylight...")
- if "USE_LIGHTY" in os.environ and os.environ['USE_LIGHTY'] == 'True':
+ print('starting OpenDaylight...')
+ if 'USE_LIGHTY' in os.environ and os.environ['USE_LIGHTY'] == 'True':
process = start_lighty()
start_msg = LIGHTY_OK_START_MSG
else:
process = start_karaf()
start_msg = KARAF_OK_START_MSG
if wait_until_log_contains(TPCE_LOG, start_msg, time_to_wait=300):
- print("OpenDaylight started !")
+ print('OpenDaylight started !')
else:
- print("OpenDaylight failed to start !")
+ print('OpenDaylight failed to start !')
shutdown_process(process)
for pid in process_list:
shutdown_process(pid)
def start_karaf():
- print("starting KARAF TransportPCE build...")
+ print('starting KARAF TransportPCE build...')
executable = os.path.join(
os.path.dirname(os.path.realpath(__file__)),
- "..", "..", "..", KARAF_INSTALLDIR, "target", "assembly", "bin", "karaf")
+ '..', '..', '..', KARAF_INSTALLDIR, 'target', 'assembly', 'bin', 'karaf')
with open('odl.log', 'w', encoding='utf-8') as outfile:
return subprocess.Popen(
- ["sh", executable, "server"], stdout=outfile, stderr=outfile, stdin=None)
+ ['sh', executable, 'server'], stdout=outfile, stderr=outfile, stdin=None)
def start_lighty():
- 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", "tpce",
- "clean-start-controller.sh")
+ '..', '..', '..', 'lighty', 'target', 'tpce',
+ 'clean-start-controller.sh')
with open(TPCE_LOG, 'w', encoding='utf-8') as outfile:
return subprocess.Popen(
- ["sh", executable], stdout=outfile, stderr=outfile, stdin=None)
+ ['sh', executable], stdout=outfile, stderr=outfile, stdin=None)
def install_karaf_feature(feature_name: str):
- print("installing feature " + feature_name)
+ print('installing feature ' + feature_name)
executable = os.path.join(
os.path.dirname(os.path.realpath(__file__)),
- "..", "..", "..", KARAF_INSTALLDIR, "target", "assembly", "bin", "client")
+ '..', '..', '..', KARAF_INSTALLDIR, 'target', 'assembly', 'bin', 'client')
return subprocess.run([executable],
input='feature:install ' + feature_name + '\n feature:list | grep '
+ feature_name + ' \n logout \n',
def start_honeynode(log_file: str, sim):
executable = os.path.join(os.path.dirname(os.path.realpath(__file__)),
- "..", "..", "honeynode", sim[1], "honeynode-simulator", "honeycomb-tpce")
+ '..', '..', 'honeynode', sim[1], 'honeynode-simulator', 'honeycomb-tpce')
sample_directory = os.path.join(os.path.dirname(os.path.realpath(__file__)),
- "..", "..", "sample_configs", "openroadm", sim[1])
+ '..', '..', 'sample_configs', 'openroadm', sim[1])
if os.path.isfile(executable):
with open(log_file, 'w', encoding='utf-8') as outfile:
return subprocess.Popen(
while True:
line = filelogs.readline()
if compiled_regexp.search(line):
- print("Pattern found!", end=' ')
+ print('Pattern found!', end=' ')
stringfound = True
break
if not line:
time.sleep(0.1)
except TimeoutError:
- print("Pattern not found after " + str(time_to_wait), end=" seconds! ", flush=True)
+ print('Pattern not found after ' + str(time_to_wait), end=' seconds! ', flush=True)
except PermissionError:
- print("Permission Error when trying to access the log file", end=" ... ", flush=True)
+ print('Permission Error when trying to access the log file', end=' ... ', flush=True)
finally:
if filefound:
filelogs.close()
else:
- print("log file does not exist or is not accessible... ", flush=True)
+ print('log file does not exist or is not accessible... ', flush=True)
return stringfound
#
-def mount_device(node_id, sim):
- url = "{}/data/network-topology:network-topology/topology=topology-netconf/node={}"
- body = {"node": [{
- "node-id": node_id,
- "netconf-node-topology:username": NODES_LOGIN,
- "netconf-node-topology:password": NODES_PWD,
- "netconf-node-topology:host": "127.0.0.1",
- "netconf-node-topology:port": SIMS[sim]['port'],
- "netconf-node-topology:tcp-only": "false",
- "netconf-node-topology:pass-through": {}}]}
- response = put_request(url.format('{}', node_id), body)
- if wait_until_log_contains(TPCE_LOG, re.escape("Triggering notification stream NETCONF for node " + node_id), 180):
- print("Node " + node_id + " correctly added to tpce topology", end='... ', flush=True)
+def mount_device(node: str, sim: str):
+ url = {'rfc8040': '{}/data/network-topology:network-topology/topology=topology-netconf/node={}',
+ 'draft-bierman02': '{}/config/network-topology:network-topology/topology/topology-netconf/node/{}'}
+ body = {'node': [{
+ 'node-id': node,
+ 'netconf-node-topology:username': NODES_LOGIN,
+ 'netconf-node-topology:password': NODES_PWD,
+ 'netconf-node-topology:host': '127.0.0.1',
+ 'netconf-node-topology:port': SIMS[sim]['port'],
+ 'netconf-node-topology:tcp-only': 'false',
+ 'netconf-node-topology:pass-through': {}}]}
+ response = put_request(url[RESTCONF_VERSION].format('{}', node), body)
+ if wait_until_log_contains(TPCE_LOG, re.escape('Triggering notification stream NETCONF for node ' + node), 180):
+ print('Node ' + node + ' correctly added to tpce topology', end='... ', flush=True)
else:
- print("Node " + node_id + " still not added to tpce topology", end='... ', flush=True)
+ print('Node ' + node + ' still not added to tpce topology', end='... ', flush=True)
if response.status_code == requests.codes.ok:
- print("It was probably loaded at start-up", end='... ', flush=True)
+ print('It was probably loaded at start-up', end='... ', flush=True)
# TODO an else-clause to abort test would probably be nice here
return response
-def unmount_device(node_id):
- url = "{}/data/network-topology:network-topology/topology=topology-netconf/node={}"
- response = delete_request(url.format('{}', node_id))
- if wait_until_log_contains(TPCE_LOG, re.escape("onDeviceDisConnected: " + node_id), 180):
- print("Node " + node_id + " correctly deleted from tpce topology", end='... ', flush=True)
+def unmount_device(node: str):
+ url = {'rfc8040': '{}/data/network-topology:network-topology/topology=topology-netconf/node={}',
+ 'draft-bierman02': '{}/config/network-topology:network-topology/topology/topology-netconf/node/{}'}
+ response = delete_request(url[RESTCONF_VERSION].format('{}', node))
+ if wait_until_log_contains(TPCE_LOG, re.escape("onDeviceDisConnected: " + node), 180):
+ print('Node ' + node + ' correctly deleted from tpce topology', end='... ', flush=True)
else:
- print("Node " + node_id + " still not deleted from tpce topology", end='... ', flush=True)
+ print('Node ' + node + ' still not deleted from tpce topology', end='... ', flush=True)
return response
def check_device_connection(node: str):
- url = "{}/data/network-topology:network-topology/topology=topology-netconf/node={}"
- response = get_request(url.format('{}', node))
+ url = {'rfc8040': '{}/data/network-topology:network-topology/topology=topology-netconf/node={}',
+ 'draft-bierman02': '{}/operational/network-topology:network-topology/topology/topology-netconf/node/{}'}
+ response = get_request(url[RESTCONF_VERSION].format('{}', node))
res = response.json()
- key = 'network-topology:node'
- if key in res.keys():
- connection_status = res[key][0]['netconf-node-topology:connection-status']
+ return_key = {'rfc8040': 'network-topology:node',
+ 'draft-bierman02': 'node'}
+ if return_key[RESTCONF_VERSION] in res.keys():
+ connection_status = res[return_key[RESTCONF_VERSION]][0]['netconf-node-topology:connection-status']
else:
- connection_status = res['errors']['error']
+ connection_status = res['errors']['error'][0]
return {'status_code': response.status_code,
'connection-status': connection_status}
def get_portmapping(node: str):
- url = "{}/data/transportpce-portmapping:network/nodes={}"
- response = get_request(url.format('{}', node))
+ url = {'rfc8040': '{}/data/transportpce-portmapping:network/nodes={}',
+ 'draft-bierman02': '{}/config/transportpce-portmapping:network/nodes/{}'}
+ response = get_request(url[RESTCONF_VERSION].format('{}', node))
res = response.json()
- print(res)
- nodes = res['transportpce-portmapping:nodes']
+ return_key = {'rfc8040': 'transportpce-portmapping:nodes',
+ 'draft-bierman02': 'nodes'}
+ nodes = res[return_key[RESTCONF_VERSION]]
return {'status_code': response.status_code,
'nodes': nodes}
def get_portmapping_node_info(node: str):
- url = "{}/data/transportpce-portmapping:network/nodes={}/node-info"
- response = get_request(url.format('{}', node))
+ url = {'rfc8040': '{}/data/transportpce-portmapping:network/nodes={}/node-info',
+ 'draft-bierman02': '{}/config/transportpce-portmapping:network/nodes/{}/node-info'}
+ response = get_request(url[RESTCONF_VERSION].format('{}', node))
res = response.json()
- key = 'transportpce-portmapping:node-info'
- if key in res.keys():
- node_info = res[key]
+ return_key = {'rfc8040': 'transportpce-portmapping:node-info',
+ 'draft-bierman02': 'node-info'}
+ if return_key[RESTCONF_VERSION] in res.keys():
+ node_info = res[return_key[RESTCONF_VERSION]]
else:
- node_info = res['errors']['error']
+ node_info = res['errors']['error'][0]
return {'status_code': response.status_code,
'node-info': node_info}
def portmapping_request(node: str, mapping: str):
- url = "{}/data/transportpce-portmapping:network/nodes={}/mapping={}"
- response = get_request(url.format('{}', node, mapping))
+ url = {'rfc8040': '{}/data/transportpce-portmapping:network/nodes={}/mapping={}',
+ 'draft-bierman02': '{}/config/transportpce-portmapping:network/nodes/{}/mapping/{}'}
+ response = get_request(url[RESTCONF_VERSION].format('{}', node, mapping))
res = response.json()
- mapping = res['transportpce-portmapping:mapping']
+ return_key = {'rfc8040': 'transportpce-portmapping:mapping',
+ 'draft-bierman02': 'mapping'}
+ mapping = res[return_key[RESTCONF_VERSION]]
return {'status_code': response.status_code,
'mapping': mapping}
def portmapping_mc_capa_request(node: str, mc_capa: str):
- url = "{}/data/transportpce-portmapping:network/nodes={}/mc-capabilities={}"
- response = get_request(url.format('{}', node, mc_capa))
+ url = {'rfc8040': '{}/data/transportpce-portmapping:network/nodes={}/mc-capabilities={}',
+ 'draft-bierman02': '{}/config/transportpce-portmapping:network/nodes/{}/mc-capabilities/{}'}
+ response = get_request(url[RESTCONF_VERSION].format('{}', node, mc_capa))
res = response.json()
- capabilities = res['transportpce-portmapping:mc-capabilities']
+ return_key = {'rfc8040': 'transportpce-portmapping:mc-capabilities',
+ 'draft-bierman02': 'mc-capabilities'}
+ capabilities = res[return_key[RESTCONF_VERSION]]
return {'status_code': response.status_code,
'mc-capabilities': capabilities}
+
+#
+# Topology operations
+#
+
+
+def get_ietf_network_request(network: str, content: str):
+ url = {'rfc8040': '{}/data/ietf-network:networks/network={}?content={}',
+ 'draft-bierman02': '{}/{}/ietf-network:networks/network/{}'}
+ if RESTCONF_VERSION == 'rfc8040':
+ format_args = ('{}', network, content)
+ elif content == 'config':
+ format_args = ('{}', content, network)
+ else:
+ format_args = ('{}', 'operational', network)
+ response = get_request(url[RESTCONF_VERSION].format(*format_args))
+ res = response.json()
+ return_key = {'rfc8040': 'ietf-network:network',
+ 'draft-bierman02': 'network'}
+ networks = res[return_key[RESTCONF_VERSION]]
+ return {'status_code': response.status_code,
+ 'network': networks}
+
+
+def get_ietf_network_link_request(network: str, link: str, content: str):
+ url = {'rfc8040': '{}/data/ietf-network:networks/network={}/ietf-network-topology:link={}?content={}',
+ 'draft-bierman02': '{}/{}/ietf-network:networks/network/{}/ietf-network-topology:link/{}'}
+ if RESTCONF_VERSION == 'rfc8040':
+ format_args = ('{}', network, link, content)
+ elif content == 'config':
+ format_args = ('{}', content, network, link)
+ else:
+ format_args = ('{}', 'operational', network, link)
+ response = get_request(url[RESTCONF_VERSION].format(*format_args))
+ res = response.json()
+ return_key = {'rfc8040': 'ietf-network-topology:link',
+ 'draft-bierman02': 'ietf-network-topology:link'}
+ link = res[return_key[RESTCONF_VERSION]][0]
+ return {'status_code': response.status_code,
+ 'link': link}
+
+
+def del_ietf_network_link_request(network: str, link: str, content: str):
+ url = {'rfc8040': '{}/data/ietf-network:networks/network={}/ietf-network-topology:link={}?content={}',
+ 'draft-bierman02': '{}/{}/ietf-network:networks/network/{}/ietf-network-topology:link/{}'}
+ if RESTCONF_VERSION == 'rfc8040':
+ format_args = ('{}', network, link, content)
+ elif content == 'config':
+ format_args = ('{}', content, network, link)
+ else:
+ format_args = ('{}', 'operational', network, link)
+ response = delete_request(url[RESTCONF_VERSION].format(*format_args))
+ return response
+
+
+def add_oms_attr_request(link: str, oms_attr: str):
+ url = {'rfc8040': '{}/data/ietf-network:networks/network={}/ietf-network-topology:link={}',
+ 'draft-bierman02': '{}/config/ietf-network:networks/network/{}/ietf-network-topology:link/{}'}
+ url2 = url[RESTCONF_VERSION] + '/org-openroadm-network-topology:OMS-attributes/span'
+ network = 'openroadm-topology'
+ response = put_request(url2.format('{}', network, link), oms_attr)
+ return response
+
+
+def del_oms_attr_request(link: str,):
+ url = {'rfc8040': '{}/data/ietf-network:networks/network={}/ietf-network-topology:link={}',
+ 'draft-bierman02': '{}/config/ietf-network:networks/network/{}/ietf-network-topology:link/{}'}
+ url2 = url[RESTCONF_VERSION] + '/org-openroadm-network-topology:OMS-attributes/span'
+ network = 'openroadm-topology'
+ response = delete_request(url2.format('{}', network, link))
+ return response
+
+
+def del_ietf_network_node_request(network: str, node: str, content: str):
+ url = {'rfc8040': '{}/data/ietf-network:networks/network={}/node={}?content={}',
+ 'draft-bierman02': '{}/{}/ietf-network:networks/network/{}/node/{}'}
+ if RESTCONF_VERSION == 'rfc8040':
+ format_args = ('{}', network, node, content)
+ elif content == 'config':
+ format_args = ('{}', content, network, node)
+ else:
+ format_args = ('{}', 'operational', network, node)
+ response = delete_request(url[RESTCONF_VERSION].format(*format_args))
+ return response
+
+#
+# TransportPCE network utils operations
+#
+
+
+def connect_xpdr_to_rdm_request(payload: dict):
+ url = "{}/operations/transportpce-networkutils:init-xpdr-rdm-links"
+ payload_prefix = {'rfc8040': '', 'draft-bierman02': 'networkutils:'}
+ data = {
+ payload_prefix[RESTCONF_VERSION] + "input": {
+ payload_prefix[RESTCONF_VERSION] + "links-input": {
+ payload_prefix[RESTCONF_VERSION] + "xpdr-node": payload['xpdr-node'],
+ payload_prefix[RESTCONF_VERSION] + "xpdr-num": payload['xpdr-num'],
+ payload_prefix[RESTCONF_VERSION] + "network-num": payload['network-num'],
+ payload_prefix[RESTCONF_VERSION] + "rdm-node": payload['rdm-node'],
+ payload_prefix[RESTCONF_VERSION] + "srg-num": payload['srg-num'],
+ payload_prefix[RESTCONF_VERSION] + "termination-point-num": payload['termination-point-num']
+ }
+ }
+ }
+ return post_request(url, data)
+
+
+def connect_rdm_to_xpdr_request(payload: dict):
+ url = "{}/operations/transportpce-networkutils:init-rdm-xpdr-links"
+ payload_prefix = {'rfc8040': '', 'draft-bierman02': 'networkutils:'}
+ data = {
+ payload_prefix[RESTCONF_VERSION] + "input": {
+ payload_prefix[RESTCONF_VERSION] + "links-input": {
+ payload_prefix[RESTCONF_VERSION] + "xpdr-node": payload['xpdr-node'],
+ payload_prefix[RESTCONF_VERSION] + "xpdr-num": payload['xpdr-num'],
+ payload_prefix[RESTCONF_VERSION] + "network-num": payload['network-num'],
+ payload_prefix[RESTCONF_VERSION] + "rdm-node": payload['rdm-node'],
+ payload_prefix[RESTCONF_VERSION] + "srg-num": payload['srg-num'],
+ payload_prefix[RESTCONF_VERSION] + "termination-point-num": payload['termination-point-num']
+ }
+ }
+ }
+ return post_request(url, data)
[testenv:testsPCE]
depends = buildcontroller
whitelist_externals = launch_tests.sh
-passenv = LAUNCHER USE_LIGHTY
+passenv = LAUNCHER USE_LIGHTY USE_ODL_RESTCONF_VERSION
#setenv =
# USE_LIGHTY=True
commands =
depends = buildcontroller,build_karaf_tests121,sims121,testsPCE
# testsPCE dependency is only here to chain tests in the gate and avoid resources starvation
whitelist_externals = launch_tests.sh
-passenv = LAUNCHER USE_LIGHTY
+passenv = LAUNCHER USE_LIGHTY USE_ODL_RESTCONF_VERSION
setenv =
# USE_LIGHTY=True
+# USE_ODL_RESTCONF_VERSION=draft-bierman02
USE_ODL_ALT_KARAF_ENV=./karaf121.env
USE_ODL_ALT_KARAF_INSTALL_DIR=karaf121
commands =
depends = buildcontroller,build_karaf_tests221,sims221,tests71
# tests71 dependency is only here to chain tests in the gate and avoid ressources starvation
whitelist_externals = launch_tests.sh
-passenv = LAUNCHER USE_LIGHTY
+passenv = LAUNCHER USE_LIGHTY USE_ODL_RESTCONF_VERSION
setenv =
# USE_LIGHTY=True
+# USE_ODL_RESTCONF_VERSION=draft-bierman02
USE_ODL_ALT_KARAF_ENV=./karaf221.env
USE_ODL_ALT_KARAF_INSTALL_DIR=karaf221
commands =
[testenv:tests71]
depends = buildcontroller,build_karaf_tests71,sims71
whitelist_externals = launch_tests.sh
-passenv = LAUNCHER USE_LIGHTY
+passenv = LAUNCHER USE_LIGHTY USE_ODL_RESTCONF_VERSION
setenv =
# USE_LIGHTY=True
+# USE_ODL_RESTCONF_VERSION=draft-bierman02
USE_ODL_ALT_KARAF_ENV=./karaf71.env
USE_ODL_ALT_KARAF_INSTALL_DIR=karaf71
commands =
depends = buildcontroller,sims121,sims221,sims71,tests121,tests221,tests71
#the last dependency is to avoid temporarily concurrent ressources problem in parallel mode
whitelist_externals = launch_tests.sh
-passenv = LAUNCHER USE_LIGHTY
+passenv = LAUNCHER USE_LIGHTY USE_ODL_RESTCONF_VERSION
setenv =
# USE_LIGHTY=True
USE_ODL_ALT_KARAF_ENV=./karaf121.env
depends = buildcontroller
whitelist_externals = launch_tests.sh
dockercmd.sh
-passenv = LAUNCHER USE_LIGHTY
+passenv = LAUNCHER USE_LIGHTY USE_ODL_RESTCONF_VERSION
commands =
#sudo docker pull atriki/gnpyrest:v1.2
./dockercmd.sh run -d -p 8008:5000 --name gnpy_tpce_rest1 atriki/gnpyrest:v1.2
depends = buildcontroller,sims221
whitelist_externals = launch_tests.sh
dockercmd.sh
-passenv = LAUNCHER USE_LIGHTY
+passenv = LAUNCHER USE_LIGHTY USE_ODL_RESTCONF_VERSION
commands =
./dockercmd.sh run -d -p 2181:2181 -p 9092:9092 --env ADVERTISED_LISTENERS=PLAINTEXT://localhost:9092 --name tpce_kafka1 teivah/kafka:2.0.0
./launch_tests.sh with_docker nbinotifications