3 ##############################################################################
4 # Copyright (c) 2020 Orange, Inc. and others. All rights reserved.
6 # All rights reserved. This program and the accompanying materials
7 # are made available under the terms of the Apache License, Version 2.0
8 # which accompanies this distribution, and is available at
9 # http://www.apache.org/licenses/LICENSE-2.0
10 ##############################################################################
15 from common import test_utils
18 class TransportPCEtesting(unittest.TestCase):
24 cls.processes = test_utils.start_tpce()
25 cls.processes = test_utils.start_sims(['spdra', 'spdrc'])
28 def tearDownClass(cls):
29 for process in cls.processes:
30 test_utils.shutdown_process(process)
31 print("all processes killed")
36 def test_01_connect_SPDR_SA1(self):
37 response = test_utils.mount_device("SPDR-SA1", 'spdra')
38 self.assertEqual(response.status_code, requests.codes.created,
39 test_utils.CODE_SHOULD_BE_201)
42 url = "{}/operational/network-topology:network-topology/topology/topology-netconf/node/SPDR-SA1"
43 response = test_utils.get_request(url)
44 self.assertEqual(response.status_code, requests.codes.ok)
47 res['node'][0]['netconf-node-topology:connection-status'],
50 def test_02_connect_SPDR_SC1(self):
51 response = test_utils.mount_device("SPDR-SC1", 'spdrc')
52 self.assertEqual(response.status_code, requests.codes.created,
53 test_utils.CODE_SHOULD_BE_201)
56 url = "{}/operational/network-topology:network-topology/topology/topology-netconf/node/SPDR-SC1"
57 response = test_utils.get_request(url)
58 self.assertEqual(response.status_code, requests.codes.ok)
61 res['node'][0]['netconf-node-topology:connection-status'],
64 def test_03_service_create_OTU4(self):
65 url = "{}/operations/transportpce-renderer:service-implementation-request"
67 "transportpce-renderer:input": {
68 "transportpce-renderer:service-name": "SPDRA-SPDRC-OTU4-ODU4",
69 "transportpce-renderer:connection-type": "infrastructure",
70 "transportpce-renderer:service-handler-header": {
71 "transportpce-renderer:request-id": "abcd12-efgh34"
73 "transportpce-renderer:service-a-end": {
74 "transportpce-renderer:service-format": "OTU",
75 "transportpce-renderer:otu-service-rate": "org-openroadm-otn-common-types:OTU4",
76 "transportpce-renderer:clli": "nodeSA",
77 "transportpce-renderer:node-id": "SPDR-SA1"
80 "transportpce-renderer:service-z-end": {
81 "transportpce-renderer:service-format": "OTU",
82 "transportpce-renderer:otu-service-rate": "org-openroadm-otn-common-types:OTU4",
83 "transportpce-renderer:clli": "nodeSC",
84 "transportpce-renderer:node-id": "SPDR-SC1"
86 "transportpce-renderer:path-description": {
89 "transportpce-renderer:modulation-format": "dp-qpsk",
90 "aToZ-wavelength-number": 1,
95 "tp-node-id": "SPDR-SA1-XPDR1",
96 "tp-id": "XPDR1-NETWORK1"
102 "tp-node-id": "SPDR-SC1-XPDR1",
103 "tp-id": "XPDR1-NETWORK1"
108 "transportpce-renderer:zToA-direction": {
109 "transportpce-renderer:zToA-wavelength-number": "1",
110 "transportpce-renderer:rate": "100",
111 "transportpce-renderer:modulation-format": "dp-qpsk",
116 "tp-node-id": "SPDR-SC1-XPDR1",
117 "tp-id": "XPDR1-NETWORK1"
123 "tp-node-id": "SPDR-SA1-XPDR1",
124 "tp-id": "XPDR1-NETWORK1"
132 response = test_utils.post_request(url, data)
134 self.assertEqual(response.status_code, requests.codes.ok)
135 res = response.json()
136 self.assertIn('Operation Successful',
137 res["output"]["configuration-response-common"]["response-message"])
139 # Test OCH-OTU interfaces on SPDR-A1
140 def test_04_check_interface_och(self):
141 url = ("{}/config/network-topology:network-topology/topology/topology-netconf/"
142 "node/SPDR-SA1/yang-ext:mount/org-openroadm-device:org-openroadm-device/"
143 "interface/XPDR1-NETWORK1-1"
145 response = test_utils.get_request(url)
146 self.assertEqual(response.status_code, requests.codes.ok)
147 res = response.json()
148 self.assertDictEqual(dict({'name': 'XPDR1-NETWORK1-1',
149 'administrative-state': 'inService',
150 'supporting-circuit-pack-name': 'CP1-CFP0',
151 'type': 'org-openroadm-interfaces:opticalChannel',
152 'supporting-port': 'CP1-CFP0-P1'
153 }, **res['interface'][0]),
156 self.assertDictEqual(
157 {u'frequency': 196.1, u'rate': u'org-openroadm-common-types:R100G',
158 u'transmit-power': -5},
159 res['interface'][0]['org-openroadm-optical-channel-interfaces:och'])
161 def test_05_check_interface_OTU(self):
162 url = ("{}/config/network-topology:network-topology/topology/topology-netconf/"
163 "node/SPDR-SA1/yang-ext:mount/org-openroadm-device:org-openroadm-device/"
164 "interface/XPDR1-NETWORK1-OTU"
166 response = test_utils.get_request(url)
167 self.assertEqual(response.status_code, requests.codes.ok)
168 res = response.json()
169 input_dict_1 = {'name': 'XPDR1-NETWORK1-OTU',
170 'administrative-state': 'inService',
171 'supporting-circuit-pack-name': 'CP1-CFP0',
172 'supporting-interface': 'XPDR1-NETWORK1-1',
173 'type': 'org-openroadm-interfaces:otnOtu',
174 'supporting-port': 'CP1-CFP0-P1'
176 input_dict_2 = {'tx-dapi': 'fuYZwEO660g=',
177 'expected-sapi': 'fuYZwEO660g=',
178 'tx-sapi': 'Swfw02qXGyI=',
179 'expected-dapi': 'Swfw02qXGyI=',
180 'rate': 'org-openroadm-otn-common-types:OTU4',
183 self.assertDictEqual(dict(input_dict_1, **res['interface'][0]),
186 self.assertDictEqual(input_dict_2,
188 ['org-openroadm-otn-otu-interfaces:otu'])
190 # Test OCH-OTU interfaces on SPDR-C1
191 def test_06_check_interface_och(self):
192 url = ("{}/config/network-topology:network-topology/topology/topology-netconf/"
193 "node/SPDR-SC1/yang-ext:mount/org-openroadm-device:org-openroadm-device/"
194 "interface/XPDR1-NETWORK1-1"
196 response = test_utils.get_request(url)
197 self.assertEqual(response.status_code, requests.codes.ok)
198 res = response.json()
199 self.assertDictEqual(dict({'name': 'XPDR1-NETWORK1-1',
200 'administrative-state': 'inService',
201 'supporting-circuit-pack-name': 'CP1-CFP0',
202 'type': 'org-openroadm-interfaces:opticalChannel',
203 'supporting-port': 'CP1-CFP0-P1'
204 }, **res['interface'][0]),
207 self.assertDictEqual(
208 {u'frequency': 196.1, u'rate': u'org-openroadm-common-types:R100G',
209 u'transmit-power': -5},
210 res['interface'][0]['org-openroadm-optical-channel-interfaces:och'])
212 def test_07_check_interface_OTU(self):
213 url = ("{}/config/network-topology:network-topology/topology/topology-netconf/"
214 "node/SPDR-SC1/yang-ext:mount/org-openroadm-device:org-openroadm-device/"
215 "interface/XPDR1-NETWORK1-OTU"
217 response = test_utils.get_request(url)
218 self.assertEqual(response.status_code, requests.codes.ok)
219 res = response.json()
220 input_dict_1 = {'name': 'XPDR1-NETWORK1-OTU',
221 'administrative-state': 'inService',
222 'supporting-circuit-pack-name': 'CP1-CFP0',
223 'supporting-interface': 'XPDR1-NETWORK1-1',
224 'type': 'org-openroadm-interfaces:otnOtu',
225 'supporting-port': 'CP1-CFP0-P1'
227 input_dict_2 = {'tx-dapi': 'Swfw02qXGyI=',
228 'expected-sapi': 'Swfw02qXGyI=',
229 'tx-sapi': 'fuYZwEO660g=',
230 'expected-dapi': 'fuYZwEO660g=',
231 'rate': 'org-openroadm-otn-common-types:OTU4',
235 self.assertDictEqual(dict(input_dict_1, **res['interface'][0]),
238 self.assertDictEqual(input_dict_2,
240 ['org-openroadm-otn-otu-interfaces:otu'])
242 # Test creation of ODU4 service
243 def test_08_service_create_ODU4(self):
244 url = "{}/operations/transportpce-renderer:service-implementation-request"
247 "transportpce-renderer:input": {
248 "transportpce-renderer:service-name":
249 "SPDRA-SPDRC-OTU4-ODU4",
250 "transportpce-renderer:connection-type": "infrastructure",
251 "transportpce-renderer:service-handler-header": {
252 "transportpce-renderer:request-id": "abcd12-efgh34"
254 "transportpce-renderer:service-a-end": {
255 "transportpce-renderer:service-format": "ODU",
256 "transportpce-renderer:odu-service-rate":
257 "org-openroadm-otn-common-types:ODU4",
258 "transportpce-renderer:clli": "nodeSA",
259 "transportpce-renderer:node-id": "SPDR-SA1"
262 "transportpce-renderer:service-z-end": {
263 "transportpce-renderer:service-format": "ODU",
264 "transportpce-renderer:odu-service-rate":
265 "org-openroadm-otn-common-types:ODU4",
266 "transportpce-renderer:clli": "nodeSC",
267 "transportpce-renderer:node-id": "SPDR-SC1"
269 "transportpce-renderer:path-description": {
276 "tp-node-id": "SPDR-SA1-XPDR1",
277 "tp-id": "XPDR1-NETWORK1"
283 "tp-node-id": "SPDR-SC1-XPDR1",
284 "tp-id": "XPDR1-NETWORK1"
289 "transportpce-renderer:zToA-direction": {
290 "transportpce-renderer:rate": "100",
295 "tp-node-id": "SPDR-SC1-XPDR1",
296 "tp-id": "XPDR1-NETWORK1"
302 "tp-node-id": "SPDR-SA1-XPDR1",
303 "tp-id": "XPDR1-NETWORK1"
311 response = test_utils.post_request(url, data)
313 self.assertEqual(response.status_code, requests.codes.ok)
314 res = response.json()
315 self.assertIn('Operation Successful',
316 res["output"]["configuration-response-common"]
317 ["response-message"])
319 # Test ODU4 interfaces on SPDR-A1 and SPDR-C1
320 def test_09_check_interface_ODU4(self):
321 url = ("{}/config/network-topology:network-topology/topology/topology-netconf/"
322 "node/SPDR-SA1/yang-ext:mount/org-openroadm-device:org-openroadm-device/"
323 "interface/XPDR1-NETWORK1-ODU4"
325 response = test_utils.get_request(url)
326 self.assertEqual(response.status_code, requests.codes.ok)
327 res = response.json()
328 input_dict_1 = {'name': 'XPDR1-NETWORK1-ODU4',
329 'administrative-state': 'inService',
330 'supporting-circuit-pack-name': 'CP1-CFP0',
331 'supporting-interface': 'XPDR1-NETWORK1-OTU',
332 'type': 'org-openroadm-interfaces:otnOdu',
333 'supporting-port': 'CP1-CFP0-P1'}
334 # SAPI/DAPI are added in the Otu4 renderer
335 input_dict_2 = {'odu-function': 'org-openroadm-otn-common-types:ODU-TTP',
336 'rate': 'org-openroadm-otn-common-types:ODU4',
337 'expected-dapi': 'Swfw02qXGyI=',
338 'expected-sapi': 'fuYZwEO660g=',
339 'tx-dapi': 'fuYZwEO660g=',
340 'tx-sapi': 'Swfw02qXGyI='}
342 self.assertDictEqual(dict(input_dict_1, **res['interface'][0]),
344 self.assertDictEqual(dict(res['interface'][0]['org-openroadm-otn-odu-interfaces:odu'],
346 res['interface'][0]['org-openroadm-otn-odu-interfaces:odu']
348 self.assertDictEqual(
349 {u'payload-type': u'21', u'exp-payload-type': u'21'},
350 res['interface'][0]['org-openroadm-otn-odu-interfaces:odu']['opu'])
352 def test_10_check_interface_ODU4(self):
353 url = ("{}/config/network-topology:network-topology/topology/topology-netconf/"
354 "node/SPDR-SC1/yang-ext:mount/org-openroadm-device:org-openroadm-device/"
355 "interface/XPDR1-NETWORK1-ODU4"
357 response = test_utils.get_request(url)
358 self.assertEqual(response.status_code, requests.codes.ok)
359 res = response.json()
360 input_dict_1 = {'name': 'XPDR1-NETWORK1-ODU4',
361 'administrative-state': 'inService',
362 'supporting-circuit-pack-name': 'CP1-CFP0',
363 'supporting-interface': 'XPDR1-NETWORK1-OTU',
364 'type': 'org-openroadm-interfaces:otnOdu',
365 'supporting-port': 'CP1-CFP0-P1'}
366 # SAPI/DAPI are added in the Otu4 renderer
367 input_dict_2 = {'odu-function': 'org-openroadm-otn-common-types:ODU-TTP',
368 'rate': 'org-openroadm-otn-common-types:ODU4',
369 'tx-sapi': 'fuYZwEO660g=',
370 'tx-dapi': 'Swfw02qXGyI=',
371 'expected-sapi': 'Swfw02qXGyI=',
372 'expected-dapi': 'fuYZwEO660g='
374 self.assertDictEqual(dict(input_dict_1, **res['interface'][0]),
376 self.assertDictEqual(dict(res['interface'][0]['org-openroadm-otn-odu-interfaces:odu'],
378 res['interface'][0]['org-openroadm-otn-odu-interfaces:odu']
380 self.assertDictEqual(
381 {u'payload-type': u'21', u'exp-payload-type': u'21'},
382 res['interface'][0]['org-openroadm-otn-odu-interfaces:odu']['opu'])
384 # Test creation of 10G service
385 def test_11_service_create_10GE(self):
386 url = "{}/operations/transportpce-renderer:service-implementation-request"
389 "transportpce-renderer:input": {
390 "transportpce-renderer:service-name": "SPDRA-SPDRC-10G",
391 "transportpce-renderer:connection-type": "service",
392 "transportpce-renderer:service-handler-header": {
393 "transportpce-renderer:request-id": "abcd12-efgh34"
395 "transportpce-renderer:service-a-end": {
396 "transportpce-renderer:service-format": "Ethernet",
397 "transportpce-renderer:service-rate": "10",
398 "transportpce-renderer:clli": "nodeSA",
399 "transportpce-renderer:node-id": "SPDR-SA1"
402 "transportpce-renderer:service-z-end": {
403 "transportpce-renderer:service-format": "Ethernet",
404 "transportpce-renderer:service-rate": "10",
405 "transportpce-renderer:clli": "nodeSC",
406 "transportpce-renderer:node-id": "SPDR-SC1"
408 "transportpce-renderer:path-description": {
415 "tp-node-id": "SPDR-SA1-XPDR1",
416 "tp-id": "XPDR1-CLIENT1"
423 "tp-node-id": "SPDR-SA1-XPDR1",
424 "tp-id": "XPDR1-NETWORK1"
430 "tp-node-id": "SPDR-SC1-XPDR1",
431 "tp-id": "XPDR1-NETWORK1"
437 "tp-node-id": "SPDR-SC1-XPDR1",
438 "tp-id": "XPDR1-CLIENT1"
443 "transportpce-renderer:zToA-direction": {
444 "transportpce-renderer:rate": "10",
449 "tp-node-id": "SPDR-SC1-XPDR1",
450 "tp-id": "XPDR1-CLIENT1"
456 "tp-node-id": "SPDR-SC1-XPDR1",
457 "tp-id": "XPDR1-NETWORK1"
463 "tp-node-id": "SPDR-SA1-XPDR1",
464 "tp-id": "XPDR1-NETWORK1"
470 "tp-node-id": "SPDR-SA1-XPDR1",
471 "tp-id": "XPDR1-CLIENT1"
481 response = test_utils.post_request(url, data)
483 self.assertEqual(response.status_code, requests.codes.ok)
484 res = response.json()
485 self.assertIn('Operation Successful',
486 res["output"]["configuration-response-common"]
487 ["response-message"])
489 # Test the interfaces on SPDR-A1
490 def test_12_check_interface_10GE_CLIENT(self):
491 url = ("{}/config/network-topology:network-topology/topology/topology-netconf/"
492 "node/SPDR-SA1/yang-ext:mount/org-openroadm-device:org-openroadm-device/"
493 "interface/XPDR1-CLIENT1-ETHERNET10G"
495 response = test_utils.get_request(url)
496 self.assertEqual(response.status_code, requests.codes.ok)
497 res = response.json()
498 input_dict = {'name': 'XPDR1-CLIENT1-ETHERNET10G',
499 'administrative-state': 'inService',
500 'supporting-circuit-pack-name': 'CP1-SFP4',
501 'type': 'org-openroadm-interfaces:ethernetCsmacd',
502 'supporting-port': 'CP1-SFP4-P1'
504 self.assertDictEqual(dict(input_dict, **res['interface'][0]),
506 self.assertDictEqual(
508 res['interface'][0]['org-openroadm-ethernet-interfaces:ethernet'])
510 def test_13_check_interface_ODU2E_CLIENT(self):
511 url = ("{}/config/network-topology:network-topology/topology/topology-netconf/"
512 "node/SPDR-SA1/yang-ext:mount/org-openroadm-device:org-openroadm-device/"
513 "interface/XPDR1-CLIENT1-ODU2e-SPDRA-SPDRC-10G"
515 response = test_utils.get_request(url)
516 self.assertEqual(response.status_code, requests.codes.ok)
517 res = response.json()
518 input_dict_1 = {'name': 'XPDR1-CLIENT1-ODU2e-SPDRA-SPDRC-10G',
519 'administrative-state': 'inService',
520 'supporting-circuit-pack-name': 'CP1-SFP4',
521 'supporting-interface': 'XPDR1-CLIENT1-ETHERNET10G',
522 'type': 'org-openroadm-interfaces:otnOdu',
523 'supporting-port': 'CP1-SFP4-P1'}
525 'odu-function': 'org-openroadm-otn-common-types:ODU-TTP-CTP',
526 'rate': 'org-openroadm-otn-common-types:ODU2e',
527 'monitoring-mode': 'terminated'}
529 self.assertDictEqual(dict(input_dict_1, **res['interface'][0]),
531 self.assertDictEqual(dict(input_dict_2,
532 **res['interface'][0]['org-openroadm-otn-odu-interfaces:odu']),
533 res['interface'][0]['org-openroadm-otn-odu-interfaces:odu'])
534 self.assertDictEqual(
535 {u'payload-type': u'03', u'exp-payload-type': u'03'},
536 res['interface'][0]['org-openroadm-otn-odu-interfaces:odu']['opu'])
538 def test_14_check_ODU2E_connection(self):
539 url = ("{}/config/network-topology:network-topology/topology/topology-netconf/"
540 "node/SPDR-SA1/yang-ext:mount/org-openroadm-device:org-openroadm-device/"
541 "odu-connection/XPDR1-CLIENT1-ODU2e-SPDRA-SPDRC-10G-x-XPDR1-NETWORK1-ODU2e-SPDRA-SPDRC-10G"
543 response = test_utils.get_request(url)
544 self.assertEqual(response.status_code, requests.codes.ok)
545 res = response.json()
548 'XPDR1-CLIENT1-ODU2e-SPDRA-SPDRC-10G-x-XPDR1-NETWORK1-ODU2e-SPDRA-SPDRC-10G',
549 'direction': 'bidirectional'
552 self.assertDictEqual(dict(input_dict_1, **res['odu-connection'][0]),
553 res['odu-connection'][0])
554 self.assertDictEqual({u'dst-if': u'XPDR1-NETWORK1-ODU2e-SPDRA-SPDRC-10G'},
555 res['odu-connection'][0]['destination'])
556 self.assertDictEqual({u'src-if': u'XPDR1-CLIENT1-ODU2e-SPDRA-SPDRC-10G'},
557 res['odu-connection'][0]['source'])
559 def test_15_check_interface_ODU2E_NETWORK(self):
560 url = ("{}/config/network-topology:network-topology/topology/topology-netconf/"
561 "node/SPDR-SA1/yang-ext:mount/org-openroadm-device:org-openroadm-device/"
562 "interface/XPDR1-NETWORK1-ODU2e-SPDRA-SPDRC-10G"
564 response = test_utils.get_request(url)
565 self.assertEqual(response.status_code, requests.codes.ok)
566 res = response.json()
567 input_dict_1 = {'name': 'XPDR1-NETWORK1-ODU2e-SPDRA-SPDRC-10G',
568 'administrative-state': 'inService',
569 'supporting-circuit-pack-name': 'CP1-CFP0',
570 'supporting-interface': 'XPDR1-NETWORK1-ODU4',
571 'type': 'org-openroadm-interfaces:otnOdu',
572 'supporting-port': 'CP1-CFP0-P1'}
574 'odu-function': 'org-openroadm-otn-common-types:ODU-CTP',
575 'rate': 'org-openroadm-otn-common-types:ODU2e',
576 'monitoring-mode': 'monitored'}
578 input_dict_3 = {'trib-port-number': 1}
580 self.assertDictEqual(dict(input_dict_1, **res['interface'][0]),
582 self.assertDictEqual(dict(input_dict_2,
583 **res['interface'][0]['org-openroadm-otn-odu-interfaces:odu']),
584 res['interface'][0]['org-openroadm-otn-odu-interfaces:odu'])
585 self.assertDictEqual(dict(input_dict_3,
586 **res['interface'][0]['org-openroadm-otn-odu-interfaces:odu'][
587 'parent-odu-allocation']),
588 res['interface'][0]['org-openroadm-otn-odu-interfaces:odu'][
589 'parent-odu-allocation'])
592 'org-openroadm-otn-odu-interfaces:odu'][
593 'parent-odu-allocation']['trib-slots'])
595 # Test the interfaces on SPDR-C1
596 def test_16_check_interface_ODU2E_NETWORK(self):
597 url = ("{}/config/network-topology:network-topology/topology/topology-netconf/"
598 "node/SPDR-SA1/yang-ext:mount/org-openroadm-device:org-openroadm-device/"
599 "interface/XPDR1-NETWORK1-ODU2e-SPDRA-SPDRC-10G"
601 response = test_utils.get_request(url)
602 self.assertEqual(response.status_code, requests.codes.ok)
603 res = response.json()
604 input_dict_1 = {'name': 'XPDR1-NETWORK1-ODU2e-SPDRA-SPDRC-10G',
605 'administrative-state': 'inService',
606 'supporting-circuit-pack-name': 'CP1-CFP0',
607 'supporting-interface': 'XPDR1-NETWORK1-ODU4',
608 'type': 'org-openroadm-interfaces:otnOdu',
609 'supporting-port': 'CP1-CFP0-P1'}
611 'odu-function': 'org-openroadm-otn-common-types:ODU-CTP',
612 'rate': 'org-openroadm-otn-common-types:ODU2e',
613 'monitoring-mode': 'monitored'}
615 input_dict_3 = {'trib-port-number': 1}
617 self.assertDictEqual(dict(input_dict_1, **res['interface'][0]),
619 self.assertDictEqual(dict(input_dict_2,
620 **res['interface'][0]['org-openroadm-otn-odu-interfaces:odu']),
621 res['interface'][0]['org-openroadm-otn-odu-interfaces:odu'])
622 self.assertDictEqual(dict(input_dict_3,
623 **res['interface'][0]['org-openroadm-otn-odu-interfaces:odu'][
624 'parent-odu-allocation']),
625 res['interface'][0]['org-openroadm-otn-odu-interfaces:odu'][
626 'parent-odu-allocation'])
629 'org-openroadm-otn-odu-interfaces:odu'][
630 'parent-odu-allocation']['trib-slots'])
632 def test_17_check_interface_10GE_CLIENT(self):
633 url = ("{}/config/network-topology:network-topology/topology/topology-netconf/"
634 "node/SPDR-SC1/yang-ext:mount/org-openroadm-device:org-openroadm-device/"
635 "interface/XPDR1-CLIENT1-ETHERNET10G"
637 response = test_utils.get_request(url)
638 self.assertEqual(response.status_code, requests.codes.ok)
639 res = response.json()
640 input_dict = {'name': 'XPDR1-CLIENT1-ETHERNET10G',
641 'administrative-state': 'inService',
642 'supporting-circuit-pack-name': 'CP1-SFP4',
643 'type': 'org-openroadm-interfaces:ethernetCsmacd',
644 'supporting-port': 'CP1-SFP4-P1'
646 self.assertDictEqual(dict(input_dict, **res['interface'][0]),
648 self.assertDictEqual(
650 res['interface'][0]['org-openroadm-ethernet-interfaces:ethernet'])
652 def test_18_check_interface_ODU2E_CLIENT(self):
653 url = ("{}/config/network-topology:network-topology/topology/topology-netconf/"
654 "node/SPDR-SC1/yang-ext:mount/org-openroadm-device:org-openroadm-device/"
655 "interface/XPDR1-CLIENT1-ODU2e-SPDRA-SPDRC-10G"
657 response = test_utils.get_request(url)
658 self.assertEqual(response.status_code, requests.codes.ok)
659 res = response.json()
660 input_dict_1 = {'name': 'XPDR1-CLIENT1-ODU2e-SPDRA-SPDRC-10G',
661 'administrative-state': 'inService',
662 'supporting-circuit-pack-name': 'CP1-SFP4',
663 'supporting-interface': 'XPDR1-CLIENT1-ETHERNET10G',
664 'type': 'org-openroadm-interfaces:otnOdu',
665 'supporting-port': 'CP1-SFP4-P1'}
667 'odu-function': 'org-openroadm-otn-common-types:ODU-TTP-CTP',
668 'rate': 'org-openroadm-otn-common-types:ODU2e',
669 'monitoring-mode': 'terminated'}
671 self.assertDictEqual(dict(input_dict_1, **res['interface'][0]),
673 self.assertDictEqual(dict(input_dict_2,
674 **res['interface'][0]['org-openroadm-otn-odu-interfaces:odu']),
675 res['interface'][0]['org-openroadm-otn-odu-interfaces:odu'])
676 self.assertDictEqual(
677 {u'payload-type': u'03', u'exp-payload-type': u'03'},
678 res['interface'][0]['org-openroadm-otn-odu-interfaces:odu']['opu'])
680 def test_19_check_ODU2E_connection(self):
681 url = ("{}/config/network-topology:network-topology/topology/topology-netconf/"
682 "node/SPDR-SC1/yang-ext:mount/org-openroadm-device:org-openroadm-device/"
683 "odu-connection/XPDR1-CLIENT1-ODU2e-SPDRA-SPDRC-10G-x-XPDR1-NETWORK1-ODU2e-SPDRA-SPDRC-10G"
685 response = test_utils.get_request(url)
686 self.assertEqual(response.status_code, requests.codes.ok)
687 res = response.json()
690 'XPDR1-CLIENT1-ODU2e-SPDRA-SPDRC-10G-x-XPDR1-NETWORK1-ODU2e-SPDRA-SPDRC-10G',
691 'direction': 'bidirectional'
694 self.assertDictEqual(dict(input_dict_1, **res['odu-connection'][0]),
695 res['odu-connection'][0])
696 self.assertDictEqual({u'dst-if': u'XPDR1-NETWORK1-ODU2e-SPDRA-SPDRC-10G'},
697 res['odu-connection'][0]['destination'])
698 self.assertDictEqual({u'src-if': u'XPDR1-CLIENT1-ODU2e-SPDRA-SPDRC-10G'},
699 res['odu-connection'][0]['source'])
701 def test_20_check_interface_ODU2E_NETWORK(self):
702 url = ("{}/config/network-topology:network-topology/topology/topology-netconf/"
703 "node/SPDR-SC1/yang-ext:mount/org-openroadm-device:org-openroadm-device/"
704 "interface/XPDR1-NETWORK1-ODU2e-SPDRA-SPDRC-10G"
706 response = test_utils.get_request(url)
707 self.assertEqual(response.status_code, requests.codes.ok)
708 res = response.json()
709 input_dict_1 = {'name': 'XPDR1-NETWORK1-ODU2e-SPDRA-SPDRC-10G',
710 'administrative-state': 'inService',
711 'supporting-circuit-pack-name': 'CP1-CFP0',
712 'supporting-interface': 'XPDR1-NETWORK1-ODU4',
713 'type': 'org-openroadm-interfaces:otnOdu',
714 'supporting-port': 'CP1-CFP0-P1'}
716 'odu-function': 'org-openroadm-otn-common-types:ODU-CTP',
717 'rate': 'org-openroadm-otn-common-types:ODU2e',
718 'monitoring-mode': 'monitored'}
720 input_dict_3 = {'trib-port-number': 1}
722 self.assertDictEqual(dict(input_dict_1, **res['interface'][0]),
724 self.assertDictEqual(dict(input_dict_2,
725 **res['interface'][0]['org-openroadm-otn-odu-interfaces:odu']),
726 res['interface'][0]['org-openroadm-otn-odu-interfaces:odu'])
727 self.assertDictEqual(dict(input_dict_3,
728 **res['interface'][0]['org-openroadm-otn-odu-interfaces:odu'][
729 'parent-odu-allocation']),
730 res['interface'][0]['org-openroadm-otn-odu-interfaces:odu'][
731 'parent-odu-allocation'])
734 'org-openroadm-otn-odu-interfaces:odu'][
735 'parent-odu-allocation']['trib-slots'])
737 # TODO: Delete the services (OTU, ODU, LO-ODU)
738 # TODO: Delete interfaces (SPDR-A1, SPDR-C1)
740 def test_21_disconnect_SPDR_SA1(self):
741 response = test_utils.unmount_device("SPDR-SA1")
742 self.assertEqual(response.status_code, requests.codes.ok,
743 test_utils.CODE_SHOULD_BE_200)
745 def test_22_disconnect_SPDR_SC1(self):
746 response = test_utils.unmount_device("SPDR-SC1")
747 self.assertEqual(response.status_code, requests.codes.ok,
748 test_utils.CODE_SHOULD_BE_200)
751 if __name__ == "__main__":
752 unittest.main(verbosity=2)