1 # Copyright 2017 ZTE Corporation.
\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
7 # http://www.apache.org/licenses/LICENSE-2.0
\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
18 from lcm.pub.config.config import AAI_BASE_URL, AAI_USER, AAI_PASSWORD
\r
19 from lcm.pub.exceptions import NFLCMException
\r
20 from lcm.pub.utils.restcall import call_req_aai, rest_no_auth
\r
22 logger = logging.getLogger(__name__)
\r
24 def call_aai(resource, method, data=''):
\r
25 return call_req_aai(AAI_BASE_URL, AAI_USER, AAI_PASSWORD, rest_no_auth, resource, method, data)
\r
27 def create_ns(global_customer_id, service_type, service_instance_id, data):
\r
28 resource = "/business/customers/customer/%s/service-subscriptions/service-subscription/" \
\r
29 "%s/service-instances/service-instance/%s" % \
\r
30 (global_customer_id, service_type, service_instance_id)
\r
31 ret = call_aai(resource, "PUT", data)
\r
32 # ret = call_req_aai(AAI_BASE_URL, AAI_USER, AAI_PASSWORD, rest_no_auth, resource, "PUT", data)
\r
34 logger.error("Status code is %s, detail is %s.", ret[2], ret[1])
\r
35 raise NFLCMException("Ns instance creation exception in AAI")
\r
36 return json.JSONDecoder().decode(ret[1])
\r
38 def delete_ns(global_customer_id, service_type, service_instance_id, data):
\r
39 resource = "/business/customers/customer/%s/service-subscriptions/service-subscription/" \
\r
40 "%s/service-instances/service-instance/%s" % \
\r
41 (global_customer_id, service_type, service_instance_id)
\r
42 ret = call_aai(resource, "DELETE", data)
\r
43 # ret = call_req_aai(AAI_BASE_URL, AAI_USER, AAI_PASSWORD, rest_no_auth, resource, "DELETE", data)
\r
45 logger.error("Status code is %s, detail is %s.", ret[2], ret[1])
\r
46 raise NFLCMException("Ns instance delete exception in AAI")
\r
47 return json.JSONDecoder().decode(ret[1])
\r
49 def query_ns(global_customer_id, service_type, service_instance_id, data):
\r
50 resource = "/business/customers/customer/%s/service-subscriptions/service-subscription/" \
\r
51 "%s/service-instances/service-instance/%s" % \
\r
52 (global_customer_id, service_type, service_instance_id)
\r
53 ret = call_aai(resource, "GET", data)
\r
54 # ret = call_req_aai(AAI_BASE_URL, AAI_USER, AAI_PASSWORD, rest_no_auth, resource, "GET", data)
\r
56 logger.error("Status code is %s, detail is %s.", ret[2], ret[1])
\r
57 raise NFLCMException("Ns instance query exception in AAI")
\r
58 return json.JSONDecoder().decode(ret[1])
\r
61 def create_vnf(vnf_id, data):
\r
62 resource = "/network/generic-vnfs/generic-vnf/%s" % vnf_id
\r
63 ret = call_aai(resource, "PUT", data)
\r
64 # ret = call_req_aai(AAI_BASE_URL, AAI_USER, AAI_PASSWORD, rest_no_auth, resource, "PUT", data)
\r
66 logger.error("Status code is %s, detail is %s.", ret[2], ret[1])
\r
67 raise NFLCMException("Vnf instance creation exception in AAI")
\r
68 return json.JSONDecoder().decode(ret[1])
\r
70 def delete_vnf(vnf_id, data=[]):
\r
71 resource = "/network/generic-vnfs/generic-vnf/%s" % vnf_id
\r
72 ret = call_aai(resource, "DELETE", data)
\r
73 # ret = call_req_aai(AAI_BASE_URL, AAI_USER, AAI_PASSWORD, rest_no_auth, resource, "DELETE", data)
\r
75 logger.error("Status code is %s, detail is %s.", ret[2], ret[1])
\r
76 raise NFLCMException("Vnf instance delete exception in AAI")
\r
77 return json.JSONDecoder().decode(ret[1])
\r
79 def query_vnf(vnf_id, data):
\r
80 resource = "/network/generic-vnfs/generic-vnf/%s" % vnf_id
\r
81 ret = call_aai(resource, "GET", data)
\r
82 # ret = call_req_aai(AAI_BASE_URL, AAI_USER, AAI_PASSWORD, rest_no_auth, resource, "GET", data)
\r
84 logger.error("Status code is %s, detail is %s.", ret[2], ret[1])
\r
85 raise NFLCMException("Vnf instance query exception in AAI")
\r
86 return json.JSONDecoder().decode(ret[1])
\r
89 def create_vserver(cloud_owner, cloud_region_id, tenant_id, vserver_id, data):
\r
90 resource = "/cloud-infrastructure/cloud-regions/cloud-region/%s/" \
\r
91 "%s/tenants/tenant/%s/vservers/vserver/%s" % \
\r
92 (cloud_owner, cloud_region_id, tenant_id, vserver_id)
\r
93 ret = call_aai(resource, "PUT", data)
\r
94 # ret = call_req_aai(AAI_BASE_URL, AAI_USER, AAI_PASSWORD, rest_no_auth, resource, "PUT", data)
\r
96 logger.error("Status code is %s, detail is %s.", ret[2], ret[1])
\r
97 raise NFLCMException("Vserver creation exception in AAI")
\r
98 return json.JSONDecoder().decode(ret[1])
\r
100 def delete_vserver(cloud_owner, cloud_region_id, tenant_id, vserver_id, data):
\r
101 resource = "/cloud-infrastructure/cloud-regions/cloud-region/%s/" \
\r
102 "%s/tenants/tenant/%s/vservers/vserver/%s" % \
\r
103 (cloud_owner, cloud_region_id, tenant_id, vserver_id)
\r
104 ret = call_aai(resource, "DELETE", data)
\r
105 # ret = call_req_aai(AAI_BASE_URL, AAI_USER, AAI_PASSWORD, rest_no_auth, resource, "DELETE", data)
\r
107 logger.error("Status code is %s, detail is %s.", ret[2], ret[1])
\r
108 raise NFLCMException("Vserver delete exception in AAI")
\r
109 return json.JSONDecoder().decode(ret[1])
\r
111 def query_vserver(cloud_owner, cloud_region_id, tenant_id, vserver_id, data):
\r
112 resource = "/cloud-infrastructure/cloud-regions/cloud-region/%s/" \
\r
113 "%s/tenants/tenant/%s/vservers/vserver/%s" % \
\r
114 (cloud_owner, cloud_region_id, tenant_id, vserver_id)
\r
115 ret = call_aai(resource, "GET", data)
\r
116 # ret = call_req_aai(AAI_BASE_URL, AAI_USER, AAI_PASSWORD, rest_no_auth, resource, "GET", data)
\r
118 logger.error("Status code is %s, detail is %s.", ret[2], ret[1])
\r
119 raise NFLCMException("Vserver query exception in AAI")
\r
120 return json.JSONDecoder().decode(ret[1])
\r
123 def put_vserver_relationship(cloud_owner, cloud_region_id, tenant_id, vserver_id, data):
\r
124 resource = "/cloud-infrastructure/cloud-regions/cloud-region/%s/" \
\r
125 "%s/tenants/tenant/%s/vservers/vserver/%s/relationship-list/relationship" % \
\r
126 (cloud_owner, cloud_region_id, tenant_id, vserver_id)
\r
127 ret = call_aai(resource, "PUT", data)
\r
128 # ret = call_req_aai(AAI_BASE_URL, AAI_USER, AAI_PASSWORD, rest_no_auth, resource, "PUT", data)
\r
130 logger.error("Status code is %s, detail is %s.", ret[2], ret[1])
\r
131 raise NFLCMException("Put or update vserver relationship exception in AAI")
\r
132 return json.JSONDecoder().decode(ret[1])
\r
134 def delete_vserver_relationship(cloud_owner, cloud_region_id, tenant_id, vserver_id, data):
\r
135 resource = "/cloud-infrastructure/cloud-regions/cloud-region/%s/" \
\r
136 "%s/tenants/tenant/%s/vservers/vserver/%s/relationship-list/relationship" % \
\r
137 (cloud_owner, cloud_region_id, tenant_id, vserver_id)
\r
138 ret = call_aai(resource, "DELETE", data)
\r
139 # ret = call_req_aai(AAI_BASE_URL, AAI_USER, AAI_PASSWORD, rest_no_auth, resource, "DELETE", data)
\r
141 logger.error("Status code is %s, detail is %s.", ret[2], ret[1])
\r
142 raise NFLCMException("Delete vserver relationship exception in AAI")
\r
143 return json.JSONDecoder().decode(ret[1])
\r
146 def put_vnf_relationship(vnf_id, data):
\r
147 resource = "/network/generic-vnfs/generic-vnf/%s/relationship-list/relationship" % vnf_id
\r
148 ret = call_aai(resource, "PUT", data)
\r
149 # ret = call_req_aai(AAI_BASE_URL, AAI_USER, AAI_PASSWORD, rest_no_auth, resource, "PUT", data)
\r
151 logger.error("Status code is %s, detail is %s.", ret[2], ret[1])
\r
152 raise NFLCMException("Put or update vnf instance relationship exception in AAI")
\r
153 return json.JSONDecoder().decode(ret[1])
\r
155 def delete_vnf_relationship(vnf_id, data):
\r
156 resource = "/network/generic-vnfs/generic-vnf/%s/relationship-list/relationship" % vnf_id
\r
157 ret = call_aai(resource, "DELETE", data)
\r
158 # ret = call_req_aai(AAI_BASE_URL, AAI_USER, AAI_PASSWORD, rest_no_auth, resource, "DELETE", data)
\r
160 logger.error("Status code is %s, detail is %s.", ret[2], ret[1])
\r
161 raise NFLCMException("Delete vnf instance relationship exception in AAI")
\r
162 return json.JSONDecoder().decode(ret[1])
\r
165 def put_ns_relationship(global_customer_id, service_type, service_instance_id, data):
\r
166 resource = "/business/customers/customer/%s/service-subscriptions/service-subscription/" \
\r
167 "%s/service-instances/service-instance/%s/relationship-list/relationship" % \
\r
168 (global_customer_id, service_type, service_instance_id)
\r
169 ret = call_aai(resource, "PUT", data)
\r
170 # ret = call_req_aai(AAI_BASE_URL, AAI_USER, AAI_PASSWORD, rest_no_auth, resource, "PUT", data)
\r
172 logger.error("Status code is %s, detail is %s.", ret[2], ret[1])
\r
173 raise NFLCMException("Put or update ns instance relationship exception in AAI")
\r
174 return json.JSONDecoder().decode(ret[1])
\r
176 def delete_ns_relationship(global_customer_id, service_type, service_instance_id, data):
\r
177 resource = "/business/customers/customer/%s/service-subscriptions/service-subscription/" \
\r
178 "%s/service-instances/service-instance/%s/relationship-list/relationship" % \
\r
179 (global_customer_id, service_type, service_instance_id)
\r
180 ret = call_aai(resource, "DELETE", data)
\r
181 # ret = call_req_aai(AAI_BASE_URL, AAI_USER, AAI_PASSWORD, rest_no_auth, resource, "DELETE", data)
\r
183 logger.error("Status code is %s, detail is %s.", ret[2], ret[1])
\r
184 raise NFLCMException("Delete ns instance relationship exception in AAI")
\r
185 return json.JSONDecoder().decode(ret[1])
\r