class TransportPCEtesting(unittest.TestCase):
- honeynode_process1 = None
- odl_process = None
+ processes = None
restconf_baseurl = "http://localhost:8181/restconf"
@classmethod
def setUpClass(cls):
- print ("starting honeynode1...")
- cls.honeynode_process1 = test_utils.start_spdra_honeynode()
- time.sleep(20)
-
- print ("starting opendaylight...")
- cls.odl_process = test_utils.start_tpce()
- time.sleep(60)
- print ("opendaylight started")
+ cls.processes = test_utils.start_tpce()
+ cls.processes = test_utils.start_sims(['spdrav2'])
@classmethod
def tearDownClass(cls):
- for child in psutil.Process(cls.odl_process.pid).children():
- child.send_signal(signal.SIGINT)
- child.wait()
- cls.odl_process.send_signal(signal.SIGINT)
- cls.odl_process.wait()
- for child in psutil.Process(cls.honeynode_process1.pid).children():
- child.send_signal(signal.SIGINT)
- child.wait()
- cls.honeynode_process1.send_signal(signal.SIGINT)
- cls.honeynode_process1.wait()
+ for process in cls.processes:
+ test_utils.shutdown_process(process)
+ print("all processes killed")
def setUp(self):
time.sleep(5)
def test_01_connect_SPDR_SA1(self):
url = ("{}/config/network-topology:"
- "network-topology/topology/topology-netconf/node/SPDR-SA1"
+ "network-topology/topology/topology-netconf/node/SPDR-SA1"
.format(self.restconf_baseurl))
data = {"node": [{
- "node-id": "SPDR-SA1",
- "netconf-node-topology:username": "admin",
- "netconf-node-topology:password": "admin",
- "netconf-node-topology:host": "127.0.0.1",
- "netconf-node-topology:port": "17845",
- "netconf-node-topology:tcp-only": "false",
- "netconf-node-topology:pass-through": {}}]}
+ "node-id": "SPDR-SA1",
+ "netconf-node-topology:username": "admin",
+ "netconf-node-topology:password": "admin",
+ "netconf-node-topology:host": "127.0.0.1",
+ "netconf-node-topology:port": test_utils.sims['spdrav2']['port'],
+ "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(10)
url = ("{}/operational/network-topology:"
def test_02_getClliNetwork(self):
url = ("{}/config/ietf-network:networks/network/clli-network"
- .format(self.restconf_baseurl))
+ .format(self.restconf_baseurl))
headers = {'content-type': 'application/json'}
response = requests.request(
"GET", url, headers=headers, auth=('admin', 'admin'))
def test_03_getOpenRoadmNetwork(self):
url = ("{}/config/ietf-network:networks/network/openroadm-network"
- .format(self.restconf_baseurl))
+ .format(self.restconf_baseurl))
headers = {'content-type': 'application/json'}
response = requests.request(
"GET", url, headers=headers, auth=('admin', 'admin'))
def test_04_getLinks_OpenroadmTopology(self):
url = ("{}/config/ietf-network:networks/network/openroadm-topology"
- .format(self.restconf_baseurl))
+ .format(self.restconf_baseurl))
headers = {'content-type': 'application/json'}
response = requests.request(
"GET", url, headers=headers, auth=('admin', 'admin'))
def test_05_getNodes_OpenRoadmTopology(self):
url = ("{}/config/ietf-network:networks/network/openroadm-topology"
- .format(self.restconf_baseurl))
+ .format(self.restconf_baseurl))
headers = {'content-type': 'application/json'}
response = requests.request(
"GET", url, headers=headers, auth=('admin', 'admin'))
def test_06_getLinks_OtnTopology(self):
url = ("{}/config/ietf-network:networks/network/otn-topology"
- .format(self.restconf_baseurl))
+ .format(self.restconf_baseurl))
headers = {'content-type': 'application/json'}
response = requests.request(
"GET", url, headers=headers, auth=('admin', 'admin'))
def test_07_getNodes_OtnTopology(self):
url = ("{}/config/ietf-network:networks/network/otn-topology"
- .format(self.restconf_baseurl))
+ .format(self.restconf_baseurl))
headers = {'content-type': 'application/json'}
response = requests.request(
"GET", url, headers=headers, auth=('admin', 'admin'))
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(res['network'][0]['node'][i]['org-openroadm-otn-network-topology:xpdr-attributes']['xpdr-number'], 1)
+ self.assertEqual(res['network'][0]['node'][i]
+ ['org-openroadm-otn-network-topology:xpdr-attributes']['xpdr-number'], 1)
nbTps = len(res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
client = 0
network = 0
tpId = res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['tp-id']
if (tpType == 'XPONDER-CLIENT'):
client += 1
- self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['org-openroadm-otn-network-topology:tp-supported-interfaces']['supported-interface-capability'][0]['if-cap-type'], 'org-openroadm-port-types:if-10GE-ODU2e')
- self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['org-openroadm-otn-network-topology:xpdr-tp-port-connection-attributes']['rate'], 'org-openroadm-otn-common-types:ODU2e')
+ self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['org-openroadm-otn-network-topology:tp-supported-interfaces']
+ ['supported-interface-capability'][0]['if-cap-type'], 'org-openroadm-port-types:if-10GE-ODU2e')
+ self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]
+ ['org-openroadm-otn-network-topology:xpdr-tp-port-connection-attributes']['rate'], 'org-openroadm-otn-common-types:ODU2e')
elif (tpType == 'XPONDER-NETWORK'):
network += 1
- self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['org-openroadm-otn-network-topology:tp-supported-interfaces']['supported-interface-capability'][0]['if-cap-type'], 'org-openroadm-port-types:if-OCH-OTU4-ODU4')
- self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['org-openroadm-otn-network-topology:xpdr-tp-port-connection-attributes']['rate'], 'org-openroadm-otn-common-types:ODU4')
- self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['supporting-termination-point'][0]['network-ref'], 'openroadm-topology')
- self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['supporting-termination-point'][0]['node-ref'], 'SPDR-SA1-XPDR1')
- self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['supporting-termination-point'][0]['tp-ref'], 'XPDR1-NETWORK1')
+ self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['org-openroadm-otn-network-topology:tp-supported-interfaces']
+ ['supported-interface-capability'][0]['if-cap-type'], 'org-openroadm-port-types:if-OCH-OTU4-ODU4')
+ self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]
+ ['org-openroadm-otn-network-topology:xpdr-tp-port-connection-attributes']['rate'], 'org-openroadm-otn-common-types:ODU4')
+ self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point']
+ [j]['supporting-termination-point'][0]['network-ref'], 'openroadm-topology')
+ self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point']
+ [j]['supporting-termination-point'][0]['node-ref'], 'SPDR-SA1-XPDR1')
+ self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point']
+ [j]['supporting-termination-point'][0]['tp-ref'], 'XPDR1-NETWORK1')
self.assertTrue(client == 4)
self.assertTrue(network == 1)
listNode.remove(nodeId)
- nbNbl = len(res['network'][0]['node'][i]['org-openroadm-otn-network-topology:switching-pools']['odu-switching-pools'][0]['non-blocking-list'])
+ nbNbl = len(res['network'][0]['node'][i]['org-openroadm-otn-network-topology:switching-pools']
+ ['odu-switching-pools'][0]['non-blocking-list'])
self.assertEqual(nbNbl, 4)
for k in range(0, nbNbl):
nbl = res['network'][0]['node'][i]['org-openroadm-otn-network-topology:switching-pools']['odu-switching-pools'][0]['non-blocking-list'][k]
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(res['network'][0]['node'][i]['org-openroadm-otn-network-topology:xpdr-attributes']['xpdr-number'], 2)
+ self.assertEqual(res['network'][0]['node'][i]
+ ['org-openroadm-otn-network-topology:xpdr-attributes']['xpdr-number'], 2)
nbTps = len(res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
client = 0
network = 0
tpId = res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['tp-id']
if (tpType == 'XPONDER-CLIENT'):
client += 1
- self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['org-openroadm-otn-network-topology:tp-supported-interfaces']['supported-interface-capability'][0]['if-cap-type'], 'org-openroadm-port-types:if-100GE-ODU4')
- self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['org-openroadm-otn-network-topology:xpdr-tp-port-connection-attributes']['rate'], 'org-openroadm-otn-common-types:ODU4')
+ self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['org-openroadm-otn-network-topology:tp-supported-interfaces']
+ ['supported-interface-capability'][0]['if-cap-type'], 'org-openroadm-port-types:if-100GE-ODU4')
+ self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]
+ ['org-openroadm-otn-network-topology:xpdr-tp-port-connection-attributes']['rate'], 'org-openroadm-otn-common-types:ODU4')
elif (tpType == 'XPONDER-NETWORK'):
network += 1
- self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['org-openroadm-otn-network-topology:tp-supported-interfaces']['supported-interface-capability'][0]['if-cap-type'], 'org-openroadm-port-types:if-OCH-OTU4-ODU4')
- self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['org-openroadm-otn-network-topology:xpdr-tp-port-connection-attributes']['rate'], 'org-openroadm-otn-common-types:ODU4')
- self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['supporting-termination-point'][0]['network-ref'], 'openroadm-topology')
- self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['supporting-termination-point'][0]['node-ref'], 'SPDR-SA1-XPDR2')
- self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['supporting-termination-point'][0]['tp-ref'], tpId)
+ self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['org-openroadm-otn-network-topology:tp-supported-interfaces']
+ ['supported-interface-capability'][0]['if-cap-type'], 'org-openroadm-port-types:if-OCH-OTU4-ODU4')
+ self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]
+ ['org-openroadm-otn-network-topology:xpdr-tp-port-connection-attributes']['rate'], 'org-openroadm-otn-common-types:ODU4')
+ self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point']
+ [j]['supporting-termination-point'][0]['network-ref'], 'openroadm-topology')
+ self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point']
+ [j]['supporting-termination-point'][0]['node-ref'], 'SPDR-SA1-XPDR2')
+ self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point']
+ [j]['supporting-termination-point'][0]['tp-ref'], tpId)
self.assertTrue(client == 4)
self.assertTrue(network == 4)
listNode.remove(nodeId)
- nbNbl = len(res['network'][0]['node'][i]['org-openroadm-otn-network-topology:switching-pools']['odu-switching-pools'][0]['non-blocking-list'])
+ nbNbl = len(res['network'][0]['node'][i]['org-openroadm-otn-network-topology:switching-pools']
+ ['odu-switching-pools'][0]['non-blocking-list'])
self.assertEqual(nbNbl, 1)
nbl = res['network'][0]['node'][i]['org-openroadm-otn-network-topology:switching-pools']['odu-switching-pools'][0]['non-blocking-list'][0]
self.assertIn('XPDR2-NETWORK1', nbl['tp-list'])
def test_08_disconnect_SPDR_SA1(self):
url = ("{}/config/network-topology:"
"network-topology/topology/topology-netconf/node/SPDR-SA1"
- .format(self.restconf_baseurl))
+ .format(self.restconf_baseurl))
data = {}
headers = {'content-type': 'application/json'}
response = requests.request(
def test_09_getClliNetwork(self):
url = ("{}/config/ietf-network:networks/network/clli-network"
- .format(self.restconf_baseurl))
+ .format(self.restconf_baseurl))
headers = {'content-type': 'application/json'}
response = requests.request(
"GET", url, headers=headers, auth=('admin', 'admin'))
def test_10_getOpenRoadmNetwork(self):
url = ("{}/config/ietf-network:networks/network/openroadm-network"
- .format(self.restconf_baseurl))
+ .format(self.restconf_baseurl))
headers = {'content-type': 'application/json'}
response = requests.request(
"GET", url, headers=headers, auth=('admin', 'admin'))
def test_11_getNodes_OpenRoadmTopology(self):
url = ("{}/config/ietf-network:networks/network/openroadm-topology"
- .format(self.restconf_baseurl))
+ .format(self.restconf_baseurl))
headers = {'content-type': 'application/json'}
response = requests.request(
"GET", url, headers=headers, auth=('admin', 'admin'))
def test_12_getNodes_OtnTopology(self):
url = ("{}/config/ietf-network:networks/network/otn-topology"
- .format(self.restconf_baseurl))
+ .format(self.restconf_baseurl))
headers = {'content-type': 'application/json'}
response = requests.request(
"GET", url, headers=headers, auth=('admin', 'admin'))