X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=lcm%2Flcm%2Fpub%2Faaiapi%2Faai.py;h=bd51f63b43e7ebf24a3182cb49e9efba0e63b9a7;hb=60a959810864b38012e31a9ba85ced721318fbc0;hp=a512315eca53bf2002a487625b1f886a88b684bd;hpb=ebfb00fb5e70cdc919b910d91650446542088cea;p=vfc%2Fgvnfm%2Fvnflcm.git diff --git a/lcm/lcm/pub/aaiapi/aai.py b/lcm/lcm/pub/aaiapi/aai.py index a512315e..bd51f63b 100644 --- a/lcm/lcm/pub/aaiapi/aai.py +++ b/lcm/lcm/pub/aaiapi/aai.py @@ -11,6 +11,134 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. +import json +import logging -def call_aai(full_url, method, req_data): - pass \ No newline at end of file +from lcm.pub.config.config import AAI_BASE_URL, AAI_USER, AAI_PASSWORD +from lcm.pub.exceptions import NFLCMException +from lcm.pub.utils.restcall import call_req_aai, rest_no_auth + +logger = logging.getLogger(__name__) + + +def create_ns(global_customer_id, service_type, service_instance_id, data): + resource = "/business/customers/customer/%s/service-subscriptions/service-subscription/" \ + "%s/service-instances/service-instance/%s" % \ + (global_customer_id, service_type, service_instance_id) + ret = call_req_aai(AAI_BASE_URL, AAI_USER, AAI_PASSWORD, rest_no_auth, resource, "PUT", data) + if ret[0] != 0: + logger.error("Status code is %s, detail is %s.", ret[2], ret[1]) + raise NFLCMException("Ns instance creation exception in AAI") + return json.JSONDecoder().decode(ret[1]) + +def delete_ns(global_customer_id, service_type, service_instance_id, data): + resource = "/business/customers/customer/%s/service-subscriptions/service-subscription/" \ + "%s/service-instances/service-instance/%s" % \ + (global_customer_id, service_type, service_instance_id) + ret = call_req_aai(AAI_BASE_URL, AAI_USER, AAI_PASSWORD, rest_no_auth, resource, "DELETE", data) + if ret[0] != 0: + logger.error("Status code is %s, detail is %s.", ret[2], ret[1]) + raise NFLCMException("Ns instance delete exception in AAI") + return json.JSONDecoder().decode(ret[1]) + +def query_ns(global_customer_id, service_type, service_instance_id, data): + resource = "/business/customers/customer/%s/service-subscriptions/service-subscription/" \ + "%s/service-instances/service-instance/%s" % \ + (global_customer_id, service_type, service_instance_id) + ret = call_req_aai(AAI_BASE_URL, AAI_USER, AAI_PASSWORD, rest_no_auth, resource, "GET", data) + if ret[0] != 0: + logger.error("Status code is %s, detail is %s.", ret[2], ret[1]) + raise NFLCMException("Ns instance query exception in AAI") + return json.JSONDecoder().decode(ret[1]) + + +def create_vnf(vnf_id, data): + resource = "/network/generic-vnfs/generic-vnf/%s" % vnf_id + ret = call_req_aai(AAI_BASE_URL, AAI_USER, AAI_PASSWORD, rest_no_auth, resource, "PUT", data) + if ret[0] != 0: + logger.error("Status code is %s, detail is %s.", ret[2], ret[1]) + raise NFLCMException("Vnf instance creation exception in AAI") + return json.JSONDecoder().decode(ret[1]) + +def delete_vnf(vnf_id, data): + resource = "/network/generic-vnfs/generic-vnf/%s" % vnf_id + ret = call_req_aai(AAI_BASE_URL, AAI_USER, AAI_PASSWORD, rest_no_auth, resource, "DELETE", data) + if ret[0] != 0: + logger.error("Status code is %s, detail is %s.", ret[2], ret[1]) + raise NFLCMException("Vnf instance delete exception in AAI") + return json.JSONDecoder().decode(ret[1]) + +def query_vnf(vnf_id, data): + resource = "/network/generic-vnfs/generic-vnf/%s" % vnf_id + ret = call_req_aai(AAI_BASE_URL, AAI_USER, AAI_PASSWORD, rest_no_auth, resource, "GET", data) + if ret[0] != 0: + logger.error("Status code is %s, detail is %s.", ret[2], ret[1]) + raise NFLCMException("Vnf instance query exception in AAI") + return json.JSONDecoder().decode(ret[1]) + + +def create_vserver(cloud_owner, cloud_region_id, tenant_id, vserver_id, data): + resource = "/cloud-infrastructure/cloud-regions/cloud-region/%s/" \ + "%s/tenants/tenant/%s/vservers/vserver/%s" % \ + (cloud_owner, cloud_region_id, tenant_id, vserver_id) + ret = call_req_aai(AAI_BASE_URL, AAI_USER, AAI_PASSWORD, rest_no_auth, resource, "PUT", data) + if ret[0] != 0: + logger.error("Status code is %s, detail is %s.", ret[2], ret[1]) + raise NFLCMException("Vserver creation exception in AAI") + return json.JSONDecoder().decode(ret[1]) + +def delete_vserver(cloud_owner, cloud_region_id, tenant_id, vserver_id, data): + resource = "/cloud-infrastructure/cloud-regions/cloud-region/%s/" \ + "%s/tenants/tenant/%s/vservers/vserver/%s" % \ + (cloud_owner, cloud_region_id, tenant_id, vserver_id) + ret = call_req_aai(AAI_BASE_URL, AAI_USER, AAI_PASSWORD, rest_no_auth, resource, "DELETE", data) + if ret[0] != 0: + logger.error("Status code is %s, detail is %s.", ret[2], ret[1]) + raise NFLCMException("Vserver delete exception in AAI") + return json.JSONDecoder().decode(ret[1]) + +def query_vserver(cloud_owner, cloud_region_id, tenant_id, vserver_id, data): + resource = "/cloud-infrastructure/cloud-regions/cloud-region/%s/" \ + "%s/tenants/tenant/%s/vservers/vserver/%s" % \ + (cloud_owner, cloud_region_id, tenant_id, vserver_id) + ret = call_req_aai(AAI_BASE_URL, AAI_USER, AAI_PASSWORD, rest_no_auth, resource, "GET", data) + if ret[0] != 0: + logger.error("Status code is %s, detail is %s.", ret[2], ret[1]) + raise NFLCMException("Vserver query exception in AAI") + return json.JSONDecoder().decode(ret[1]) + +def put_vserver_relationship(cloud_owner, cloud_region_id, tenant_id, vserver_id, data): + resource = "/cloud-infrastructure/cloud-regions/cloud-region/%s/" \ + "%s/tenants/tenant/%s/vservers/vserver/%s/relationship-list/relationship" % \ + (cloud_owner, cloud_region_id, tenant_id, vserver_id) + ret = call_req_aai(AAI_BASE_URL, AAI_USER, AAI_PASSWORD, rest_no_auth, resource, "PUT", data) + if ret[0] != 0: + logger.error("Status code is %s, detail is %s.", ret[2], ret[1]) + raise NFLCMException("Put or update vserver relationship exception in AAI") + return json.JSONDecoder().decode(ret[1]) + +def delete_vserver_relationship(cloud_owner, cloud_region_id, tenant_id, vserver_id, data): + resource = "/cloud-infrastructure/cloud-regions/cloud-region/%s/" \ + "%s/tenants/tenant/%s/vservers/vserver/%s/relationship-list/relationship" % \ + (cloud_owner, cloud_region_id, tenant_id, vserver_id) + ret = call_req_aai(AAI_BASE_URL, AAI_USER, AAI_PASSWORD, rest_no_auth, resource, "DELETE", data) + if ret[0] != 0: + logger.error("Status code is %s, detail is %s.", ret[2], ret[1]) + raise NFLCMException("Delete vserver relationship exception in AAI") + return json.JSONDecoder().decode(ret[1]) + +def put_vnf_relationship(vnf_id, data): + resource = "/network/generic-vnfs/generic-vnf/%s/relationship-list/relationship" % vnf_id + ret = call_req_aai(AAI_BASE_URL, AAI_USER, AAI_PASSWORD, rest_no_auth, resource, "PUT", data) + if ret[0] != 0: + logger.error("Status code is %s, detail is %s.", ret[2], ret[1]) + raise NFLCMException("Put or update vnf instance relationship exception in AAI") + return json.JSONDecoder().decode(ret[1]) + +def delete_vnf_relationship(vnf_id, data): + resource = "/network/generic-vnfs/generic-vnf/%s/relationship-list/relationship" % vnf_id + ret = call_req_aai(AAI_BASE_URL, AAI_USER, AAI_PASSWORD, rest_no_auth, resource, "DELETE", data) + if ret[0] != 0: + logger.error("Status code is %s, detail is %s.", ret[2], ret[1]) + raise NFLCMException("Delete vnf instance relationship exception in AAI") + return json.JSONDecoder().decode(ret[1])