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 ##############################################################################
12 # pylint: disable=no-member
13 # pylint: disable=too-many-public-methods
18 from common import test_utils
21 class TransportPCEtesting(unittest.TestCase):
27 cls.processes = test_utils.start_tpce()
28 cls.processes = test_utils.start_sims(['spdra', 'spdrc'])
31 def tearDownClass(cls):
32 for process in cls.processes:
33 test_utils.shutdown_process(process)
34 print("all processes killed")
39 def test_01_connect_SPDR_SA1(self):
40 response = test_utils.mount_device("SPDR-SA1", 'spdra')
41 self.assertEqual(response.status_code, requests.codes.created,
42 test_utils.CODE_SHOULD_BE_201)
45 response = test_utils.get_netconf_oper_request("SPDR-SA1")
46 self.assertEqual(response.status_code, requests.codes.ok)
49 res['node'][0]['netconf-node-topology:connection-status'],
52 def test_02_connect_SPDR_SC1(self):
53 response = test_utils.mount_device("SPDR-SC1", 'spdrc')
54 self.assertEqual(response.status_code, requests.codes.created,
55 test_utils.CODE_SHOULD_BE_201)
58 response = test_utils.get_netconf_oper_request("SPDR-SC1")
59 self.assertEqual(response.status_code, requests.codes.ok)
62 res['node'][0]['netconf-node-topology:connection-status'],
65 def test_03_service_create_OTU4(self):
66 url = "{}/operations/transportpce-renderer:service-implementation-request"
68 "transportpce-renderer:input": {
69 "transportpce-renderer:service-name": "SPDRA-SPDRC-OTU4-ODU4",
70 "transportpce-renderer:connection-type": "infrastructure",
71 "transportpce-renderer:service-handler-header": {
72 "transportpce-renderer:request-id": "abcd12-efgh34"
74 "transportpce-renderer:service-a-end": {
75 "transportpce-renderer:service-format": "OTU",
76 "transportpce-renderer:otu-service-rate": "org-openroadm-otn-common-types:OTU4",
77 "transportpce-renderer:clli": "nodeSA",
78 "transportpce-renderer:node-id": "SPDR-SA1"
81 "transportpce-renderer:service-z-end": {
82 "transportpce-renderer:service-format": "OTU",
83 "transportpce-renderer:otu-service-rate": "org-openroadm-otn-common-types:OTU4",
84 "transportpce-renderer:clli": "nodeSC",
85 "transportpce-renderer:node-id": "SPDR-SC1"
87 "transportpce-renderer:path-description": {
90 "transportpce-renderer:modulation-format": "dp-qpsk",
91 "aToZ-wavelength-number": 1,
96 "tp-node-id": "SPDR-SA1-XPDR1",
103 "tp-node-id": "SPDR-SA1-XPDR1",
104 "tp-id": "XPDR1-NETWORK1"
110 "tp-node-id": "SPDR-SC1-XPDR1",
111 "tp-id": "XPDR1-NETWORK1"
117 "tp-node-id": "SPDR-SC1-XPDR1",
123 "transportpce-renderer:zToA-direction": {
124 "transportpce-renderer:zToA-wavelength-number": "1",
125 "transportpce-renderer:rate": "100",
126 "transportpce-renderer:modulation-format": "dp-qpsk",
131 "tp-node-id": "SPDR-SC1-XPDR1",
138 "tp-node-id": "SPDR-SC1-XPDR1",
139 "tp-id": "XPDR1-NETWORK1"
145 "tp-node-id": "SPDR-SA1-XPDR1",
146 "tp-id": "XPDR1-NETWORK1"
152 "tp-node-id": "SPDR-SA1-XPDR1",
161 response = test_utils.post_request(url, data)
163 self.assertEqual(response.status_code, requests.codes.ok)
164 res = response.json()
165 self.assertIn('Operation Successful',
166 res["output"]["configuration-response-common"]["response-message"])
168 # Test OCH-OTU interfaces on SPDR-A1
169 def test_04_check_interface_och(self):
170 response = test_utils.check_netconf_node_request("SPDR-SA1", "interface/XPDR1-NETWORK1-1")
171 self.assertEqual(response.status_code, requests.codes.ok)
172 res = response.json()
173 self.assertDictEqual(dict({'name': 'XPDR1-NETWORK1-1',
174 'administrative-state': 'inService',
175 'supporting-circuit-pack-name': 'CP1-CFP0',
176 'type': 'org-openroadm-interfaces:opticalChannel',
177 'supporting-port': 'CP1-CFP0-P1'
178 }, **res['interface'][0]),
181 self.assertDictEqual(
182 {u'frequency': 196.1, u'rate': u'org-openroadm-common-types:R100G',
183 u'transmit-power': -5, u'modulation-format': 'dp-qpsk'},
184 res['interface'][0]['org-openroadm-optical-channel-interfaces:och'])
186 def test_05_check_interface_OTU(self):
187 response = test_utils.check_netconf_node_request("SPDR-SA1", "interface/XPDR1-NETWORK1-OTU")
188 self.assertEqual(response.status_code, requests.codes.ok)
189 res = response.json()
190 input_dict_1 = {'name': 'XPDR1-NETWORK1-OTU',
191 'administrative-state': 'inService',
192 'supporting-circuit-pack-name': 'CP1-CFP0',
193 'supporting-interface': 'XPDR1-NETWORK1-1',
194 'type': 'org-openroadm-interfaces:otnOtu',
195 'supporting-port': 'CP1-CFP0-P1'
197 input_dict_2 = {'tx-dapi': 'fuYZwEO660g=',
198 'expected-sapi': 'fuYZwEO660g=',
199 'tx-sapi': 'Swfw02qXGyI=',
200 'expected-dapi': 'Swfw02qXGyI=',
201 'rate': 'org-openroadm-otn-common-types:OTU4',
204 self.assertDictEqual(dict(input_dict_1, **res['interface'][0]),
207 self.assertDictEqual(input_dict_2,
209 ['org-openroadm-otn-otu-interfaces:otu'])
211 # Test OCH-OTU interfaces on SPDR-C1
212 def test_06_check_interface_och(self):
213 response = test_utils.check_netconf_node_request("SPDR-SC1", "interface/XPDR1-NETWORK1-1")
214 self.assertEqual(response.status_code, requests.codes.ok)
215 res = response.json()
216 self.assertDictEqual(dict({'name': 'XPDR1-NETWORK1-1',
217 'administrative-state': 'inService',
218 'supporting-circuit-pack-name': 'CP1-CFP0',
219 'type': 'org-openroadm-interfaces:opticalChannel',
220 'supporting-port': 'CP1-CFP0-P1'
221 }, **res['interface'][0]),
224 self.assertDictEqual(
225 {u'frequency': 196.1, u'rate': u'org-openroadm-common-types:R100G',
226 u'transmit-power': -5, u'modulation-format': 'dp-qpsk'},
227 res['interface'][0]['org-openroadm-optical-channel-interfaces:och'])
229 def test_07_check_interface_OTU(self):
230 response = test_utils.check_netconf_node_request("SPDR-SC1", "interface/XPDR1-NETWORK1-OTU")
231 self.assertEqual(response.status_code, requests.codes.ok)
232 res = response.json()
233 input_dict_1 = {'name': 'XPDR1-NETWORK1-OTU',
234 'administrative-state': 'inService',
235 'supporting-circuit-pack-name': 'CP1-CFP0',
236 'supporting-interface': 'XPDR1-NETWORK1-1',
237 'type': 'org-openroadm-interfaces:otnOtu',
238 'supporting-port': 'CP1-CFP0-P1'
240 input_dict_2 = {'tx-dapi': 'Swfw02qXGyI=',
241 'expected-sapi': 'Swfw02qXGyI=',
242 'tx-sapi': 'fuYZwEO660g=',
243 'expected-dapi': 'fuYZwEO660g=',
244 'rate': 'org-openroadm-otn-common-types:OTU4',
248 self.assertDictEqual(dict(input_dict_1, **res['interface'][0]),
251 self.assertDictEqual(input_dict_2,
253 ['org-openroadm-otn-otu-interfaces:otu'])
255 # Test creation of ODU4 service
256 def test_08_service_create_ODU4(self):
257 url = "{}/operations/transportpce-renderer:service-implementation-request"
260 "transportpce-renderer:input": {
261 "transportpce-renderer:service-name":
262 "SPDRA-SPDRC-OTU4-ODU4",
263 "transportpce-renderer:connection-type": "infrastructure",
264 "transportpce-renderer:service-handler-header": {
265 "transportpce-renderer:request-id": "abcd12-efgh34"
267 "transportpce-renderer:service-a-end": {
268 "transportpce-renderer:service-format": "ODU",
269 "transportpce-renderer:odu-service-rate":
270 "org-openroadm-otn-common-types:ODU4",
271 "transportpce-renderer:clli": "nodeSA",
272 "transportpce-renderer:node-id": "SPDR-SA1"
275 "transportpce-renderer:service-z-end": {
276 "transportpce-renderer:service-format": "ODU",
277 "transportpce-renderer:odu-service-rate":
278 "org-openroadm-otn-common-types:ODU4",
279 "transportpce-renderer:clli": "nodeSC",
280 "transportpce-renderer:node-id": "SPDR-SC1"
282 "transportpce-renderer:path-description": {
289 "tp-node-id": "SPDR-SA1-XPDR1",
296 "tp-node-id": "SPDR-SA1-XPDR1",
297 "tp-id": "XPDR1-NETWORK1"
303 "tp-node-id": "SPDR-SC1-XPDR1",
304 "tp-id": "XPDR1-NETWORK1"
310 "tp-node-id": "SPDR-SC1-XPDR1",
316 "transportpce-renderer:zToA-direction": {
317 "transportpce-renderer:rate": "100",
322 "tp-node-id": "SPDR-SC1-XPDR1",
329 "tp-node-id": "SPDR-SC1-XPDR1",
330 "tp-id": "XPDR1-NETWORK1"
336 "tp-node-id": "SPDR-SA1-XPDR1",
337 "tp-id": "XPDR1-NETWORK1"
343 "tp-node-id": "SPDR-SA1-XPDR1",
352 response = test_utils.post_request(url, data)
354 self.assertEqual(response.status_code, requests.codes.ok)
355 res = response.json()
356 self.assertIn('Operation Successful',
357 res["output"]["configuration-response-common"]
358 ["response-message"])
360 # Test ODU4 interfaces on SPDR-A1 and SPDR-C1
361 def test_09_check_interface_ODU4(self):
362 response = test_utils.check_netconf_node_request("SPDR-SA1", "interface/XPDR1-NETWORK1-ODU4")
363 self.assertEqual(response.status_code, requests.codes.ok)
364 res = response.json()
365 input_dict_1 = {'name': 'XPDR1-NETWORK1-ODU4',
366 'administrative-state': 'inService',
367 'supporting-circuit-pack-name': 'CP1-CFP0',
368 'supporting-interface': 'XPDR1-NETWORK1-OTU',
369 'type': 'org-openroadm-interfaces:otnOdu',
370 'supporting-port': 'CP1-CFP0-P1'}
371 # SAPI/DAPI are added in the Otu4 renderer
372 input_dict_2 = {'odu-function': 'org-openroadm-otn-common-types:ODU-TTP',
373 'rate': 'org-openroadm-otn-common-types:ODU4',
374 'expected-dapi': 'Swfw02qXGyI=',
375 'expected-sapi': 'fuYZwEO660g=',
376 'tx-dapi': 'fuYZwEO660g=',
377 'tx-sapi': 'Swfw02qXGyI='}
379 self.assertDictEqual(dict(input_dict_1, **res['interface'][0]),
381 self.assertDictEqual(dict(res['interface'][0]['org-openroadm-otn-odu-interfaces:odu'],
383 res['interface'][0]['org-openroadm-otn-odu-interfaces:odu']
385 self.assertDictEqual(
386 {u'payload-type': u'21', u'exp-payload-type': u'21'},
387 res['interface'][0]['org-openroadm-otn-odu-interfaces:odu']['opu'])
389 def test_10_check_interface_ODU4(self):
390 response = test_utils.check_netconf_node_request("SPDR-SC1", "interface/XPDR1-NETWORK1-ODU4")
391 self.assertEqual(response.status_code, requests.codes.ok)
392 res = response.json()
393 input_dict_1 = {'name': 'XPDR1-NETWORK1-ODU4',
394 'administrative-state': 'inService',
395 'supporting-circuit-pack-name': 'CP1-CFP0',
396 'supporting-interface': 'XPDR1-NETWORK1-OTU',
397 'type': 'org-openroadm-interfaces:otnOdu',
398 'supporting-port': 'CP1-CFP0-P1'}
399 # SAPI/DAPI are added in the Otu4 renderer
400 input_dict_2 = {'odu-function': 'org-openroadm-otn-common-types:ODU-TTP',
401 'rate': 'org-openroadm-otn-common-types:ODU4',
402 'tx-sapi': 'fuYZwEO660g=',
403 'tx-dapi': 'Swfw02qXGyI=',
404 'expected-sapi': 'Swfw02qXGyI=',
405 'expected-dapi': 'fuYZwEO660g='
407 self.assertDictEqual(dict(input_dict_1, **res['interface'][0]),
409 self.assertDictEqual(dict(res['interface'][0]['org-openroadm-otn-odu-interfaces:odu'],
411 res['interface'][0]['org-openroadm-otn-odu-interfaces:odu']
413 self.assertDictEqual(
414 {u'payload-type': u'21', u'exp-payload-type': u'21'},
415 res['interface'][0]['org-openroadm-otn-odu-interfaces:odu']['opu'])
417 # Test creation of 10G service
418 def test_11_service_create_10GE(self):
419 url = "{}/operations/transportpce-renderer:service-implementation-request"
422 "transportpce-renderer:input": {
423 "transportpce-renderer:service-name": "SPDRA-SPDRC-10G",
424 "transportpce-renderer:connection-type": "service",
425 "transportpce-renderer:service-handler-header": {
426 "transportpce-renderer:request-id": "abcd12-efgh34"
428 "transportpce-renderer:service-a-end": {
429 "transportpce-renderer:service-format": "Ethernet",
430 "transportpce-renderer:service-rate": "10",
431 "transportpce-renderer:clli": "nodeSA",
432 "transportpce-renderer:node-id": "SPDR-SA1"
434 "transportpce-renderer:service-z-end": {
435 "transportpce-renderer:service-format": "Ethernet",
436 "transportpce-renderer:service-rate": "10",
437 "transportpce-renderer:clli": "nodeSC",
438 "transportpce-renderer:node-id": "SPDR-SC1"
440 "transportpce-renderer:path-description": {
443 "trib-port-number": 1,
444 "trib-slot-number": 1,
449 "tp-node-id": "SPDR-SA1-XPDR1",
450 "tp-id": "XPDR1-CLIENT1"
457 "tp-node-id": "SPDR-SA1-XPDR1",
458 "tp-id": "XPDR1-NETWORK1"
464 "tp-node-id": "SPDR-SC1-XPDR1",
465 "tp-id": "XPDR1-NETWORK1"
471 "tp-node-id": "SPDR-SC1-XPDR1",
472 "tp-id": "XPDR1-CLIENT1"
477 "transportpce-renderer:zToA-direction": {
479 "trib-port-number": 1,
480 "trib-slot-number": 1,
485 "tp-node-id": "SPDR-SC1-XPDR1",
486 "tp-id": "XPDR1-CLIENT1"
492 "tp-node-id": "SPDR-SC1-XPDR1",
493 "tp-id": "XPDR1-NETWORK1"
499 "tp-node-id": "SPDR-SA1-XPDR1",
500 "tp-id": "XPDR1-NETWORK1"
506 "tp-node-id": "SPDR-SA1-XPDR1",
507 "tp-id": "XPDR1-CLIENT1"
517 response = test_utils.post_request(url, data)
519 self.assertEqual(response.status_code, requests.codes.ok)
520 res = response.json()
521 self.assertIn('Operation Successful',
522 res["output"]["configuration-response-common"]
523 ["response-message"])
525 # Test the interfaces on SPDR-A1
526 def test_12_check_interface_10GE_CLIENT(self):
527 response = test_utils.check_netconf_node_request("SPDR-SA1", "interface/XPDR1-CLIENT1-ETHERNET10G")
528 self.assertEqual(response.status_code, requests.codes.ok)
529 res = response.json()
530 input_dict = {'name': 'XPDR1-CLIENT1-ETHERNET10G',
531 'administrative-state': 'inService',
532 'supporting-circuit-pack-name': 'CP1-SFP4',
533 'type': 'org-openroadm-interfaces:ethernetCsmacd',
534 'supporting-port': 'CP1-SFP4-P1'
536 self.assertDictEqual(dict(input_dict, **res['interface'][0]),
538 self.assertDictEqual(
540 res['interface'][0]['org-openroadm-ethernet-interfaces:ethernet'])
542 def test_13_check_interface_ODU2E_CLIENT(self):
543 response = test_utils.check_netconf_node_request("SPDR-SA1", "interface/XPDR1-CLIENT1-ODU2e-SPDRA-SPDRC-10G")
544 self.assertEqual(response.status_code, requests.codes.ok)
545 res = response.json()
546 input_dict_1 = {'name': 'XPDR1-CLIENT1-ODU2e-SPDRA-SPDRC-10G',
547 'administrative-state': 'inService',
548 'supporting-circuit-pack-name': 'CP1-SFP4',
549 'supporting-interface': 'XPDR1-CLIENT1-ETHERNET10G',
550 'type': 'org-openroadm-interfaces:otnOdu',
551 'supporting-port': 'CP1-SFP4-P1'}
553 'odu-function': 'org-openroadm-otn-common-types:ODU-TTP-CTP',
554 'rate': 'org-openroadm-otn-common-types:ODU2e',
555 'monitoring-mode': 'terminated'}
557 self.assertDictEqual(dict(input_dict_1, **res['interface'][0]),
559 self.assertDictEqual(dict(input_dict_2,
560 **res['interface'][0]['org-openroadm-otn-odu-interfaces:odu']),
561 res['interface'][0]['org-openroadm-otn-odu-interfaces:odu'])
562 self.assertDictEqual(
563 {u'payload-type': u'03', u'exp-payload-type': u'03'},
564 res['interface'][0]['org-openroadm-otn-odu-interfaces:odu']['opu'])
566 def test_14_check_ODU2E_connection(self):
567 response = test_utils.check_netconf_node_request(
569 "odu-connection/XPDR1-CLIENT1-ODU2e-SPDRA-SPDRC-10G-x-XPDR1-NETWORK1-ODU2e-SPDRA-SPDRC-10G")
570 self.assertEqual(response.status_code, requests.codes.ok)
571 res = response.json()
574 'XPDR1-CLIENT1-ODU2e-SPDRA-SPDRC-10G-x-XPDR1-NETWORK1-ODU2e-SPDRA-SPDRC-10G',
575 'direction': 'bidirectional'
578 self.assertDictEqual(dict(input_dict_1, **res['odu-connection'][0]),
579 res['odu-connection'][0])
580 self.assertDictEqual({u'dst-if': u'XPDR1-NETWORK1-ODU2e-SPDRA-SPDRC-10G'},
581 res['odu-connection'][0]['destination'])
582 self.assertDictEqual({u'src-if': u'XPDR1-CLIENT1-ODU2e-SPDRA-SPDRC-10G'},
583 res['odu-connection'][0]['source'])
585 def test_15_check_interface_ODU2E_NETWORK(self):
586 response = test_utils.check_netconf_node_request("SPDR-SA1", "interface/XPDR1-NETWORK1-ODU2e-SPDRA-SPDRC-10G")
587 self.assertEqual(response.status_code, requests.codes.ok)
588 res = response.json()
589 input_dict_1 = {'name': 'XPDR1-NETWORK1-ODU2e-SPDRA-SPDRC-10G',
590 'administrative-state': 'inService',
591 'supporting-circuit-pack-name': 'CP1-CFP0',
592 'supporting-interface': 'XPDR1-NETWORK1-ODU4',
593 'type': 'org-openroadm-interfaces:otnOdu',
594 'supporting-port': 'CP1-CFP0-P1'}
596 'odu-function': 'org-openroadm-otn-common-types:ODU-CTP',
597 'rate': 'org-openroadm-otn-common-types:ODU2e',
598 'monitoring-mode': 'monitored'}
600 input_dict_3 = {'trib-port-number': 1}
602 self.assertDictEqual(dict(input_dict_1, **res['interface'][0]),
604 self.assertDictEqual(dict(input_dict_2,
605 **res['interface'][0]['org-openroadm-otn-odu-interfaces:odu']),
606 res['interface'][0]['org-openroadm-otn-odu-interfaces:odu'])
607 self.assertDictEqual(dict(input_dict_3,
608 **res['interface'][0]['org-openroadm-otn-odu-interfaces:odu'][
609 'parent-odu-allocation']),
610 res['interface'][0]['org-openroadm-otn-odu-interfaces:odu'][
611 'parent-odu-allocation'])
614 'org-openroadm-otn-odu-interfaces:odu'][
615 'parent-odu-allocation']['trib-slots'])
617 # Test the interfaces on SPDR-C1
618 def test_16_check_interface_ODU2E_NETWORK(self):
619 response = test_utils.check_netconf_node_request("SPDR-SC1", "interface/XPDR1-NETWORK1-ODU2e-SPDRA-SPDRC-10G")
620 self.assertEqual(response.status_code, requests.codes.ok)
621 res = response.json()
622 input_dict_1 = {'name': 'XPDR1-NETWORK1-ODU2e-SPDRA-SPDRC-10G',
623 'administrative-state': 'inService',
624 'supporting-circuit-pack-name': 'CP1-CFP0',
625 'supporting-interface': 'XPDR1-NETWORK1-ODU4',
626 'type': 'org-openroadm-interfaces:otnOdu',
627 'supporting-port': 'CP1-CFP0-P1'}
629 'odu-function': 'org-openroadm-otn-common-types:ODU-CTP',
630 'rate': 'org-openroadm-otn-common-types:ODU2e',
631 'monitoring-mode': 'monitored'}
633 input_dict_3 = {'trib-port-number': 1}
635 self.assertDictEqual(dict(input_dict_1, **res['interface'][0]),
637 self.assertDictEqual(dict(input_dict_2,
638 **res['interface'][0]['org-openroadm-otn-odu-interfaces:odu']),
639 res['interface'][0]['org-openroadm-otn-odu-interfaces:odu'])
640 self.assertDictEqual(dict(input_dict_3,
641 **res['interface'][0]['org-openroadm-otn-odu-interfaces:odu'][
642 'parent-odu-allocation']),
643 res['interface'][0]['org-openroadm-otn-odu-interfaces:odu'][
644 'parent-odu-allocation'])
647 'org-openroadm-otn-odu-interfaces:odu'][
648 'parent-odu-allocation']['trib-slots'])
650 def test_17_check_interface_10GE_CLIENT(self):
651 response = test_utils.check_netconf_node_request("SPDR-SC1", "interface/XPDR1-CLIENT1-ETHERNET10G")
652 self.assertEqual(response.status_code, requests.codes.ok)
653 res = response.json()
654 input_dict = {'name': 'XPDR1-CLIENT1-ETHERNET10G',
655 'administrative-state': 'inService',
656 'supporting-circuit-pack-name': 'CP1-SFP4',
657 'type': 'org-openroadm-interfaces:ethernetCsmacd',
658 'supporting-port': 'CP1-SFP4-P1'
660 self.assertDictEqual(dict(input_dict, **res['interface'][0]),
662 self.assertDictEqual(
664 res['interface'][0]['org-openroadm-ethernet-interfaces:ethernet'])
666 def test_18_check_interface_ODU2E_CLIENT(self):
667 response = test_utils.check_netconf_node_request("SPDR-SC1", "interface/XPDR1-CLIENT1-ODU2e-SPDRA-SPDRC-10G")
668 self.assertEqual(response.status_code, requests.codes.ok)
669 res = response.json()
670 input_dict_1 = {'name': 'XPDR1-CLIENT1-ODU2e-SPDRA-SPDRC-10G',
671 'administrative-state': 'inService',
672 'supporting-circuit-pack-name': 'CP1-SFP4',
673 'supporting-interface': 'XPDR1-CLIENT1-ETHERNET10G',
674 'type': 'org-openroadm-interfaces:otnOdu',
675 'supporting-port': 'CP1-SFP4-P1'}
677 'odu-function': 'org-openroadm-otn-common-types:ODU-TTP-CTP',
678 'rate': 'org-openroadm-otn-common-types:ODU2e',
679 'monitoring-mode': 'terminated'}
681 self.assertDictEqual(dict(input_dict_1, **res['interface'][0]),
683 self.assertDictEqual(dict(input_dict_2,
684 **res['interface'][0]['org-openroadm-otn-odu-interfaces:odu']),
685 res['interface'][0]['org-openroadm-otn-odu-interfaces:odu'])
686 self.assertDictEqual(
687 {u'payload-type': u'03', u'exp-payload-type': u'03'},
688 res['interface'][0]['org-openroadm-otn-odu-interfaces:odu']['opu'])
690 def test_19_check_ODU2E_connection(self):
691 response = test_utils.check_netconf_node_request(
693 "odu-connection/XPDR1-CLIENT1-ODU2e-SPDRA-SPDRC-10G-x-XPDR1-NETWORK1-ODU2e-SPDRA-SPDRC-10G")
694 self.assertEqual(response.status_code, requests.codes.ok)
695 res = response.json()
698 'XPDR1-CLIENT1-ODU2e-SPDRA-SPDRC-10G-x-XPDR1-NETWORK1-ODU2e-SPDRA-SPDRC-10G',
699 'direction': 'bidirectional'
702 self.assertDictEqual(dict(input_dict_1, **res['odu-connection'][0]),
703 res['odu-connection'][0])
704 self.assertDictEqual({u'dst-if': u'XPDR1-NETWORK1-ODU2e-SPDRA-SPDRC-10G'},
705 res['odu-connection'][0]['destination'])
706 self.assertDictEqual({u'src-if': u'XPDR1-CLIENT1-ODU2e-SPDRA-SPDRC-10G'},
707 res['odu-connection'][0]['source'])
709 def test_20_check_interface_ODU2E_NETWORK(self):
710 response = test_utils.check_netconf_node_request("SPDR-SC1", "interface/XPDR1-NETWORK1-ODU2e-SPDRA-SPDRC-10G")
711 self.assertEqual(response.status_code, requests.codes.ok)
712 res = response.json()
713 input_dict_1 = {'name': 'XPDR1-NETWORK1-ODU2e-SPDRA-SPDRC-10G',
714 'administrative-state': 'inService',
715 'supporting-circuit-pack-name': 'CP1-CFP0',
716 'supporting-interface': 'XPDR1-NETWORK1-ODU4',
717 'type': 'org-openroadm-interfaces:otnOdu',
718 'supporting-port': 'CP1-CFP0-P1'}
720 'odu-function': 'org-openroadm-otn-common-types:ODU-CTP',
721 'rate': 'org-openroadm-otn-common-types:ODU2e',
722 'monitoring-mode': 'monitored'}
724 input_dict_3 = {'trib-port-number': 1}
726 self.assertDictEqual(dict(input_dict_1, **res['interface'][0]),
728 self.assertDictEqual(dict(input_dict_2,
729 **res['interface'][0]['org-openroadm-otn-odu-interfaces:odu']),
730 res['interface'][0]['org-openroadm-otn-odu-interfaces:odu'])
731 self.assertDictEqual(dict(input_dict_3,
732 **res['interface'][0]['org-openroadm-otn-odu-interfaces:odu'][
733 'parent-odu-allocation']),
734 res['interface'][0]['org-openroadm-otn-odu-interfaces:odu'][
735 'parent-odu-allocation'])
738 'org-openroadm-otn-odu-interfaces:odu'][
739 'parent-odu-allocation']['trib-slots'])
741 # TODO: Delete the services (OTU, ODU, LO-ODU)
742 # TODO: Delete interfaces (SPDR-A1, SPDR-C1)
744 def test_21_disconnect_SPDR_SA1(self):
745 response = test_utils.unmount_device("SPDR-SA1")
746 self.assertEqual(response.status_code, requests.codes.ok,
747 test_utils.CODE_SHOULD_BE_200)
749 def test_22_disconnect_SPDR_SC1(self):
750 response = test_utils.unmount_device("SPDR-SC1")
751 self.assertEqual(response.status_code, requests.codes.ok,
752 test_utils.CODE_SHOULD_BE_200)
755 if __name__ == "__main__":
756 unittest.main(verbosity=2)