def test_02_get_nodeId(self): response = test_utils.get_ordm_topo_request("node/ROADMA01-SRG1") self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertEqual( res['node'][0]['node-id'], 'ROADMA01-SRG1') time.sleep(1)
def test_25_check_topo_XPDRA(self): response = test_utils.get_ordm_topo_request("node/XPDRA01-XPDR1") self.assertEqual(response.status_code, requests.codes.ok) res = response.json() liste_tp = res['node'][0]['ietf-network-topology:termination-point'] for ele in liste_tp: if ele['tp-id'] == 'XPDR1-NETWORK1': self.assertEqual({ u'frequency': 196.1, u'width': 40 }, ele[ 'org-openroadm-network-topology:xpdr-network-attributes'] ['wavelength']) if ele['tp-id'] == 'XPDR1-NETWORK2': self.assertEqual({ u'frequency': 196.05, u'width': 40 }, ele[ 'org-openroadm-network-topology:xpdr-network-attributes'] ['wavelength']) if ele['tp-id'] == 'XPDR1-CLIENT1' or ele[ 'tp-id'] == 'XPDR1-CLIENT2': self.assertNotIn( 'org-openroadm-network-topology:xpdr-client-attributes', dict.keys(ele)) time.sleep(10)
def test_35_check_topo_ROADMA_DEG1(self): response = test_utils.get_ordm_topo_request("node/ROADMA01-DEG1") self.assertEqual(response.status_code, requests.codes.ok) res = response.json() freq_map = base64.b64decode( res['node'][0]['org-openroadm-network-topology:degree-attributes'] ['avail-freq-maps'][0]['freq-map']) freq_map_array = [int(x) for x in freq_map] self.assertEqual(freq_map_array[95], 255, "Lambda 1 should be available") self.assertEqual(freq_map_array[94], 255, "Lambda 2 should be available") liste_tp = res['node'][0]['ietf-network-topology:termination-point'] for ele in liste_tp: if ele['tp-id'] == 'DEG2-CTP-TXRX': freq_map = base64.b64decode( ele['org-openroadm-network-topology:ctp-attributes'] ['avail-freq-maps'][0]['freq-map']) freq_map_array = [int(x) for x in freq_map] self.assertEqual(freq_map_array[95], 255, "Lambda 1 should be available") self.assertEqual(freq_map_array[94], 255, "Lambda 2 should be available") if ele['tp-id'] == 'DEG2-TTP-TXRX': freq_map = base64.b64decode( ele['org-openroadm-network-topology:tx-ttp-attributes'] ['avail-freq-maps'][0]['freq-map']) freq_map_array = [int(x) for x in freq_map] self.assertEqual(freq_map_array[95], 255, "Lambda 1 should be available") self.assertEqual(freq_map_array[94], 255, "Lambda 2 should be available") time.sleep(10)
def test_02_compareOpenroadmTopologyPortMapping_rdm(self): responseTopo = test_utils.get_ordm_topo_request("") resTopo = responseTopo.json() nbNode = len(resTopo['network'][0]['node']) nbMapCumul = 0 nbMappings = 0 for i in range(0, nbNode): nodeId = resTopo['network'][0]['node'][i]['node-id'] print("nodeId={}".format(nodeId)) nodeMapId = nodeId.split("-")[0] + "-" + nodeId.split("-")[1] print("nodeMapId={}".format(nodeMapId)) responseMapList = test_utils.portmapping_request(nodeMapId) resMapList = responseMapList.json() nbMappings = len(resMapList['nodes'][0]['mapping']) - nbMapCumul nbTp = len(resTopo['network'][0]['node'][i] ['ietf-network-topology:termination-point']) nbMapCurrent = 0 for j in range(0, nbTp): tpId = resTopo['network'][0]['node'][i][ 'ietf-network-topology:termination-point'][j]['tp-id'] if (not "CP" in tpId) and (not "CTP" in tpId): responseMap = test_utils.portmapping_request(nodeMapId + "/mapping/" + tpId) self.assertEqual(responseMap.status_code, requests.codes.ok) if responseMap.status_code == requests.codes.ok: nbMapCurrent += 1 nbMapCumul += nbMapCurrent nbMappings -= nbMapCurrent self.assertEqual(nbMappings, 0)
def test_16_get_nodeId(self): response = test_utils.get_ordm_topo_request("node/XPONDER-3-2") self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertEqual( res['node'][0]['node-id'], 'XPONDER-3-2') time.sleep(1)
def test_03_get_linkId(self): response = test_utils.get_ordm_topo_request("link/XPDRA01-XPDR1-XPDR1-NETWORK1toROADMA01-SRG1-SRG1-PP1-TXRX") self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertEqual( res['ietf-network-topology:link'][0]['link-id'], 'XPDRA01-XPDR1-XPDR1-NETWORK1toROADMA01-SRG1-SRG1-PP1-TXRX') time.sleep(1)
def test_10_get_linkId(self): response = test_utils.get_ordm_topo_request("link/XPONDER-1-2XPDR-NW1-TX-toOpenROADM-1-2-SRG1-SRG1-PP1-RX") self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertEqual( res['ietf-network-topology:link'][0]['link-id'], 'XPONDER-1-2XPDR-NW1-TX-toOpenROADM-1-2-SRG1-SRG1-PP1-RX') time.sleep(1)
def test_12_check_openroadm_topology(self): response = test_utils.get_ordm_topo_request("") self.assertEqual(response.status_code, requests.codes.ok) res = response.json() nbNode = len(res['network'][0]['node']) nbLink = len(res['network'][0]['ietf-network-topology:link']) self.assertEqual(nbNode, 13, 'There should be 13 openroadm nodes') self.assertEqual(nbLink, 22, 'There should be 22 openroadm links') time.sleep(2)
def test_47_disconnect_xponders_from_roadm(self): url = "{}/config/ietf-network:networks/network/openroadm-topology/ietf-network-topology:link/" response = test_utils.get_ordm_topo_request("") self.assertEqual(response.status_code, requests.codes.ok) res = response.json() links = res['network'][0]['ietf-network-topology:link'] for link in links: if link["org-openroadm-common-network:link-type"] in ('XPONDER-OUTPUT', 'XPONDER-INPUT'): link_name = link["link-id"] response = test_utils.delete_request(url+link_name) self.assertEqual(response.status_code, requests.codes.ok)
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) self.assertIn('node', res['network'][0]) if 'node' in res['network'][0]: nbNode = len(res['network'][0]['node']) self.assertEqual(nbNode, 3) listNode = ['SPDR-SA1-XPDR1', 'SPDR-SA1-XPDR2', 'SPDR-SA1-XPDR3'] for i in range(0, nbNode): nodeType = res['network'][0]['node'][i][ 'org-openroadm-common-network:node-type'] nodeId = res['network'][0]['node'][i]['node-id'] if nodeId not in listNode: self.assertFalse(True) continue self.assertIn( { 'network-ref': 'openroadm-network', 'node-ref': 'SPDR-SA1' }, res['network'][0]['node'][i]['supporting-node']) self.assertIn( { 'network-ref': 'clli-network', 'node-ref': 'NodeSA' }, res['network'][0]['node'][i]['supporting-node']) self.assertEqual(nodeType, 'XPONDER') nbTps = len(res['network'][0]['node'][i] ['ietf-network-topology:termination-point']) client = 0 network = 0 for j in range(0, nbTps): tpType = (res['network'][0]['node'][i] ['ietf-network-topology:termination-point'][j] ['org-openroadm-common-network:tp-type']) if tpType == 'XPONDER-CLIENT': client += 1 elif tpType == 'XPONDER-NETWORK': network += 1 self.assertTrue(client == 0) if nodeId == 'SPDR-SA1-XPDR1' or nodeId == 'SPDR-SA1-XPDR3': self.assertTrue(network == 1) else: # elif nodeId == 'SPDR-SA1-XPDR2': self.assertTrue(network == 4) listNode.remove(nodeId) self.assertEqual(len(listNode), 0)
def test_02_compare_Openroadm_topology_portmapping_rdm(self): responseTopo = test_utils.get_ordm_topo_request("") resTopo = responseTopo.json() nbNode = len(resTopo['network'][0]['node']) for i in range(0, nbNode): nodeId = resTopo['network'][0]['node'][i]['node-id'] nodeMapId = nodeId.split("-")[0] test_utils.portmapping_request(nodeMapId) nbTp = len(resTopo['network'][0]['node'][i] ['ietf-network-topology:termination-point']) for j in range(0, nbTp): tpId = resTopo['network'][0]['node'][i][ 'ietf-network-topology:termination-point'][j]['tp-id'] if ((not "CP" in tpId) and (not "CTP" in tpId)): test_utils.portmapping_request(nodeMapId + "/mapping/" + tpId)
def test_16_check_topo_ROADMA_SRG1(self): response = test_utils.get_ordm_topo_request("node/ROADMA01-SRG1") self.assertEqual(response.status_code, requests.codes.ok) res = response.json() freq_map = base64.b64decode( res['node'][0]['org-openroadm-network-topology:srg-attributes'] ['avail-freq-maps'][0]['freq-map']) freq_map_array = [int(x) for x in freq_map] self.assertEqual(freq_map_array[95], 0, "Lambda 1 should not be available") liste_tp = res['node'][0]['ietf-network-topology:termination-point'] for ele in liste_tp: if ele['tp-id'] == 'SRG1-PP1-TXRX': freq_map = base64.b64decode( ele['org-openroadm-network-topology:pp-attributes'] ['avail-freq-maps'][0]['freq-map']) freq_map_array = [int(x) for x in freq_map] self.assertEqual(freq_map_array[95], 0, "Lambda 1 should not be available") if ele['tp-id'] == 'SRG1-PP2-TXRX': self.assertNotIn('avail-freq-maps', dict.keys(ele)) time.sleep(3)
def test_33_check_topo_XPDRA(self): response = test_utils.get_ordm_topo_request("node/XPDRA01-XPDR1") self.assertEqual(response.status_code, requests.codes.ok) res = response.json() liste_tp = res['node'][0]['ietf-network-topology:termination-point'] for ele in liste_tp: if (ele['org-openroadm-common-network:tp-type'] == 'XPONDER-CLIENT' and ele['tp-id'] in ('XPDR1-CLIENT1', 'XPDR1-CLIENT3')): self.assertNotIn( 'org-openroadm-network-topology:xpdr-client-attributes', dict.keys(ele)) elif ele[ 'org-openroadm-common-network:tp-type'] == 'XPONDER-NETWORK': self.assertIn( 'tail-equipment-id', dict.keys(ele['org-openroadm-network-topology:' 'xpdr-network-attributes'])) self.assertNotIn( 'wavelength', dict.keys(ele['org-openroadm-network-topology:' 'xpdr-network-attributes'])) time.sleep(10)
def test_11_getNodes_OpenRoadmTopology(self): response = test_utils.get_ordm_topo_request("") res = response.json() self.assertNotIn('node', res['network'][0])
def test_04_getLinks_OpenroadmTopology(self): response = test_utils.get_ordm_topo_request("") self.assertEqual(response.status_code, requests.codes.ok) res = response.json() # Tests related to links self.assertNotIn('ietf-network-topology:link', res['network'][0])
def test_25_test_topology_complex_deleted(self): response = test_utils.get_ordm_topo_request("node/XPONDER-3-2") self.assertEqual(response.status_code, requests.codes.conflict) time.sleep(1)
def test_07_test_topology_simple_bi_deleted(self): response = test_utils.get_ordm_topo_request("node/ROADMA01-SRG1") self.assertEqual(response.status_code, requests.codes.conflict) time.sleep(1)