blob: a0fe4c79f019097952e923720d415fb1dce334d0 [file] [log] [blame]
Carmelo Casconeb34d8e12020-09-28 16:16:59 -07001#! /usr/bin/env python3
Andrea Campanella6d774232018-12-21 12:18:21 +01002import sys
3import tapiHelper
Boyuan Yan6b5d4fd2019-02-25 12:16:09 -08004import json
Andrea Campanella6d774232018-12-21 12:18:21 +01005
6if len(sys.argv) < 4:
Carmelo Casconeb34d8e12020-09-28 16:16:59 -07007 print("usage: execute-tapi-post-call <onos-node> <context> <empty> [uuid].")
8 print("\t- If <empty> is \"empty\", it measn that it should be no devices, links or ports")
9 print("\t- Uuid is optional and defaults to empty")
10 print("\t- For example:\n\t\t- line-side connectivity creation: %s\n\t\t- client-side connectivity creation: %s" % \
11 ("python3 execute-tapi-post-call.py 127.0.0.1 tapi-connectivity:create-connectivity-service line-side",
12 "python3 execute-tapi-post-call.py 127.0.0.1 tapi-connectivity:create-connectivity-service client-side"))
Andrea Campanella6d774232018-12-21 12:18:21 +010013 sys.exit(1)
14
15node = sys.argv[1]
16context = sys.argv[2]
17empty = sys.argv[3]
18
19if len(sys.argv) == 4:
20 uuid = ""
21else:
22 uuid = sys.argv[4]
Boyuan Yan41036782019-02-24 16:28:01 -080023# request example:
Carmelo Casconeb34d8e12020-09-28 16:16:59 -070024# python3 execute-tapi-post-call.py localhost tapi-common:get-service-interface-point-list empty
Andrea Campanella6d774232018-12-21 12:18:21 +010025if "get-connectivity-service-list" in context:
26 connectivity_request = 'http://' + node + ':8181/onos/restconf/operations/' + context
27 tapi_connection = tapiHelper.get_connection(connectivity_request, uuid)
28 tapi_connection_json = tapi_connection.json()
Carmelo Casconeb34d8e12020-09-28 16:16:59 -070029 print(tapi_connection_json)
Andrea Campanella6d774232018-12-21 12:18:21 +010030 if not tapi_connection_json["tapi-connectivity:output"] and empty != "empty":
Carmelo Casconeb34d8e12020-09-28 16:16:59 -070031 print("No connection was established")
Boyuan Yan1c27bc72019-02-15 19:22:19 +000032 sys.exit(0)
33 if empty == "empty":
34 if not tapi_connection_json["tapi-connectivity:output"]:
35 sys.exit(0)
36 else:
Carmelo Casconeb34d8e12020-09-28 16:16:59 -070037 print("There exist some connectivities!!!")
Boyuan Yan1c27bc72019-02-15 19:22:19 +000038 sys.exit(1)
Boyuan Yan528fdba2019-02-15 12:24:43 -080039 if uuid == "":
40 # verify empty connection
Carmelo Casconeb34d8e12020-09-28 16:16:59 -070041 print(tapi_connection_json)
Boyuan Yan528fdba2019-02-15 12:24:43 -080042 elif uuid != "":
43 # verify correct connection
44 servs = tapi_connection_json["tapi-connectivity:output"]["service"]
45 for s in range(len(servs)):
46 if servs[s]['uuid'] == uuid:
Carmelo Casconeb34d8e12020-09-28 16:16:59 -070047 print("Find service with uuid %s" % uuid)
48 print(servs[s])
Boyuan Yan528fdba2019-02-15 12:24:43 -080049 sys.exit(0)
50 else:
Carmelo Casconeb34d8e12020-09-28 16:16:59 -070051 print("Invalid input for 3rd and 4th parameters.")
Boyuan Yan528fdba2019-02-15 12:24:43 -080052 sys.exit(1)
Andrea Campanella6d774232018-12-21 12:18:21 +010053 sys.exit(0)
54
Boyuan Yan41036782019-02-24 16:28:01 -080055# test succeeds by using cmd:
Carmelo Casconeb34d8e12020-09-28 16:16:59 -070056# python3 execute-tapi-post-call.py 127.0.0.1 tapi-connectivity:create-connectivity-service line-side
57# python3 execute-tapi-post-call.py 127.0.0.1 tapi-connectivity:create-connectivity-service client-side
Andrea Campanella6d774232018-12-21 12:18:21 +010058if "create-connectivity-service" in context:
59 context_request = 'http://' + node + ':8181/onos/restconf/data/tapi-common:context'
60 connectivity_request = 'http://' + node + ':8181/onos/restconf/operations/' + context
Boyuan Yan41036782019-02-24 16:28:01 -080061 if empty == "line-side":
62 tapi_connection = tapiHelper.create_line_connection(context_request, connectivity_request)
63 elif empty == "client-side":
Boyuan Yan6b5d4fd2019-02-25 12:16:09 -080064 tapi_connection = tapiHelper.create_client_connection(context_request, connectivity_request)
Boyuan Yan41036782019-02-24 16:28:01 -080065 else:
66 raise NotImplementedError("Not Implementation for option %s." % empty)
Carmelo Casconeb34d8e12020-09-28 16:16:59 -070067 print("\nThe request context is:\t%s." % context)
68 print("\nThe return message of the request is:\n\t\t%s " % json.dumps(tapi_connection.json()))
Andrea Campanella6d774232018-12-21 12:18:21 +010069 sys.exit(0)
70
71sys.exit(1)