Update vnflcm gitreview file
[vfc/gvnfm/vnflcm.git] / lcm / lcm / pub / aaiapi / aai.py
1 # Copyright 2017 ZTE Corporation.\r
2 #\r
3 # Licensed under the Apache License, Version 2.0 (the "License");\r
4 # you may not use this file except in compliance with the License.\r
5 # You may obtain a copy of the License at\r
6 #\r
7 #         http://www.apache.org/licenses/LICENSE-2.0\r
8 #\r
9 # Unless required by applicable law or agreed to in writing, software\r
10 # distributed under the License is distributed on an "AS IS" BASIS,\r
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
12 # See the License for the specific language governing permissions and\r
13 # limitations under the License.\r
14 import json\r
15 import logging\r
16 \r
17 from lcm.pub.config.config import AAI_BASE_URL, AAI_USER, AAI_PASSWORD\r
18 from lcm.pub.exceptions import NFLCMException\r
19 from lcm.pub.utils.restcall import call_req_aai, rest_no_auth\r
20 \r
21 logger = logging.getLogger(__name__)\r
22 \r
23 def call_aai(resource, method, data=''):\r
24     return call_req_aai(AAI_BASE_URL, AAI_USER, AAI_PASSWORD, rest_no_auth, resource, method, data)\r
25 \r
26 def create_ns(global_customer_id, service_type, service_instance_id, data):\r
27     resource = "/business/customers/customer/%s/service-subscriptions/service-subscription/" \\r
28                "%s/service-instances/service-instance/%s" % \\r
29                (global_customer_id, service_type, service_instance_id)\r
30     ret = call_aai(resource, "PUT", data)\r
31     # ret = call_req_aai(AAI_BASE_URL, AAI_USER, AAI_PASSWORD, rest_no_auth, resource, "PUT", data)\r
32     if ret[0] != 0:\r
33         logger.error("Status code is %s, detail is %s.", ret[2], ret[1])\r
34         raise NFLCMException("Ns instance creation exception in AAI")\r
35     return json.JSONDecoder().decode(ret[1])\r
36 \r
37 def delete_ns(global_customer_id, service_type, service_instance_id, data):\r
38     resource = "/business/customers/customer/%s/service-subscriptions/service-subscription/" \\r
39                "%s/service-instances/service-instance/%s" % \\r
40                (global_customer_id, service_type, service_instance_id)\r
41     ret = call_aai(resource, "DELETE", data)\r
42     # ret = call_req_aai(AAI_BASE_URL, AAI_USER, AAI_PASSWORD, rest_no_auth, resource, "DELETE", data)\r
43     if ret[0] != 0:\r
44         logger.error("Status code is %s, detail is %s.", ret[2], ret[1])\r
45         raise NFLCMException("Ns instance delete exception in AAI")\r
46     return json.JSONDecoder().decode(ret[1])\r
47 \r
48 def query_ns(global_customer_id, service_type, service_instance_id, data):\r
49     resource = "/business/customers/customer/%s/service-subscriptions/service-subscription/" \\r
50                "%s/service-instances/service-instance/%s" % \\r
51                (global_customer_id, service_type, service_instance_id)\r
52     ret = call_aai(resource, "GET", data)\r
53     # ret = call_req_aai(AAI_BASE_URL, AAI_USER, AAI_PASSWORD, rest_no_auth, resource, "GET", data)\r
54     if ret[0] != 0:\r
55         logger.error("Status code is %s, detail is %s.", ret[2], ret[1])\r
56         raise NFLCMException("Ns instance query exception in AAI")\r
57     return json.JSONDecoder().decode(ret[1])\r
58 \r
59 \r
60 def create_vnf(vnf_id, data):\r
61     resource = "/network/generic-vnfs/generic-vnf/%s" % vnf_id\r
62     ret = call_aai(resource, "PUT", data)\r
63     # ret = call_req_aai(AAI_BASE_URL, AAI_USER, AAI_PASSWORD, rest_no_auth, resource, "PUT", data)\r
64     if ret[0] != 0:\r
65         logger.error("Status code is %s, detail is %s.", ret[2], ret[1])\r
66         raise NFLCMException("Vnf instance creation exception in AAI")\r
67     return json.JSONDecoder().decode(ret[1])\r
68 \r
69 def delete_vnf(vnf_id, data=[]):\r
70     resource = "/network/generic-vnfs/generic-vnf/%s" % vnf_id\r
71     ret = call_aai(resource, "DELETE", data)\r
72     # ret = call_req_aai(AAI_BASE_URL, AAI_USER, AAI_PASSWORD, rest_no_auth, resource, "DELETE", data)\r
73     if ret[0] != 0:\r
74         logger.error("Status code is %s, detail is %s.", ret[2], ret[1])\r
75         raise NFLCMException("Vnf instance delete exception in AAI")\r
76     return json.JSONDecoder().decode(ret[1])\r
77 \r
78 def query_vnf(vnf_id, data):\r
79     resource = "/network/generic-vnfs/generic-vnf/%s" % vnf_id\r
80     ret = call_aai(resource, "GET", data)\r
81     # ret = call_req_aai(AAI_BASE_URL, AAI_USER, AAI_PASSWORD, rest_no_auth, resource, "GET", data)\r
82     if ret[0] != 0:\r
83         logger.error("Status code is %s, detail is %s.", ret[2], ret[1])\r
84         raise NFLCMException("Vnf instance query exception in AAI")\r
85     return json.JSONDecoder().decode(ret[1])\r
86 \r
87 \r
88 def create_vserver(cloud_owner, cloud_region_id, tenant_id, vserver_id, data):\r
89     resource = "/cloud-infrastructure/cloud-regions/cloud-region/%s/" \\r
90                "%s/tenants/tenant/%s/vservers/vserver/%s" % \\r
91                (cloud_owner, cloud_region_id, tenant_id, vserver_id)\r
92     ret = call_aai(resource, "PUT", data)\r
93     # ret = call_req_aai(AAI_BASE_URL, AAI_USER, AAI_PASSWORD, rest_no_auth, resource, "PUT", data)\r
94     if ret[0] != 0:\r
95         logger.error("Status code is %s, detail is %s.", ret[2], ret[1])\r
96         raise NFLCMException("Vserver creation exception in AAI")\r
97     return json.JSONDecoder().decode(ret[1])\r
98 \r
99 def delete_vserver(cloud_owner, cloud_region_id, tenant_id, vserver_id, data):\r
100     resource = "/cloud-infrastructure/cloud-regions/cloud-region/%s/" \\r
101                "%s/tenants/tenant/%s/vservers/vserver/%s" % \\r
102                (cloud_owner, cloud_region_id, tenant_id, vserver_id)\r
103     ret = call_aai(resource, "DELETE", data)\r
104     # ret = call_req_aai(AAI_BASE_URL, AAI_USER, AAI_PASSWORD, rest_no_auth, resource, "DELETE", data)\r
105     if ret[0] != 0:\r
106         logger.error("Status code is %s, detail is %s.", ret[2], ret[1])\r
107         raise NFLCMException("Vserver delete exception in AAI")\r
108     return json.JSONDecoder().decode(ret[1])\r
109 \r
110 def query_vserver(cloud_owner, cloud_region_id, tenant_id, vserver_id, data):\r
111     resource = "/cloud-infrastructure/cloud-regions/cloud-region/%s/" \\r
112                "%s/tenants/tenant/%s/vservers/vserver/%s" % \\r
113                (cloud_owner, cloud_region_id, tenant_id, vserver_id)\r
114     ret = call_aai(resource, "GET", data)\r
115     # ret = call_req_aai(AAI_BASE_URL, AAI_USER, AAI_PASSWORD, rest_no_auth, resource, "GET", data)\r
116     if ret[0] != 0:\r
117         logger.error("Status code is %s, detail is %s.", ret[2], ret[1])\r
118         raise NFLCMException("Vserver query exception in AAI")\r
119     return json.JSONDecoder().decode(ret[1])\r
120 \r
121 \r
122 def put_vserver_relationship(cloud_owner, cloud_region_id, tenant_id, vserver_id, data):\r
123     resource = "/cloud-infrastructure/cloud-regions/cloud-region/%s/" \\r
124                "%s/tenants/tenant/%s/vservers/vserver/%s/relationship-list/relationship" % \\r
125                (cloud_owner, cloud_region_id, tenant_id, vserver_id)\r
126     ret = call_aai(resource, "PUT", data)\r
127     # ret = call_req_aai(AAI_BASE_URL, AAI_USER, AAI_PASSWORD, rest_no_auth, resource, "PUT", data)\r
128     if ret[0] != 0:\r
129         logger.error("Status code is %s, detail is %s.", ret[2], ret[1])\r
130         raise NFLCMException("Put or update vserver relationship exception in AAI")\r
131     return json.JSONDecoder().decode(ret[1])\r
132 \r
133 def delete_vserver_relationship(cloud_owner, cloud_region_id, tenant_id, vserver_id, data):\r
134     resource = "/cloud-infrastructure/cloud-regions/cloud-region/%s/" \\r
135                "%s/tenants/tenant/%s/vservers/vserver/%s/relationship-list/relationship" % \\r
136                (cloud_owner, cloud_region_id, tenant_id, vserver_id)\r
137     ret = call_aai(resource, "DELETE", data)\r
138     # ret = call_req_aai(AAI_BASE_URL, AAI_USER, AAI_PASSWORD, rest_no_auth, resource, "DELETE", data)\r
139     if ret[0] != 0:\r
140         logger.error("Status code is %s, detail is %s.", ret[2], ret[1])\r
141         raise NFLCMException("Delete vserver relationship exception in AAI")\r
142     return json.JSONDecoder().decode(ret[1])\r
143 \r
144 \r
145 def put_vnf_relationship(vnf_id, data):\r
146     resource = "/network/generic-vnfs/generic-vnf/%s/relationship-list/relationship" % vnf_id\r
147     ret = call_aai(resource, "PUT", data)\r
148     # ret = call_req_aai(AAI_BASE_URL, AAI_USER, AAI_PASSWORD, rest_no_auth, resource, "PUT", data)\r
149     if ret[0] != 0:\r
150         logger.error("Status code is %s, detail is %s.", ret[2], ret[1])\r
151         raise NFLCMException("Put or update vnf instance relationship exception in AAI")\r
152     return json.JSONDecoder().decode(ret[1])\r
153 \r
154 def delete_vnf_relationship(vnf_id, data):\r
155     resource = "/network/generic-vnfs/generic-vnf/%s/relationship-list/relationship" % vnf_id\r
156     ret = call_aai(resource, "DELETE", data)\r
157     # ret = call_req_aai(AAI_BASE_URL, AAI_USER, AAI_PASSWORD, rest_no_auth, resource, "DELETE", data)\r
158     if ret[0] != 0:\r
159         logger.error("Status code is %s, detail is %s.", ret[2], ret[1])\r
160         raise NFLCMException("Delete vnf instance relationship exception in AAI")\r
161     return json.JSONDecoder().decode(ret[1])\r
162 \r
163 \r
164 def put_ns_relationship(global_customer_id, service_type, service_instance_id, data):\r
165     resource = "/business/customers/customer/%s/service-subscriptions/service-subscription/" \\r
166                "%s/service-instances/service-instance/%s/relationship-list/relationship" % \\r
167                (global_customer_id, service_type, service_instance_id)\r
168     ret = call_aai(resource, "PUT", data)\r
169     # ret = call_req_aai(AAI_BASE_URL, AAI_USER, AAI_PASSWORD, rest_no_auth, resource, "PUT", data)\r
170     if ret[0] != 0:\r
171         logger.error("Status code is %s, detail is %s.", ret[2], ret[1])\r
172         raise NFLCMException("Put or update ns instance relationship exception in AAI")\r
173     return json.JSONDecoder().decode(ret[1])\r
174 \r
175 def delete_ns_relationship(global_customer_id, service_type, service_instance_id, data):\r
176     resource = "/business/customers/customer/%s/service-subscriptions/service-subscription/" \\r
177                "%s/service-instances/service-instance/%s/relationship-list/relationship" % \\r
178                (global_customer_id, service_type, service_instance_id)\r
179     ret = call_aai(resource, "DELETE", data)\r
180     # ret = call_req_aai(AAI_BASE_URL, AAI_USER, AAI_PASSWORD, rest_no_auth, resource, "DELETE", data)\r
181     if ret[0] != 0:\r
182         logger.error("Status code is %s, detail is %s.", ret[2], ret[1])\r
183         raise NFLCMException("Delete ns instance relationship exception in AAI")\r
184     return json.JSONDecoder().decode(ret[1])\r