- def test_17_getNodes_OpenRoadmTopology(self):
- url = ("{}/config/ietf-network:networks/network/openroadm-topology"
- .format(self.restconf_baseurl))
- headers = {'content-type': 'application/json'}
- response = requests.request(
- "GET", url, headers=headers, auth=('admin', 'admin'))
- res = response.json()
- #Tests related to nodes
- self.assertEqual(response.status_code, requests.codes.ok)
- nbNode=len(res['network'][0]['node'])
- self.assertEqual(nbNode,8)
- listNode=['XPDR-A1-XPDR1',
- 'ROADM-A1-SRG1','ROADM-A1-SRG3','ROADM-A1-DEG1','ROADM-A1-DEG2',
- 'ROADM-C1-SRG1','ROADM-C1-DEG1', 'ROADM-C1-DEG2']
- #************************Tests related to XPDRA nodes
- 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=='XPDR-A1-XPDR1'):
- self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'XPDR-A1'},
- res['network'][0]['node'][i]['supporting-node'])
- self.assertEqual(nodeType,'XPONDER')
- nbTps=len(res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
- self.assertTrue(nbTps >= 4)
- 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 == 2)
- self.assertTrue(network == 2)
- listNode.remove(nodeId)
- elif(nodeId=='ROADM-A1-SRG1'):
- #Test related to SRG1
- self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']),5)
- self.assertIn({'tp-id': 'SRG1-CP-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-CP'},
- res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
- self.assertIn({'tp-id': 'SRG1-PP1-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-PP'},
- res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
- self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADM-A1'},
- res['network'][0]['node'][i]['supporting-node'])
- self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'],'SRG')
- listNode.remove(nodeId)
- elif(nodeId=='ROADM-A1-SRG3'):
- #Test related to SRG1
- self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']),5)
- self.assertIn({'tp-id': 'SRG3-CP-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-CP'},
- res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
- self.assertIn({'tp-id': 'SRG3-PP1-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-PP'},
- res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
- self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADM-A1'},
- res['network'][0]['node'][i]['supporting-node'])
- self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'],'SRG')
- listNode.remove(nodeId)
- elif(nodeId=='ROADM-A1-DEG1'):
- #Test related to DEG1
- self.assertIn({'tp-id': 'DEG1-TTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-TTP'},
- res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
- self.assertIn({'tp-id': 'DEG1-CTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-CTP'},
- res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
- self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADM-A1'},
- res['network'][0]['node'][i]['supporting-node'])
- self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'],'DEGREE')
- listNode.remove(nodeId)
- elif(nodeId=='ROADM-A1-DEG2'):
- #Test related to DEG2
- self.assertIn({'tp-id': 'DEG2-TTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-TTP'},
- res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
- self.assertIn({'tp-id': 'DEG2-CTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-CTP'},
- res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
- self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADM-A1'},
- res['network'][0]['node'][i]['supporting-node'])
- self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'],'DEGREE')
- listNode.remove(nodeId)
- elif(nodeId=='ROADM-C1-SRG1'):
- #Test related to SRG1
- self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']),5)
- self.assertIn({'tp-id': 'SRG1-CP-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-CP'},
- res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
- self.assertIn({'tp-id': 'SRG1-PP1-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-PP'},
- res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
- self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADM-C1'},
- res['network'][0]['node'][i]['supporting-node'])
- self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'],'SRG')
- listNode.remove(nodeId)
- elif(nodeId=='ROADM-C1-DEG1'):
- #Test related to DEG1
- self.assertIn({'tp-id': 'DEG1-TTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-TTP'},
- res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
- self.assertIn({'tp-id': 'DEG1-CTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-CTP'},
- res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
- self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADM-C1'},
- res['network'][0]['node'][i]['supporting-node'])
- self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'],'DEGREE')
- listNode.remove(nodeId)
- elif(nodeId=='ROADM-C1-DEG2'):
- #Test related to DEG1
- self.assertIn({'tp-id': 'DEG2-TTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-TTP'},
- res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
- self.assertIn({'tp-id': 'DEG2-CTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-CTP'},
- res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
- self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADM-C1'},
- res['network'][0]['node'][i]['supporting-node'])
- self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'],'DEGREE')
- listNode.remove(nodeId)
- else:
- self.assertFalse(True)
- self.assertEqual(len(listNode),0)
+ def test_19_getLinkOmsAttributesOpenRoadmTopology(self):
+ response = test_utils.get_ordm_topo_request("")
+ self.assertEqual(response.status_code, requests.codes.ok)
+ res = response.json()
+ # Tests related to links
+ nbLink = len(res['network'][0]['ietf-network-topology:link'])
+ self.assertEqual(nbLink, 20)
+ R2RLink = ['ROADM-A1-DEG2-DEG2-TTP-TXRXtoROADM-C1-DEG1-DEG1-TTP-TXRX',
+ 'ROADM-C1-DEG1-DEG1-TTP-TXRXtoROADM-A1-DEG2-DEG2-TTP-TXRX']
+ for i in range(0, nbLink):
+ link_id = res['network'][0]['ietf-network-topology:link'][i]['link-id']
+ if link_id in R2RLink:
+ find = False
+ spanLoss = res['network'][0]['ietf-network-topology:link'][i][
+ 'org-openroadm-network-topology:OMS-attributes']['span']["engineered-spanloss"]
+ length = res['network'][0]['ietf-network-topology:link'][i][
+ 'org-openroadm-network-topology:OMS-attributes']['span']['link-concatenation'][0]['SRLG-length']
+ if (spanLoss is not None) & (length is not None):
+ find = True
+ self.assertTrue(find)
+ R2RLink.remove(link_id)
+ self.assertEqual(len(R2RLink), 0)
+
+ def test_20_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)
+ nbNode = len(res['network'][0]['node'])
+ self.assertEqual(nbNode, 8)
+ listNode = ['XPDR-A1-XPDR1',
+ 'ROADM-A1-SRG1', 'ROADM-A1-SRG3', 'ROADM-A1-DEG1', 'ROADM-A1-DEG2',
+ 'ROADM-C1-SRG1', 'ROADM-C1-DEG1', 'ROADM-C1-DEG2']
+ # Tests related to XPDRA nodes
+ 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 == 'XPDR-A1-XPDR1':
+ self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'XPDR-A1'},
+ res['network'][0]['node'][i]['supporting-node'])
+ self.assertEqual(nodeType, 'XPONDER')
+ nbTps = len(res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
+ self.assertTrue(nbTps >= 4)
+ 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 == 2)
+ self.assertTrue(network == 2)
+ listNode.remove(nodeId)
+ # Tests related to ROADMA nodes
+ elif nodeId in self.CHECK_DICT1:
+ self.assertEqual(nodeType, self.CHECK_DICT1[nodeId]['node_type'])
+ if self.CHECK_DICT1[nodeId]['node_type'] == 'SRG':
+ self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']), 5)
+ for item in self.CHECK_DICT1[nodeId]['checks_tp']:
+ self.assertIn(item, res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
+ self.assertIn({'network-ref': 'clli-network', 'node-ref': 'NodeA'},
+ res['network'][0]['node'][i]['supporting-node'])
+ self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADM-A1'},
+ res['network'][0]['node'][i]['supporting-node'])
+ self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'],
+ self.CHECK_DICT1[nodeId]['node_type'])
+ listNode.remove(nodeId)
+ # Tests related to ROADMA nodes
+ elif nodeId in self.CHECK_DICT2:
+ self.assertEqual(nodeType, self.CHECK_DICT2[nodeId]['node_type'])
+ if self.CHECK_DICT2[nodeId]['node_type'] == 'SRG':
+ self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']), 5)
+ for item in self.CHECK_DICT2[nodeId]['checks_tp']:
+ self.assertIn(item, res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
+ self.assertIn({'network-ref': 'clli-network', 'node-ref': 'NodeC'},
+ res['network'][0]['node'][i]['supporting-node'])
+ self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADM-C1'},
+ res['network'][0]['node'][i]['supporting-node'])
+ self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'],
+ self.CHECK_DICT2[nodeId]['node_type'])
+ listNode.remove(nodeId)
+ self.assertEqual(len(listNode), 0)
+
+ def test_21_connect_ROADMB(self):
+ response = test_utils.mount_device("ROADM-B1", ('roadmb', self.NODE_VERSION))
+ self.assertEqual(response.status_code, requests.codes.created, test_utils.CODE_SHOULD_BE_201)
+
+ def test_22_omsAttributes_ROADMA_ROADMB(self):
+ # Config ROADM-A1-ROADM-B1 oms-attributes
+ data = {"span": {
+ "auto-spanloss": "true",
+ "engineered-spanloss": 12.2,
+ "spanloss-current": 12,
+ "spanloss-base": 11.4,
+ "link-concatenation": [{
+ "SRLG-Id": 0,
+ "fiber-type": "smf",
+ "SRLG-length": 100000,
+ "pmd": 0.5}]}}
+ response = test_utils.add_oms_attr_request("ROADM-A1-DEG1-DEG1-TTP-TXRXtoROADM-B1-DEG1-DEG1-TTP-TXRX", data)
+ self.assertEqual(response.status_code, requests.codes.created)
+
+ def test_23_omsAttributes_ROADMB_ROADMA(self):
+ # Config ROADM-B1-ROADM-A1 oms-attributes
+ data = {"span": {
+ "auto-spanloss": "true",
+ "engineered-spanloss": 12.2,
+ "spanloss-current": 12,
+ "spanloss-base": 11.4,
+ "link-concatenation": [{
+ "SRLG-Id": 0,
+ "fiber-type": "smf",
+ "SRLG-length": 100000,
+ "pmd": 0.5}]}}
+ response = test_utils.add_oms_attr_request("ROADM-B1-DEG1-DEG1-TTP-TXRXtoROADM-A1-DEG1-DEG1-TTP-TXRX", data)
+ self.assertEqual(response.status_code, requests.codes.created)
+
+ def test_24_omsAttributes_ROADMB_ROADMC(self):
+ # Config ROADM-B1-ROADM-C1 oms-attributes
+ data = {"span": {
+ "auto-spanloss": "true",
+ "engineered-spanloss": 12.2,
+ "spanloss-current": 12,
+ "spanloss-base": 11.4,
+ "link-concatenation": [{
+ "SRLG-Id": 0,
+ "fiber-type": "smf",
+ "SRLG-length": 100000,
+ "pmd": 0.5}]}}
+ response = test_utils.add_oms_attr_request("ROADM-B1-DEG2-DEG2-TTP-TXRXtoROADM-C1-DEG2-DEG2-TTP-TXRX", data)
+ self.assertEqual(response.status_code, requests.codes.created)