odl_process = None
restconf_baseurl = "http://localhost:8181/restconf"
-#START_IGNORE_XTESTING
+# START_IGNORE_XTESTING
@classmethod
def setUpClass(cls):
- print ("starting honeynode1...")
+ print("starting honeynode1...")
cls.honeynode_process1 = test_utils.start_xpdra_honeynode()
time.sleep(20)
- print ("starting honeynode2...")
+ print("starting honeynode2...")
cls.honeynode_process2 = test_utils.start_roadma_honeynode()
time.sleep(20)
- print ("starting honeynode3...")
+ print("starting honeynode3...")
cls.honeynode_process3 = test_utils.start_roadmc_honeynode()
time.sleep(20)
- print ("starting honeynode4...")
+ print("starting honeynode4...")
cls.honeynode_process4 = test_utils.start_xpdrc_honeynode()
time.sleep(20)
- print ("all honeynodes started")
+ print("all honeynodes started")
- print ("starting opendaylight...")
+ print("starting opendaylight...")
cls.odl_process = test_utils.start_tpce()
time.sleep(60)
- print ("opendaylight started")
+ print("opendaylight started")
@classmethod
def tearDownClass(cls):
cls.honeynode_process4.wait()
def setUp(self):
- print ("execution of {}".format(self.id().split(".")[-1]))
+ print("execution of {}".format(self.id().split(".")[-1]))
time.sleep(1)
-#END_IGNORE_XTESTING
+# END_IGNORE_XTESTING
def test_01_xpdrA_device_connected(self):
url = ("{}/config/network-topology:"
"network-topology/topology/topology-netconf/node/XPDR-A1"
- .format(self.restconf_baseurl))
+ .format(self.restconf_baseurl))
data = {"node": [{
"node-id": "XPDR-A1",
"netconf-node-topology:username": "admin",
def test_02_xpdrC_device_connected(self):
url = ("{}/config/network-topology:"
"network-topology/topology/topology-netconf/node/XPDR-C1"
- .format(self.restconf_baseurl))
+ .format(self.restconf_baseurl))
data = {"node": [{
"node-id": "XPDR-C1",
"netconf-node-topology:username": "admin",
"network-topology/topology/topology-netconf/node/ROADM-A1"
.format(self.restconf_baseurl))
data = {"node": [{
- "node-id": "ROADM-A1",
- "netconf-node-topology:username": "admin",
- "netconf-node-topology:password": "admin",
- "netconf-node-topology:host": "127.0.0.1",
- "netconf-node-topology:port": "17841",
- "netconf-node-topology:tcp-only": "false",
- "netconf-node-topology:pass-through": {}}]}
+ "node-id": "ROADM-A1",
+ "netconf-node-topology:username": "admin",
+ "netconf-node-topology:password": "admin",
+ "netconf-node-topology:host": "127.0.0.1",
+ "netconf-node-topology:port": "17841",
+ "netconf-node-topology:tcp-only": "false",
+ "netconf-node-topology:pass-through": {}}]}
headers = {'content-type': 'application/json'}
response = requests.request(
- "PUT", url, data=json.dumps(data), headers=headers,
- auth=('admin', 'admin'))
+ "PUT", url, data=json.dumps(data), headers=headers,
+ auth=('admin', 'admin'))
self.assertEqual(response.status_code, requests.codes.created)
time.sleep(20)
"network-topology/topology/topology-netconf/node/ROADM-C1"
.format(self.restconf_baseurl))
data = {"node": [{
- "node-id": "ROADM-C1",
- "netconf-node-topology:username": "admin",
- "netconf-node-topology:password": "admin",
- "netconf-node-topology:host": "127.0.0.1",
- "netconf-node-topology:port": "17843",
- "netconf-node-topology:tcp-only": "false",
- "netconf-node-topology:pass-through": {}}]}
+ "node-id": "ROADM-C1",
+ "netconf-node-topology:username": "admin",
+ "netconf-node-topology:password": "admin",
+ "netconf-node-topology:host": "127.0.0.1",
+ "netconf-node-topology:port": "17843",
+ "netconf-node-topology:tcp-only": "false",
+ "netconf-node-topology:pass-through": {}}]}
headers = {'content-type': 'application/json'}
response = requests.request(
- "PUT", url, data=json.dumps(data), headers=headers,
- auth=('admin', 'admin'))
+ "PUT", url, data=json.dumps(data), headers=headers,
+ auth=('admin', 'admin'))
self.assertEqual(response.status_code, requests.codes.created)
time.sleep(20)
}
headers = {'content-type': 'application/json'}
response = requests.request(
- "POST", url, data=json.dumps(data),
- headers=headers, auth=('admin', 'admin'))
+ "POST", url, data=json.dumps(data),
+ headers=headers, auth=('admin', 'admin'))
self.assertEqual(response.status_code, requests.codes.ok)
res = response.json()
self.assertIn('Xponder Roadm Link created successfully', res["output"]["result"])
}
headers = {'content-type': 'application/json'}
response = requests.request(
- "POST", url, data=json.dumps(data),
- headers=headers, auth=('admin', 'admin'))
+ "POST", url, data=json.dumps(data),
+ headers=headers, auth=('admin', 'admin'))
self.assertEqual(response.status_code, requests.codes.ok)
res = response.json()
self.assertIn('Roadm Xponder links created successfully', res["output"]["result"])
}
headers = {'content-type': 'application/json'}
response = requests.request(
- "POST", url, data=json.dumps(data),
- headers=headers, auth=('admin', 'admin'))
+ "POST", url, data=json.dumps(data),
+ headers=headers, auth=('admin', 'admin'))
self.assertEqual(response.status_code, requests.codes.ok)
res = response.json()
self.assertIn('Xponder Roadm Link created successfully', res["output"]["result"])
}
headers = {'content-type': 'application/json'}
response = requests.request(
- "POST", url, data=json.dumps(data),
- headers=headers, auth=('admin', 'admin'))
+ "POST", url, data=json.dumps(data),
+ headers=headers, auth=('admin', 'admin'))
self.assertEqual(response.status_code, requests.codes.ok)
res = response.json()
self.assertIn('Roadm Xponder links created successfully', res["output"]["result"])
def test_09_create_OTS_ROADMA(self):
url = "{}/operations/transportpce-device-renderer:create-ots-oms".format(self.restconf_baseurl)
data = {
- "input" : {
- "node-id" : "ROADM-A1",
- "logical-connection-point" : "DEG1-TTP-TXRX"
+ "input": {
+ "node-id": "ROADM-A1",
+ "logical-connection-point": "DEG1-TTP-TXRX"
}
}
headers = {'content-type': 'application/json'}
response = requests.request(
- "POST", url, data=json.dumps(data),
- headers=headers, auth=('admin', 'admin'))
+ "POST", url, data=json.dumps(data),
+ headers=headers, auth=('admin', 'admin'))
time.sleep(10)
self.assertEqual(response.status_code, requests.codes.ok)
res = response.json()
def test_10_create_OTS_ROADMC(self):
url = "{}/operations/transportpce-device-renderer:create-ots-oms".format(self.restconf_baseurl)
data = {
- "input" : {
- "node-id" : "ROADM-C1",
- "logical-connection-point" : "DEG2-TTP-TXRX"
+ "input": {
+ "node-id": "ROADM-C1",
+ "logical-connection-point": "DEG2-TTP-TXRX"
}
}
headers = {'content-type': 'application/json'}
response = requests.request(
- "POST", url, data=json.dumps(data),
- headers=headers, auth=('admin', 'admin'))
+ "POST", url, data=json.dumps(data),
+ headers=headers, auth=('admin', 'admin'))
self.assertEqual(response.status_code, requests.codes.ok)
res = response.json()
self.assertIn('Interfaces OTS-DEG2-TTP-TXRX - OMS-DEG2-TTP-TXRX successfully created on node ROADM-C1',
"resource-type": "interface",
"granularity": "15min",
"resource-identifier": {
- "resource-name" : "OTS-DEG2-TTP-TXRX"
+ "resource-name": "OTS-DEG2-TTP-TXRX"
}
}
}
headers = {'content-type': 'application/json'}
response = requests.request(
- "POST", url, data=json.dumps(data),
- headers=headers, auth=('admin', 'admin'))
+ "POST", url, data=json.dumps(data),
+ headers=headers, auth=('admin', 'admin'))
self.assertEqual(response.status_code, requests.codes.ok)
res = response.json()
self.assertIn({
- "pmparameter-name": "OpticalPowerOutput",
- "pmparameter-value": "2.5"
- }, res["output"]["measurements"])
+ "pmparameter-name": "OpticalPowerOutput",
+ "pmparameter-value": "2.5"
+ }, res["output"]["measurements"])
self.assertIn({
- "pmparameter-name": "OpticalReturnLoss",
- "pmparameter-value": "40"
- }, res["output"]["measurements"])
+ "pmparameter-name": "OpticalReturnLoss",
+ "pmparameter-value": "40"
+ }, res["output"]["measurements"])
self.assertIn({
- "pmparameter-name": "OpticalPowerInput",
- "pmparameter-value": "-21.1"
- }, res["output"]["measurements"])
+ "pmparameter-name": "OpticalPowerInput",
+ "pmparameter-value": "-21.1"
+ }, res["output"]["measurements"])
def test_12_get_PM_ROADMC(self):
url = "{}/operations/transportpce-olm:get-pm".format(self.restconf_baseurl)
"resource-type": "interface",
"granularity": "15min",
"resource-identifier": {
- "resource-name" : "OTS-DEG1-TTP-TXRX"
+ "resource-name": "OTS-DEG1-TTP-TXRX"
}
}
}
headers = {'content-type': 'application/json'}
response = requests.request(
- "POST", url, data=json.dumps(data),
- headers=headers, auth=('admin', 'admin'))
+ "POST", url, data=json.dumps(data),
+ headers=headers, auth=('admin', 'admin'))
self.assertEqual(response.status_code, requests.codes.ok)
res = response.json()
self.assertIn({
- "pmparameter-name": "OpticalPowerOutput",
- "pmparameter-value": "4.6"
- }, res["output"]["measurements"])
+ "pmparameter-name": "OpticalPowerOutput",
+ "pmparameter-value": "4.6"
+ }, res["output"]["measurements"])
self.assertIn({
- "pmparameter-name": "OpticalReturnLoss",
- "pmparameter-value": "49.1"
- }, res["output"]["measurements"])
+ "pmparameter-name": "OpticalReturnLoss",
+ "pmparameter-value": "49.1"
+ }, res["output"]["measurements"])
self.assertIn({
- "pmparameter-name": "OpticalPowerInput",
- "pmparameter-value": "-15.1"
- }, res["output"]["measurements"])
+ "pmparameter-name": "OpticalPowerInput",
+ "pmparameter-value": "-15.1"
+ }, res["output"]["measurements"])
def test_13_calculate_span_loss_base_ROADMA_ROADMC(self):
url = "{}/operations/transportpce-olm:calculate-spanloss-base".format(self.restconf_baseurl)
}
headers = {'content-type': 'application/json'}
response = requests.request(
- "POST", url, data=json.dumps(data),
- headers=headers, auth=('admin', 'admin'))
+ "POST", url, data=json.dumps(data),
+ headers=headers, auth=('admin', 'admin'))
self.assertEqual(response.status_code, requests.codes.ok)
res = response.json()
self.assertIn('Success',
res["output"]["result"])
self.assertIn({
- "spanloss": "18",
- "link-id": "ROADM-A1-DEG2-DEG2-TTP-TXRXtoROADM-C1-DEG1-DEG1-TTP-TXRX"
- }, res["output"]["spans"])
+ "spanloss": "17.6",
+ "link-id": "ROADM-A1-DEG2-DEG2-TTP-TXRXtoROADM-C1-DEG1-DEG1-TTP-TXRX"
+ }, res["output"]["spans"])
time.sleep(5)
def test_14_calculate_span_loss_base_all(self):
}
headers = {'content-type': 'application/json'}
response = requests.request(
- "POST", url, data=json.dumps(data),
- headers=headers, auth=('admin', 'admin'))
+ "POST", url, data=json.dumps(data),
+ headers=headers, auth=('admin', 'admin'))
self.assertEqual(response.status_code, requests.codes.ok)
res = response.json()
self.assertIn('Success',
res["output"]["result"])
self.assertIn({
- "spanloss": "26",
- "link-id": "ROADM-C1-DEG1-DEG1-TTP-TXRXtoROADM-A1-DEG2-DEG2-TTP-TXRX"
- }, res["output"]["spans"])
+ "spanloss": "25.7",
+ "link-id": "ROADM-C1-DEG1-DEG1-TTP-TXRXtoROADM-A1-DEG2-DEG2-TTP-TXRX"
+ }, res["output"]["spans"])
self.assertIn({
- "spanloss": "18",
- "link-id": "ROADM-A1-DEG2-DEG2-TTP-TXRXtoROADM-C1-DEG1-DEG1-TTP-TXRX"
- }, res["output"]["spans"])
+ "spanloss": "17.6",
+ "link-id": "ROADM-A1-DEG2-DEG2-TTP-TXRXtoROADM-C1-DEG1-DEG1-TTP-TXRX"
+ }, res["output"]["spans"])
time.sleep(5)
def test_15_get_OTS_DEG2_TTP_TXRX_ROADMA(self):
"GET", url, headers=headers, auth=('admin', 'admin'))
self.assertEqual(response.status_code, requests.codes.ok)
res = response.json()
- self.assertEqual(18, res['org-openroadm-optical-transport-interfaces:ots']['span-loss-transmit'])
- self.assertEqual(26, res['org-openroadm-optical-transport-interfaces:ots']['span-loss-receive'])
+ self.assertEqual(17.6, res['org-openroadm-optical-transport-interfaces:ots']['span-loss-transmit'])
+ self.assertEqual(25.7, res['org-openroadm-optical-transport-interfaces:ots']['span-loss-receive'])
def test_16_get_OTS_DEG1_TTP_TXRX_ROADMC(self):
url = ("{}/config/network-topology:network-topology/topology/topology-netconf/"
"GET", url, headers=headers, auth=('admin', 'admin'))
self.assertEqual(response.status_code, requests.codes.ok)
res = response.json()
- self.assertEqual(26, res['org-openroadm-optical-transport-interfaces:ots']['span-loss-transmit'])
- self.assertEqual(18, res['org-openroadm-optical-transport-interfaces:ots']['span-loss-receive'])
+ self.assertEqual(25.7, res['org-openroadm-optical-transport-interfaces:ots']['span-loss-transmit'])
+ self.assertEqual(17.6, res['org-openroadm-optical-transport-interfaces:ots']['span-loss-receive'])
def test_17_servicePath_create_AToZ(self):
url = "{}/operations/transportpce-device-renderer:service-path".format(self.restconf_baseurl)
}
headers = {'content-type': 'application/json'}
response = requests.request(
- "POST", url, data=json.dumps(data),
- headers=headers, auth=('admin', 'admin'))
+ "POST", url, data=json.dumps(data),
+ headers=headers, auth=('admin', 'admin'))
self.assertEqual(response.status_code, requests.codes.ok)
res = response.json()
self.assertIn('Roadm-connection successfully created for nodes', res["output"]["result"])
- #time.sleep(40)
+ # time.sleep(40)
time.sleep(10)
def test_18_servicePath_create_ZToA(self):
}
headers = {'content-type': 'application/json'}
response = requests.request(
- "POST", url, data=json.dumps(data),
- headers=headers, auth=('admin', 'admin'))
+ "POST", url, data=json.dumps(data),
+ headers=headers, auth=('admin', 'admin'))
self.assertEqual(response.status_code, requests.codes.ok)
res = response.json()
self.assertIn('Roadm-connection successfully created for nodes', res["output"]["result"])
- #time.sleep(40)
+ # time.sleep(40)
time.sleep(10)
def test_19_service_power_setup_XPDRA_XPDRC(self):
}
headers = {'content-type': 'application/json'}
response = requests.request(
- "POST", url, data=json.dumps(data),
- headers=headers, auth=('admin', 'admin'))
+ "POST", url, data=json.dumps(data),
+ headers=headers, auth=('admin', 'admin'))
self.assertEqual(response.status_code, requests.codes.ok)
res = response.json()
self.assertIn('Success', res["output"]["result"])
}
headers = {'content-type': 'application/json'}
response = requests.request(
- "POST", url, data=json.dumps(data),
- headers=headers, auth=('admin', 'admin'))
+ "POST", url, data=json.dumps(data),
+ headers=headers, auth=('admin', 'admin'))
self.assertEqual(response.status_code, requests.codes.ok)
res = response.json()
self.assertIn('Success', res["output"]["result"])
"GET", url, headers=headers, auth=('admin', 'admin'))
self.assertEqual(response.status_code, requests.codes.ok)
res = response.json()
- self.assertEqual(-5 , res['org-openroadm-optical-channel-interfaces:och']['transmit-power'])
+ self.assertEqual(-5, res['org-openroadm-optical-channel-interfaces:och']['transmit-power'])
self.assertEqual(196.1, res['org-openroadm-optical-channel-interfaces:och']['frequency'])
def test_25_get_roadmconnection_ROADMC(self):
}
headers = {'content-type': 'application/json'}
response = requests.request(
- "POST", url, data=json.dumps(data),
- headers=headers, auth=('admin', 'admin'))
+ "POST", url, data=json.dumps(data),
+ headers=headers, auth=('admin', 'admin'))
self.assertEqual(response.status_code, requests.codes.ok)
res = response.json()
self.assertIn('Success', res["output"]["result"])
}
headers = {'content-type': 'application/json'}
response = requests.request(
- "POST", url, data=json.dumps(data),
- headers=headers, auth=('admin', 'admin'))
+ "POST", url, data=json.dumps(data),
+ headers=headers, auth=('admin', 'admin'))
self.assertEqual(response.status_code, requests.codes.ok)
res = response.json()
self.assertIn('Request processed', res["output"]["result"])
}
headers = {'content-type': 'application/json'}
response = requests.request(
- "POST", url, data=json.dumps(data),
- headers=headers, auth=('admin', 'admin'))
+ "POST", url, data=json.dumps(data),
+ headers=headers, auth=('admin', 'admin'))
self.assertEqual(response.status_code, requests.codes.ok)
res = response.json()
self.assertIn('Request processed', res["output"]["result"])
}
headers = {'content-type': 'application/json'}
response = requests.request(
- "POST", url, data=json.dumps(data),
- headers=headers, auth=('admin', 'admin'))
+ "POST", url, data=json.dumps(data),
+ headers=headers, auth=('admin', 'admin'))
self.assertEqual(response.status_code, requests.codes.ok)
res = response.json()
self.assertIn('Xponder Roadm Link created successfully', res["output"]["result"])
}
headers = {'content-type': 'application/json'}
response = requests.request(
- "POST", url, data=json.dumps(data),
- headers=headers, auth=('admin', 'admin'))
+ "POST", url, data=json.dumps(data),
+ headers=headers, auth=('admin', 'admin'))
self.assertEqual(response.status_code, requests.codes.ok)
res = response.json()
self.assertIn('Roadm Xponder links created successfully', res["output"]["result"])
}
headers = {'content-type': 'application/json'}
response = requests.request(
- "POST", url, data=json.dumps(data),
- headers=headers, auth=('admin', 'admin'))
+ "POST", url, data=json.dumps(data),
+ headers=headers, auth=('admin', 'admin'))
self.assertEqual(response.status_code, requests.codes.ok)
res = response.json()
self.assertIn('Roadm-connection successfully created for nodes', res["output"]["result"])
- #time.sleep(40)
+ # time.sleep(40)
time.sleep(10)
def test_34_get_interface_XPDRA_XPDR1_NETWORK2(self):
}
headers = {'content-type': 'application/json'}
response = requests.request(
- "POST", url, data=json.dumps(data),
- headers=headers, auth=('admin', 'admin'))
+ "POST", url, data=json.dumps(data),
+ headers=headers, auth=('admin', 'admin'))
self.assertEqual(response.status_code, requests.codes.ok)
res = response.json()
self.assertIn('Request processed', res["output"]["result"])
def test_36_xpdrA_device_disconnected(self):
url = ("{}/config/network-topology:"
- "network-topology/topology/topology-netconf/node/XPDR-A1"
+ "network-topology/topology/topology-netconf/node/XPDR-A1"
.format(self.restconf_baseurl))
headers = {'content-type': 'application/json'}
response = requests.request(
- "DELETE", url, headers=headers,
- auth=('admin', 'admin'))
+ "DELETE", url, headers=headers,
+ auth=('admin', 'admin'))
self.assertEqual(response.status_code, requests.codes.ok)
time.sleep(10)
def test_37_xpdrC_device_disconnected(self):
url = ("{}/config/network-topology:"
- "network-topology/topology/topology-netconf/node/XPDR-C1"
+ "network-topology/topology/topology-netconf/node/XPDR-C1"
.format(self.restconf_baseurl))
headers = {'content-type': 'application/json'}
response = requests.request(
- "DELETE", url, headers=headers,
- auth=('admin', 'admin'))
+ "DELETE", url, headers=headers,
+ auth=('admin', 'admin'))
self.assertEqual(response.status_code, requests.codes.ok)
time.sleep(10)
url = "{}/operations/transportpce-olm:calculate-spanloss-current".format(self.restconf_baseurl)
headers = {'content-type': 'application/json'}
response = requests.request(
- "POST", url, headers=headers, auth=('admin', 'admin'))
+ "POST", url, headers=headers, auth=('admin', 'admin'))
self.assertEqual(response.status_code, requests.codes.ok)
res = response.json()
self.assertIn('Success',
def test_39_rdmA_device_disconnected(self):
url = ("{}/config/network-topology:"
- "network-topology/topology/topology-netconf/node/ROADM-A1"
+ "network-topology/topology/topology-netconf/node/ROADM-A1"
.format(self.restconf_baseurl))
headers = {'content-type': 'application/json'}
response = requests.request(
- "DELETE", url, headers=headers,
- auth=('admin', 'admin'))
+ "DELETE", url, headers=headers,
+ auth=('admin', 'admin'))
self.assertEqual(response.status_code, requests.codes.ok)
time.sleep(10)
def test_40_rdmC_device_disconnected(self):
url = ("{}/config/network-topology:"
- "network-topology/topology/topology-netconf/node/ROADM-C1"
+ "network-topology/topology/topology-netconf/node/ROADM-C1"
.format(self.restconf_baseurl))
headers = {'content-type': 'application/json'}
response = requests.request(
- "DELETE", url, headers=headers,
- auth=('admin', 'admin'))
+ "DELETE", url, headers=headers,
+ auth=('admin', 'admin'))
self.assertEqual(response.status_code, requests.codes.ok)
time.sleep(10)
+
if __name__ == "__main__":
unittest.main(verbosity=2)