def test_18_success1_path_computation(self): response = test_utils.path_computation_request("request1", "service1", {"service-format": "Ethernet", "service-rate": "100", "clli": "ORANGE2", "node-id": "XPONDER-2-2"}, {"service-format": "Ethernet", "service-rate": "100", "clli": "ORANGE1", "node-id": "XPONDER-1-2"}, {"customer-code": ["Some customer-code"], "co-routing": { "service-identifier-list": [ { "service-identifier": "Some existing-service", } ] } }, {"customer-code": ["Some customer-code"], "co-routing": { "service-identifier-list": [ { "service-identifier": "Some existing-service", } ] } }, "hop-count") self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn('Path is calculated', res['output']['configuration-response-common']['response-message']) time.sleep(5)
def test_04_path_computation_FeasibleWithPCE(self): response = test_utils.path_computation_request( "request-1", "service-1", { "node-id": "XPONDER-1", "service-rate": "100", "service-format": "Ethernet", "clli": "Node1" }, { "node-id": "XPONDER-5", "service-rate": "100", "service-format": "Ethernet", "clli": "Node5" }) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertEqual( res['output']['configuration-response-common']['response-code'], '200') self.assertEqual( res['output']['configuration-response-common']['response-message'], 'Path is calculated by PCE') self.assertEqual(res['output']['gnpy-response'][1]['path-dir'], 'A-to-Z') self.assertEqual(res['output']['gnpy-response'][1]['feasibility'], True) self.assertEqual(res['output']['gnpy-response'][0]['path-dir'], 'Z-to-A') self.assertEqual(res['output']['gnpy-response'][0]['feasibility'], True) time.sleep(5)
def test_20_success3_path_computation(self): response = test_utils.path_computation_request( "request 1", "service 1", { "service-rate": "100", "service-format": "Ethernet", "node-id": "XPONDER-1-2", "clli": "ORANGE1" }, { "service-rate": "100", "service-format": "Ethernet", "node-id": "XPONDER-3-2", "clli": "ORANGE3" }, {"exclude_": { "node-id": ["OpenROADM-2-1", "OpenROADM-2-2"] }}) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn( 'Path is calculated', res['output']['configuration-response-common']['response-message']) self.assertEqual( 9, res['output']['response-parameters']['path-description'] ['aToZ-direction']['aToZ-wavelength-number']) self.assertEqual( 9, res['output']['response-parameters']['path-description'] ['zToA-direction']['zToA-wavelength-number']) time.sleep(5)
def test_23_path_computation_after_oms_attribute_deletion(self): response = test_utils.path_computation_request( "request 1", "service 1", { "service-rate": "100", "service-format": "Ethernet", "node-id": "XPONDER-2-2", "clli": "ORANGE2" }, { "service-rate": "100", "service-format": "Ethernet", "node-id": "XPONDER-1-2", "clli": "ORANGE1" }) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn( 'Path is calculated', res['output']['configuration-response-common']['response-message']) nbElmPath = len(res['output']['response-parameters'] ['path-description']['aToZ-direction']['aToZ']) self.assertEqual(47, nbElmPath) link = { "link-id": "OpenROADM-1-3-DEG2-to-OpenROADM-1-2-DEG2", "state": "inService" } find = False for i in range(0, nbElmPath): resource_i = ( res['output']['response-parameters']['path-description'] ['aToZ-direction']['aToZ'][i]['resource']) if resource_i == link: find = True self.assertNotEqual(find, True) time.sleep(5)
def test_12_path_computation_rdm_uni(self): response = test_utils.path_computation_request( "request1", "service1", { "service-rate": "100", "service-format": "Ethernet", "clli": "cll21", "node-id": "OpenROADM-2-1" }, { "service-rate": "100", "service-format": "Ethernet", "clli": "ncli22", "node-id": "OpenROADM-2-2" }) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn( 'Path is calculated', res['output']['configuration-response-common']['response-message']) # ZtoA path test atozList = len(res['output']['response-parameters']['path-description'] ['aToZ-direction']['aToZ']) ztoaList = len(res['output']['response-parameters']['path-description'] ['zToA-direction']['zToA']) self.assertEqual(atozList, 15) self.assertEqual(ztoaList, 15) for i in range(0, 15): atoz = res['output']['response-parameters']['path-description'][ 'aToZ-direction']['aToZ'][i] ztoa = res['output']['response-parameters']['path-description'][ 'zToA-direction']['zToA'][i] if atoz['id'] == '14': self.assertEqual(atoz['resource']['tp-id'], 'SRG1-PP1-TX') if ztoa['id'] == '0': self.assertEqual(ztoa['resource']['tp-id'], 'SRG1-PP1-RX') time.sleep(5)
def test_07_path_computation_FoundByPCE_NotFeasibleByGnpy(self): response = test_utils.path_computation_request( "request-4", "service-4", { "node-id": "XPONDER-1", "service-rate": "400", "service-format": "Ethernet", "clli": "Node1" }, { "node-id": "XPONDER-4", "service-rate": "400", "service-format": "Ethernet", "clli": "Node4" }, { "include": { "node-id": ["OpenROADM-3", "OpenROADM-2", "OpenROADM-5"] } }) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertEqual( res['output']['configuration-response-common']['response-code'], '500') self.assertEqual( res['output']['configuration-response-common']['response-message'], 'No path available by PCE and GNPy ') time.sleep(5)
def test_09_path_computation_100G_xpdr_bi(self): response = test_utils.path_computation_request( "request-1", "service-100GE", { "service-rate": "100", "clli": "NodeA", "service-format": "Ethernet", "node-id": "XPDR-A2", "tx-direction": { "port": { "port-device-name": "XPDR-A2-XPDR2", "port-name": "XPDR2-CLIENT1" } } }, { "service-rate": "100", "clli": "NodeC", "service-format": "Ethernet", "node-id": "XPDR-C2", "tx-direction": { "port": { "port-device-name": "XPDR-C2-XPDR2", "port-name": "XPDR2-CLIENT1" } } }) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn( 'Path is calculated', res['output']['configuration-response-common']['response-message']) self.assertEqual( 100, res['output']['response-parameters']['path-description'] ['aToZ-direction']['rate']) self.assertEqual( '1.1', res['output']['response-parameters']['path-description'] ['aToZ-direction']['min-trib-slot']) self.assertEqual( '1.20', res['output']['response-parameters']['path-description'] ['aToZ-direction']['max-trib-slot']) self.assertEqual( 'dp-qpsk', res['output']['response-parameters']['path-description'] ['aToZ-direction']['modulation-format']) self.assertEqual( 100, res['output']['response-parameters']['path-description'] ['zToA-direction']['rate']) self.assertEqual( '1.1', res['output']['response-parameters']['path-description'] ['zToA-direction']['min-trib-slot']) self.assertEqual( '1.20', res['output']['response-parameters']['path-description'] ['zToA-direction']['max-trib-slot']) self.assertEqual( 'dp-qpsk', res['output']['response-parameters']['path-description'] ['zToA-direction']['modulation-format']) time.sleep(5)
def test_11_path_computation_xpdr_uni(self): response = test_utils.path_computation_request("request-1", "service-1", {"node-id": "XPONDER-1-2", "service-rate": "100", "service-format": "Ethernet", "clli": "ORANGE1"}, {"node-id": "XPONDER-3-2", "service-rate": "100", "service-format": "Ethernet", "clli": "ORANGE3"}) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn('Path is calculated', res['output']['configuration-response-common']['response-message']) time.sleep(5)
def test_05_path_computation_rdm_bi(self): response = test_utils.path_computation_request("request-1", "service-1", {"node-id": "ROADMA01", "service-rate": "100", "service-format": "Ethernet", "clli": "NodeA"}, {"node-id": "ROADMC01", "service-rate": "100", "service-format": "Ethernet", "clli": "NodeC"}) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn('Path is calculated', res['output']['configuration-response-common']['response-message']) time.sleep(5)
def test_03_path_computation_400G_xpdr_bi(self): response = test_utils.path_computation_request( "request-1", "service-1", { "node-id": "XPDR-A2", "service-rate": "400", "service-format": "Ethernet", "clli": "nodeA" }, { "node-id": "XPDR-C2", "service-rate": "400", "service-format": "Ethernet", "clli": "nodeC" }) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn( 'Path is calculated', res['output']['configuration-response-common']['response-message']) self.assertEqual( 1, res['output']['response-parameters']['path-description'] ['aToZ-direction']['aToZ-wavelength-number']) self.assertEqual( 400, res['output']['response-parameters']['path-description'] ['aToZ-direction']['rate']) self.assertEqual( 196.0375, res['output']['response-parameters']['path-description'] ['aToZ-direction']['aToZ-min-frequency']) self.assertEqual( 196.12500, res['output']['response-parameters']['path-description'] ['aToZ-direction']['aToZ-max-frequency']) self.assertEqual( 'dp-qam16', res['output']['response-parameters'] ['path-description']['aToZ-direction']['modulation-format']) self.assertEqual( 1, res['output']['response-parameters']['path-description'] ['zToA-direction']['zToA-wavelength-number']) self.assertEqual( 400, res['output']['response-parameters']['path-description'] ['zToA-direction']['rate']) self.assertEqual( 196.0375, res['output']['response-parameters']['path-description'] ['zToA-direction']['zToA-min-frequency']) self.assertEqual( 196.12500, res['output']['response-parameters']['path-description'] ['zToA-direction']['zToA-max-frequency']) self.assertEqual( 'dp-qam16', res['output']['response-parameters'] ['path-description']['zToA-direction']['modulation-format']) time.sleep(5)
def test_05_path_computation_FoundByPCE_NotFeasibleByGnpy(self): response = test_utils.path_computation_request( "request-2", "service-2", { "node-id": "XPONDER-1", "service-rate": "100", "service-format": "Ethernet", "clli": "Node1" }, { "node-id": "XPONDER-5", "service-rate": "100", "service-format": "Ethernet", "clli": "Node5" }, { "include_": { "ordered-hops": [{ "hop-number": "0", "hop-type": { "node-id": "OpenROADM-2" } }, { "hop-number": "1", "hop-type": { "node-id": "OpenROADM-3" } }, { "hop-number": "2", "hop-type": { "node-id": "OpenROADM-4" } }] } }) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertEqual( res['output']['configuration-response-common']['response-code'], '500') self.assertEqual( res['output']['configuration-response-common']['response-message'], 'No path available by PCE and GNPy ') self.assertEqual(res['output']['gnpy-response'][1]['path-dir'], 'A-to-Z') self.assertEqual(res['output']['gnpy-response'][1]['feasibility'], False) self.assertEqual(res['output']['gnpy-response'][0]['path-dir'], 'Z-to-A') self.assertEqual(res['output']['gnpy-response'][0]['feasibility'], False) time.sleep(5)
def test_07_path_computation_ODUC4_xpdr_bi(self): response = test_utils.path_computation_request( "request-1", "service-ODUC4", { "service-rate": "400", "clli": "NodeA", "service-format": "ODU", "node-id": "XPDR-A2", "tx-direction": { "port": { "port-device-name": "XPDR-A2-XPDR2" } } }, { "service-rate": "400", "clli": "NodeC", "service-format": "ODU", "node-id": "XPDR-C2", "tx-direction": { "port": { "port-device-name": "XPDR-C2-XPDR2" } } }) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn( 'Path is calculated', res['output']['configuration-response-common']['response-message']) self.assertEqual( 400, res['output']['response-parameters']['path-description'] ['aToZ-direction']['rate']) self.assertEqual( 'dp-qam16', res['output']['response-parameters'] ['path-description']['aToZ-direction']['modulation-format']) self.assertEqual( 400, res['output']['response-parameters']['path-description'] ['zToA-direction']['rate']) self.assertEqual( 'dp-qam16', res['output']['response-parameters'] ['path-description']['zToA-direction']['modulation-format']) time.sleep(5)
def test_06_path_computation_NotFoundByPCE_FoundByGNPy(self): response = test_utils.path_computation_request( "request-3", "service-3", { "node-id": "XPONDER-1", "service-rate": "100", "service-format": "Ethernet", "clli": "Node1" }, { "node-id": "XPONDER-4", "service-rate": "100", "service-format": "Ethernet", "clli": "Node5" }, {"include": { "node-id": ["OpenROADM-2", "OpenROADM-3"] }}) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertEqual( res['output']['configuration-response-common']['response-code'], '200') self.assertEqual( res['output']['configuration-response-common']['response-message'], 'Path is calculated by GNPy') self.assertIn('A-to-Z', [ res['output']['gnpy-response'][0]['path-dir'], res['output']['gnpy-response'][1]['path-dir'] ]) self.assertIn('Z-to-A', [ res['output']['gnpy-response'][0]['path-dir'], res['output']['gnpy-response'][1]['path-dir'] ]) self.assertEqual(res['output']['gnpy-response'][1]['feasibility'], True) self.assertEqual(res['output']['gnpy-response'][0]['feasibility'], True) time.sleep(5)
def test_18_success1_path_computation(self): response = test_utils.path_computation_request( "request1", "service1", { "service-format": "Ethernet", "service-rate": "100", "clli": "ORANGE2", "node-id": "XPONDER-2-2", "tx-direction": { "port": { "port-device-name": "Some port-device-name", "port-type": "Some port-type", "port-name": "Some port-name", "port-rack": "Some port-rack", "port-shelf": "Some port-shelf", "port-slot": "Some port-slot", "port-sub-slot": "Some port-sub-slot" } }, "rx-direction": { "port": { "port-device-name": "Some port-device-name", "port-type": "Some port-type", "port-name": "Some port-name", "port-rack": "Some port-rack", "port-shelf": "Some port-shelf", "port-slot": "Some port-slot", "port-sub-slot": "Some port-sub-slot" } } }, { "service-format": "Ethernet", "service-rate": "100", "clli": "ORANGE1", "node-id": "XPONDER-1-2", "tx-direction": { "port": { "port-device-name": "Some port-device-name", "port-type": "Some port-type", "port-name": "Some port-name", "port-rack": "Some port-rack", "port-shelf": "Some port-shelf", "port-slot": "Some port-slot", "port-sub-slot": "Some port-sub-slot" } }, "rx-direction": { "port": { "port-device-name": "Some port-device-name", "port-type": "Some port-type", "port-name": "Some port-name", "port-rack": "Some port-rack", "port-shelf": "Some port-shelf", "port-slot": "Some port-slot", "port-sub-slot": "Some port-sub-slot" } } }, { "customer-code": ["Some customer-code"], "co-routing": { "existing-service": ["Some existing-service"] } }, { "customer-code": ["Some customer-code"], "co-routing": { "existing-service": ["Some existing-service"] } }, "hop-count", {"locally-protected-links": "true"}) self.assertEqual(response.status_code, requests.codes.ok) res = response.json() self.assertIn( 'Path is calculated', res['output']['configuration-response-common']['response-message']) time.sleep(5)