+ # Path computed by PCE is not feasible by GNPy and GNPy cannot find
+ # another one (low SNR)
+ 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'][0]['path-dir'],
+ 'A-to-Z')
+ self.assertEqual(res['output']['gnpy-response'][0]['feasibility'],
+ False)
+ self.assertEqual(res['output']['gnpy-response'][1]['path-dir'],
+ 'Z-to-A')
+ self.assertEqual(res['output']['gnpy-response'][1]['feasibility'],
+ False)
+ time.sleep(5)
+
+ # #PCE cannot find a path while GNPy finds a feasible one
+ 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_": {"ordered-hops": [
+ {"hop-number": "0", "hop-type": {"node-id": "OpenROADM-2"}},
+ {"hop-number": "1", "hop-type": {"node-id": "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.assertEqual(res['output']['gnpy-response'][0]['path-dir'],
+ 'A-to-Z')
+ self.assertEqual(res['output']['gnpy-response'][0]['feasibility'], True)
+ self.assertEqual(res['output']['gnpy-response'][1]['path-dir'],
+ 'Z-to-A')
+ self.assertEqual(res['output']['gnpy-response'][1]['feasibility'], True)
+ time.sleep(5)
+
+ # Not found path by PCE and GNPy cannot find another one
+ def test_07_path_computation_FoundByPCE_NotFeasibleByGnpy(self):
+ response = test_utils.path_computation_request("request-4", "service-4",
+ {"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_": {"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"}},
+ {"hop-number": "3", "hop-type": {"node-id": "OpenROADM-3"}}]}
+ })
+ 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)
+
+ # Disconnect the different topologies
+ def test_08_disconnect_openroadmTopology(self):
+ response = test_utils.delete_request(test_utils.URL_CONFIG_ORDM_TOPO)