2 ##############################################################################
3 # Copyright (c) 2017 Orange, Inc. and others. All rights reserved.
5 # All rights reserved. This program and the accompanying materials
6 # are made available under the terms of the Apache License, Version 2.0
7 # which accompanies this distribution, and is available at
8 # http://www.apache.org/licenses/LICENSE-2.0
9 ##############################################################################
22 class TransportPCEtesting(unittest.TestCase):
25 honeynode_topology = None
26 restconf_baseurl = "http://localhost:8181/restconf"
30 honeynode_topology_file = "sample_configs/honeynode-topo.xml"
31 if os.path.isfile(honeynode_topology_file):
32 with open(honeynode_topology_file, 'r') as honeynode_file:
33 cls.honeynode_topo = honeynode_file.read();
37 executable = "../karaf/target/assembly/bin/karaf"
38 with open('odl.log', 'w') as outfile:
39 cls.odl_process = subprocess.Popen(
40 ["bash", executable, "server"], stdout=outfile,
41 stdin=open(os.devnull))
44 def setUpClass(cls): # a class method called before tests in an individual class run.
50 def tearDownClass(cls):
51 for child in psutil.Process(cls.odl_process.pid).children():
52 child.send_signal(signal.SIGINT)
54 cls.odl_process.send_signal(signal.SIGINT)
55 cls.odl_process.wait()
57 def setUp(self): # instruction executed before each test method
58 print ("execution of {}".format(self.id().split(".")[-1]))
60 # def test_01_restconfAPI(self):
61 # url = ("{}/operational/network-topology:network-topology/topology/"
62 # "topology-netconf/node/controller-config".format(self.restconf_baseurl))
63 # headers = {'content-type': 'application/json'}
64 # response = requests.request("GET", url, headers=headers, auth=('admin', 'admin'))
65 # self.assertEqual(response.status_code, requests.codes.ok)
66 # res = response.json()
67 # self.assertEqual(res['node'] [0] ['netconf-node-topology:connection-status'],
71 # Load honeynode topology
72 def test_02_load_honeynode_topology(self):
73 url = ("{}/config/ietf-network:network/openroadm-topology"
74 .format(self.restconf_baseurl))
75 body = self.honeynode_topo
76 headers = {'content-type': 'application/xml',
77 "Accept": "application/json"}
78 response = requests.request(
79 "PUT", url, data=body, headers=headers,
80 auth=('admin', 'admin'))
81 self.assertEqual(response.status_code, requests.codes.ok)
84 def test_03_check_link_xpdra_roadma(self):
85 url = ("{}/config/ietf-network:network/openroadm-topology/link/"
86 "XPDRA-XPDR1-XPDR1-NETWORK1toROADMA-SRG1-SRG1-PP1-TXRX".format(self.restconf_baseurl))
87 headers = {'content-type': 'application/json'}
88 response = requests.request("GET", url, headers=headers, auth=('admin', 'admin'))
89 self.assertEqual(response.status_code, requests.codes.ok)
93 def test_04_check_link_xpdrc_roadmc(self):
94 url = ("{}/config/ietf-network:network/openroadm-topology/link/"
95 "XPDRC-XPDR1-XPDR1-NETWORK1toROADMC-SRG1-SRG1-PP1-TXRX".format(self.restconf_baseurl))
96 headers = {'content-type': 'application/json'}
97 response = requests.request("GET", url, headers=headers, auth=('admin', 'admin'))
98 self.assertEqual(response.status_code, requests.codes.ok)
102 def test_05_check_link_roadma_xpdra(self):
103 url = ("{}/config/ietf-network:network/openroadm-topology/link/"
104 "ROADMA-SRG1-SRG1-PP1-TXRXtoXPDRA-XPDR1-XPDR1-NETWORK1".format(self.restconf_baseurl))
105 headers = {'content-type': 'application/json'}
106 response = requests.request("GET", url, headers=headers, auth=('admin', 'admin'))
107 self.assertEqual(response.status_code, requests.codes.ok)
108 res = response.json()
111 def test_06_check_link_roadmc_xpdrc(self):
112 url = ("{}/config/ietf-network:network/openroadm-topology/link/"
113 "ROADMC-SRG1-SRG1-PP1-TXRXtoXPDRC-XPDR1-XPDR1-NETWORK1".format(self.restconf_baseurl))
114 headers = {'content-type': 'application/json'}
115 response = requests.request("GET", url, headers=headers, auth=('admin', 'admin'))
116 self.assertEqual(response.status_code, requests.codes.ok)
117 res = response.json()
120 # Create Service 'test' with correct parameters
121 def test_07_create_service_success(self):
122 url = ("{}/operations/org-openroadm-service:service-create"
123 .format(self.restconf_baseurl))
125 "sdnc-request-header": {
126 "request-id": "e3028bae-a90f-4ddd-a83f-cf224eba0e58",
127 "rpc-action": "service-create",
128 "request-system-id": "appname",
129 "notification-url": "http://localhost:8585/NotificationServer/notify"
131 "service-name": "test",
132 "common-id": "ASATT1234567",
133 "connection-type": "infrastructure",
135 "service-rate": "100",
137 "service-format": "Ethernet",
138 "clli": "SNJSCAMCJP8",
141 "port-device-name": "ROUTER_SNJSCAMCJP8_000000.00_00",
142 "port-type": "router",
143 "port-name": "Gigabit Ethernet_Tx.ge-5/0/0.0",
144 "port-rack": "000000.00",
148 "lgx-device-name": "LGX Panel_SNJSCAMCJP8_000000.00_00",
149 "lgx-port-name": "LGX Back.3",
150 "lgx-port-rack": "000000.00",
151 "lgx-port-shelf": "00"
156 "port-device-name": "ROUTER_SNJSCAMCJP8_000000.00_00",
157 "port-type": "router",
158 "port-name": "Gigabit Ethernet_Rx.ge-5/0/0.0",
159 "port-rack": "000000.00",
163 "lgx-device-name": "LGX Panel_SNJSCAMCJP8_000000.00_00",
164 "lgx-port-name": "LGX Back.4",
165 "lgx-port-rack": "000000.00",
166 "lgx-port-shelf": "00"
172 "service-rate": "100",
174 "service-format": "Ethernet",
175 "clli": "SNJSCAMCJT4",
178 "port-device-name": "ROUTER_SNJSCAMCJT4_000000.00_00",
179 "port-type": "router",
180 "port-name": "Gigabit Ethernet_Tx.ge-1/0/0.0",
181 "port-rack": "000000.00",
185 "lgx-device-name": "LGX Panel_SNJSCAMCJT4_000000.00_00",
186 "lgx-port-name": "LGX Back.29",
187 "lgx-port-rack": "000000.00",
188 "lgx-port-shelf": "00"
193 "port-device-name": "ROUTER_SNJSCAMCJT4_000000.00_00",
194 "port-type": "router",
195 "port-name": "Gigabit Ethernet_Rx.ge-1/0/0.0",
196 "port-rack": "000000.00",
200 "lgx-device-name": "LGX Panel_SNJSCAMCJT4_000000.00_00",
201 "lgx-port-name": "LGX Back.30",
202 "lgx-port-rack": "000000.00",
203 "lgx-port-shelf": "00"
208 "due-date": "2016-11-28T00:00:01Z",
209 "operator-contact": "pw1234"
212 headers = {'content-type': 'application/json',
213 "Accept": "application/json"}
214 response = requests.request(
215 "POST", url, data=json.dumps(data), headers=headers,
216 auth=('admin', 'admin'))
217 self.assertEqual(response.status_code, requests.codes.ok)
218 res = response.json()
219 self.assertIn('PCE calculation in progress',
220 res['output']['configuration-response-common']['response-message'])
223 # Create Service 'test' with not compliant parameter : no 'sdnc-request-header' parameter
224 def test_08_create_service_failed(self):
225 url = ("{}/operations/org-openroadm-service:service-create"
226 .format(self.restconf_baseurl))
228 "service-name": "test",
229 "common-id": "ASATT1234567",
230 "connection-type": "infrastructure",
232 "service-rate": "100",
234 "service-format": "Ethernet",
235 "clli": "SNJSCAMCJP8",
238 "port-device-name": "ROUTER_SNJSCAMCJP8_000000.00_00",
239 "port-type": "router",
240 "port-name": "Gigabit Ethernet_Tx.ge-5/0/0.0",
241 "port-rack": "000000.00",
245 "lgx-device-name": "LGX Panel_SNJSCAMCJP8_000000.00_00",
246 "lgx-port-name": "LGX Back.3",
247 "lgx-port-rack": "000000.00",
248 "lgx-port-shelf": "00"
253 "port-device-name": "ROUTER_SNJSCAMCJP8_000000.00_00",
254 "port-type": "router",
255 "port-name": "Gigabit Ethernet_Rx.ge-5/0/0.0",
256 "port-rack": "000000.00",
260 "lgx-device-name": "LGX Panel_SNJSCAMCJP8_000000.00_00",
261 "lgx-port-name": "LGX Back.4",
262 "lgx-port-rack": "000000.00",
263 "lgx-port-shelf": "00"
269 "service-rate": "100",
271 "service-format": "Ethernet",
272 "clli": "SNJSCAMCJT4",
275 "port-device-name": "ROUTER_SNJSCAMCJT4_000000.00_00",
276 "port-type": "router",
277 "port-name": "Gigabit Ethernet_Tx.ge-1/0/0.0",
278 "port-rack": "000000.00",
282 "lgx-device-name": "LGX Panel_SNJSCAMCJT4_000000.00_00",
283 "lgx-port-name": "LGX Back.29",
284 "lgx-port-rack": "000000.00",
285 "lgx-port-shelf": "00"
290 "port-device-name": "ROUTER_SNJSCAMCJT4_000000.00_00",
291 "port-type": "router",
292 "port-name": "Gigabit Ethernet_Rx.ge-1/0/0.0",
293 "port-rack": "000000.00",
297 "lgx-device-name": "LGX Panel_SNJSCAMCJT4_000000.00_00",
298 "lgx-port-name": "LGX Back.30",
299 "lgx-port-rack": "000000.00",
300 "lgx-port-shelf": "00"
305 "due-date": "2016-11-28T00:00:01Z",
306 "operator-contact": "pw1234"
309 headers = {'content-type': 'application/json',
310 "Accept": "application/json"}
311 response = requests.request(
312 "POST", url, data=json.dumps(data), headers=headers,
313 auth=('admin', 'admin'))
314 self.assertEqual(response.status_code, requests.codes.ok)
315 res = response.json()
316 self.assertIn('Service sndc-request-header is not set',
317 res['output']['configuration-response-common']['response-message'])
320 # Create Service 'test' with not compliant parameter : no 'tx-direction' for serviceAEnd
321 def test_09_create_service_failed(self):
322 url = ("{}/operations/org-openroadm-service:service-create"
323 .format(self.restconf_baseurl))
325 "sdnc-request-header": {
326 "request-id": "e3028bae-a90f-4ddd-a83f-cf224eba0e58",
327 "rpc-action": "service-create",
328 "request-system-id": "appname",
329 "notification-url": "http://localhost:8585/NotificationServer/notify"
331 "service-name": "test",
332 "common-id": "ASATT1234567",
333 "connection-type": "infrastructure",
335 "service-rate": "100",
337 "service-format": "Ethernet",
338 "clli": "SNJSCAMCJP8",
341 "port-device-name": "ROUTER_SNJSCAMCJP8_000000.00_00",
342 "port-type": "router",
343 "port-name": "Gigabit Ethernet_Rx.ge-5/0/0.0",
344 "port-rack": "000000.00",
348 "lgx-device-name": "LGX Panel_SNJSCAMCJP8_000000.00_00",
349 "lgx-port-name": "LGX Back.4",
350 "lgx-port-rack": "000000.00",
351 "lgx-port-shelf": "00"
357 "service-rate": "100",
359 "service-format": "Ethernet",
360 "clli": "SNJSCAMCJT4",
363 "port-device-name": "ROUTER_SNJSCAMCJT4_000000.00_00",
364 "port-type": "router",
365 "port-name": "Gigabit Ethernet_Tx.ge-1/0/0.0",
366 "port-rack": "000000.00",
370 "lgx-device-name": "LGX Panel_SNJSCAMCJT4_000000.00_00",
371 "lgx-port-name": "LGX Back.29",
372 "lgx-port-rack": "000000.00",
373 "lgx-port-shelf": "00"
378 "port-device-name": "ROUTER_SNJSCAMCJT4_000000.00_00",
379 "port-type": "router",
380 "port-name": "Gigabit Ethernet_Rx.ge-1/0/0.0",
381 "port-rack": "000000.00",
385 "lgx-device-name": "LGX Panel_SNJSCAMCJT4_000000.00_00",
386 "lgx-port-name": "LGX Back.30",
387 "lgx-port-rack": "000000.00",
388 "lgx-port-shelf": "00"
393 "due-date": "2016-11-28T00:00:01Z",
394 "operator-contact": "pw1234"
397 headers = {'content-type': 'application/json',
398 "Accept": "application/json"}
399 response = requests.request(
400 "POST", url, data=json.dumps(data), headers=headers,
401 auth=('admin', 'admin'))
402 self.assertEqual(response.status_code, requests.codes.ok)
403 res = response.json()
404 self.assertIn('Service TxDirection is not correctly set',
405 res['output']['configuration-response-common']['response-message'])
408 # Get 'test' service created
409 def test_10_verify_service_created(self):
410 url = ("{}/operational/org-openroadm-service:service-list/services/test"
411 .format(self.restconf_baseurl))
412 headers = {'content-type': 'application/json',
413 "Accept": "application/json"}
414 response = requests.request(
415 "GET", url, headers=headers, auth=('admin', 'admin'))
416 self.assertEqual(response.status_code, requests.codes.ok)
417 res = response.json()
419 res['services'][0]['administrative-state'],
423 # get non existing service
424 def test_11_get_non_existing_service(self):
425 url = ("{}/operational/org-openroadm-service:service-list/services/test1"
426 .format(self.restconf_baseurl))
427 headers = {'content-type': 'application/json',
428 "Accept": "application/json"}
429 response = requests.request(
430 "GET", url, headers=headers, auth=('admin', 'admin'))
431 self.assertEqual(response.status_code, 404)
434 #reconfigure 'test' to be 'test-new'
435 def test_12_reconfigure_service_test(self):
436 url = ("{}/operations/org-openroadm-service:service-reconfigure"
437 .format(self.restconf_baseurl))
439 "service-name": "test",
440 "new-service-name": "test-new",
441 "common-id": "ASATT1234567",
442 "connection-type": "infrastructure",
444 "service-rate": "100",
446 "service-format": "Ethernet",
447 "clli": "SNJSCAMCJP8",
450 "port-device-name": "ROUTER_SNJSCAMCJP8_000000.00_00",
451 "port-type": "router",
452 "port-name": "Gigabit Ethernet_Tx.ge-5/0/0.0",
453 "port-rack": "000000.00",
457 "lgx-device-name": "LGX Panel_SNJSCAMCJP8_000000.00_00",
458 "lgx-port-name": "LGX Back.3",
459 "lgx-port-rack": "000000.00",
460 "lgx-port-shelf": "00"
465 "port-device-name": "ROUTER_SNJSCAMCJP8_000000.00_00",
466 "port-type": "router",
467 "port-name": "Gigabit Ethernet_Rx.ge-5/0/0.0",
468 "port-rack": "000000.00",
472 "lgx-device-name": "LGX Panel_SNJSCAMCJP8_000000.00_00",
473 "lgx-port-name": "LGX Back.4",
474 "lgx-port-rack": "000000.00",
475 "lgx-port-shelf": "00"
481 "service-rate": "100",
483 "service-format": "Ethernet",
484 "clli": "SNJSCAMCJT4",
487 "port-device-name": "ROUTER_SNJSCAMCJT4_000000.00_00",
488 "port-type": "router",
489 "port-name": "Gigabit Ethernet_Tx.ge-1/0/0.0",
490 "port-rack": "000000.00",
494 "lgx-device-name": "LGX Panel_SNJSCAMCJT4_000000.00_00",
495 "lgx-port-name": "LGX Back.29",
496 "lgx-port-rack": "000000.00",
497 "lgx-port-shelf": "00"
502 "port-device-name": "ROUTER_SNJSCAMCJT4_000000.00_00",
503 "port-type": "router",
504 "port-name": "Gigabit Ethernet_Rx.ge-1/0/0.0",
505 "port-rack": "000000.00",
509 "lgx-device-name": "LGX Panel_SNJSCAMCJT4_000000.00_00",
510 "lgx-port-name": "LGX Back.30",
511 "lgx-port-rack": "000000.00",
512 "lgx-port-shelf": "00"
519 headers = {'content-type': 'application/json',
520 "Accept": "application/json"}
521 response = requests.request(
522 "POST", url, data=json.dumps(data), headers=headers,
523 auth=('admin', 'admin'))
524 self.assertEqual(response.status_code, requests.codes.ok)
525 res = response.json()
526 self.assertIn('Renderer service delete in progress',
527 res['output']['status-message'])
530 # get new service 'test-new'
531 def test_13_verify_service_reconfigure(self):
532 url = ("{}/operational/org-openroadm-service:service-list/services/test-new"
533 .format(self.restconf_baseurl))
534 headers = {'content-type': 'application/json',
535 "Accept": "application/json"}
536 response = requests.request(
537 "GET", url, headers=headers, auth=('admin', 'admin'))
538 res = response.json()
540 res['services'][0]['administrative-state'],
545 def test_14_delete_service_reconfigure(self):
546 url = ("{}/operations/org-openroadm-service:service-delete"
547 .format(self.restconf_baseurl))
549 "sdnc-request-header": {
550 "request-id": "e3028bae-a90f-4ddd-a83f-cf224eba0e58",
551 "rpc-action": "service-delete",
552 "request-system-id": "appname",
553 "notification-url": "http://localhost:8585/NotificationServer/notify"
555 "service-delete-req-info": {
556 "service-name": "test-new",
557 "due-date": "2016-11-28T00:00:01Z",
558 "tail-retention": "no"
562 headers = {'content-type': 'application/json'}
563 response = requests.request(
564 "POST", url, data=json.dumps(data), headers=headers,
565 auth=('admin', 'admin'))
566 self.assertEqual(response.status_code, requests.codes.ok)
567 res = response.json()
568 self.assertIn('Renderer service delete in progress',
569 res['output']['configuration-response-common']['response-message'])
572 # Verify 'test' service deleted
573 def test_15_verify_service_reconfigure_deleted(self):
574 url = ("{}/operational/org-openroadm-service:service-list/services/test-new"
575 .format(self.restconf_baseurl))
576 headers = {'content-type': 'application/json',
577 "Accept": "application/json"}
578 response = requests.request(
579 "GET", url, headers=headers, auth=('admin', 'admin'))
580 self.assertEqual(response.status_code, 404)
583 # Create Temp Service 'ASATT1234567' with correct parameters
584 def test_16_create_temp_service_success(self):
585 url = ("{}/operations/org-openroadm-service:temp-service-create"
586 .format(self.restconf_baseurl))
589 "sdnc-request-header": {
590 "request-id": "e3028bae-a90f-4ddd-a83f-cf224eba0e58",
591 "rpc-action": "temp-service-create",
592 "request-system-id": "appname",
593 "notification-url": "http://localhost:8585/NotificationServer/notify"
595 "common-id": "ASATT1234567",
596 "connection-type": "infrastructure",
598 "service-rate": "100",
600 "service-format": "Ethernet",
601 "clli": "SNJSCAMCJP8",
604 "port-device-name": "ROUTER_SNJSCAMCJP8_000000.00_00",
605 "port-type": "router",
606 "port-name": "Gigabit Ethernet_Tx.ge-5/0/0.0",
607 "port-rack": "000000.00",
611 "lgx-device-name": "LGX Panel_SNJSCAMCJP8_000000.00_00",
612 "lgx-port-name": "LGX Back.3",
613 "lgx-port-rack": "000000.00",
614 "lgx-port-shelf": "00"
619 "port-device-name": "ROUTER_SNJSCAMCJP8_000000.00_00",
620 "port-type": "router",
621 "port-name": "Gigabit Ethernet_Rx.ge-5/0/0.0",
622 "port-rack": "000000.00",
626 "lgx-device-name": "LGX Panel_SNJSCAMCJP8_000000.00_00",
627 "lgx-port-name": "LGX Back.4",
628 "lgx-port-rack": "000000.00",
629 "lgx-port-shelf": "00"
635 "service-rate": "100",
637 "service-format": "Ethernet",
638 "clli": "SNJSCAMCJT4",
641 "port-device-name": "ROUTER_SNJSCAMCJT4_000000.00_00",
642 "port-type": "router",
643 "port-name": "Gigabit Ethernet_Tx.ge-1/0/0.0",
644 "port-rack": "000000.00",
648 "lgx-device-name": "LGX Panel_SNJSCAMCJT4_000000.00_00",
649 "lgx-port-name": "LGX Back.29",
650 "lgx-port-rack": "000000.00",
651 "lgx-port-shelf": "00"
656 "port-device-name": "ROUTER_SNJSCAMCJT4_000000.00_00",
657 "port-type": "router",
658 "port-name": "Gigabit Ethernet_Rx.ge-1/0/0.0",
659 "port-rack": "000000.00",
663 "lgx-device-name": "LGX Panel_SNJSCAMCJT4_000000.00_00",
664 "lgx-port-name": "LGX Back.30",
665 "lgx-port-rack": "000000.00",
666 "lgx-port-shelf": "00"
671 "due-date": "2016-11-28T00:00:01Z",
672 "operator-contact": "pw1234"
675 headers = {'content-type': 'application/json',
676 "Accept": "application/json"}
677 response = requests.request(
678 "POST", url, data=json.dumps(data), headers=headers,
679 auth=('admin', 'admin'))
680 self.assertEqual(response.status_code, requests.codes.ok)
681 res = response.json()
682 self.assertIn('PCE calculation in progress',
683 res['output']['configuration-response-common']['response-message'])
687 # Create Temp Service not compliant with no common-id
688 def test_17_create_temp_service_failed(self):
689 url = ("{}/operations/org-openroadm-service:temp-service-create"
690 .format(self.restconf_baseurl))
693 "sdnc-request-header": {
694 "request-id": "e3028bae-a90f-4ddd-a83f-cf224eba0e58",
695 "rpc-action": "temp-service-create",
696 "request-system-id": "appname",
697 "notification-url": "http://localhost:8585/NotificationServer/notify"
699 "connection-type": "infrastructure",
701 "service-rate": "100",
703 "service-format": "Ethernet",
704 "clli": "SNJSCAMCJP8",
707 "port-device-name": "ROUTER_SNJSCAMCJP8_000000.00_00",
708 "port-type": "router",
709 "port-name": "Gigabit Ethernet_Tx.ge-5/0/0.0",
710 "port-rack": "000000.00",
714 "lgx-device-name": "LGX Panel_SNJSCAMCJP8_000000.00_00",
715 "lgx-port-name": "LGX Back.3",
716 "lgx-port-rack": "000000.00",
717 "lgx-port-shelf": "00"
722 "port-device-name": "ROUTER_SNJSCAMCJP8_000000.00_00",
723 "port-type": "router",
724 "port-name": "Gigabit Ethernet_Rx.ge-5/0/0.0",
725 "port-rack": "000000.00",
729 "lgx-device-name": "LGX Panel_SNJSCAMCJP8_000000.00_00",
730 "lgx-port-name": "LGX Back.4",
731 "lgx-port-rack": "000000.00",
732 "lgx-port-shelf": "00"
738 "service-rate": "100",
740 "service-format": "Ethernet",
741 "clli": "SNJSCAMCJT4",
744 "port-device-name": "ROUTER_SNJSCAMCJT4_000000.00_00",
745 "port-type": "router",
746 "port-name": "Gigabit Ethernet_Tx.ge-1/0/0.0",
747 "port-rack": "000000.00",
751 "lgx-device-name": "LGX Panel_SNJSCAMCJT4_000000.00_00",
752 "lgx-port-name": "LGX Back.29",
753 "lgx-port-rack": "000000.00",
754 "lgx-port-shelf": "00"
759 "port-device-name": "ROUTER_SNJSCAMCJT4_000000.00_00",
760 "port-type": "router",
761 "port-name": "Gigabit Ethernet_Rx.ge-1/0/0.0",
762 "port-rack": "000000.00",
766 "lgx-device-name": "LGX Panel_SNJSCAMCJT4_000000.00_00",
767 "lgx-port-name": "LGX Back.30",
768 "lgx-port-rack": "000000.00",
769 "lgx-port-shelf": "00"
774 "due-date": "2016-11-28T00:00:01Z",
775 "operator-contact": "pw1234"
778 headers = {'content-type': 'application/json',
779 "Accept": "application/json"}
780 response = requests.request(
781 "POST", url, data=json.dumps(data), headers=headers,
782 auth=('admin', 'admin'))
783 self.assertEqual(response.status_code, requests.codes.ok)
784 res = response.json()
785 self.assertIn('Service Name (common-id for Temp service) is not set',
786 res['output']['configuration-response-common']['response-message'])
789 # Get 'ASATT1234567' temp service created
790 def test_18_verify_temp_service_created(self):
791 url = ("{}/operational/org-openroadm-service:temp-service-list/services/ASATT1234567"
792 .format(self.restconf_baseurl))
793 headers = {'content-type': 'application/json',
794 "Accept": "application/json"}
795 response = requests.request(
796 "GET", url, headers=headers, auth=('admin', 'admin'))
797 self.assertEqual(response.status_code, requests.codes.ok)
798 res = response.json()
800 res['services'][0]['administrative-state'],
804 # get non existing service
805 def test_19_get_temp_service_non_existed(self):
806 url = ("{}/operational/org-openroadm-service:temp-service-list/services/test1"
807 .format(self.restconf_baseurl))
808 headers = {'content-type': 'application/json',
809 "Accept": "application/json"}
810 response = requests.request(
811 "GET", url, headers=headers, auth=('admin', 'admin'))
812 self.assertEqual(response.status_code, 404)
815 # Delete temp service
816 def test_20_delete_temp_service_created(self):
817 url = ("{}/operations/org-openroadm-service:temp-service-delete"
818 .format(self.restconf_baseurl))
820 "common-id": "ASATT1234567"
823 headers = {'content-type': 'application/json'}
824 response = requests.request(
825 "POST", url, data=json.dumps(data), headers=headers,
826 auth=('admin', 'admin'))
827 self.assertEqual(response.status_code, requests.codes.ok)
828 res = response.json()
829 self.assertIn('Renderer service delete in progress',
830 res['output']['configuration-response-common']['response-message'])
833 # Verify 'test' service deleted
834 def test_21_verify_temp_service_deleted(self):
835 url = ("{}/operational/org-openroadm-service:service-list/services/ASATT1234567"
836 .format(self.restconf_baseurl))
837 headers = {'content-type': 'application/json',
838 "Accept": "application/json"}
839 response = requests.request(
840 "GET", url, headers=headers, auth=('admin', 'admin'))
841 self.assertEqual(response.status_code, 404)
845 if __name__ == "__main__":
846 unittest.main(verbosity=2)