Add nfvo-lcm customer relationship operation 51/13351/2
authorying.yunlong <ying.yunlong@zte.com.cn>
Tue, 19 Sep 2017 07:48:54 +0000 (15:48 +0800)
committerying.yunlong <ying.yunlong@zte.com.cn>
Tue, 19 Sep 2017 08:22:10 +0000 (16:22 +0800)
Change-Id: Ie19022662e4951faf58b67c43b232eab8fb90eb2
Issue-ID: VFC-385
Signed-off-by: ying.yunlong <ying.yunlong@zte.com.cn>
lcm/ns/ns_delete.py
lcm/ns/ns_terminate.py
lcm/pub/msapi/aai.py

index 0883cf2..52b0df8 100644 (file)
@@ -19,8 +19,7 @@ import traceback
 from lcm.pub.config.config import REPORT_TO_AAI
 from lcm.pub.database.models import DefPkgMappingModel, InputParamMappingModel, ServiceBaseInfoModel
 from lcm.pub.database.models import NSInstModel
-from lcm.pub.msapi.aai import get_customer_aai, delete_customer_aai
-
+from lcm.pub.msapi.aai import delete_customer_aai, query_customer_aai
 
 logger = logging.getLogger(__name__)
 
@@ -55,7 +54,7 @@ class DeleteNsService(object):
         global_customer_id = "global-customer-id-" + self.ns_inst_id
 
         # query ns instance in aai, get resource_version
-        customer_info = get_customer_aai(global_customer_id)
+        customer_info = query_customer_aai(global_customer_id)
         resource_version = customer_info["resource-version"]
 
         # delete ns instance from aai
index dd8a267..2a79fb3 100644 (file)
 # 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 math
-import traceback
-import logging
+
 import json
+import logging
+import math
 import threading
 import time
+import traceback
+
 from lcm.ns.vnfs.wait_job import wait_job_finish
 from lcm.pub.database.models import NSInstModel, VLInstModel, FPInstModel, NfInstModel
-from lcm.pub.database.models import DefPkgMappingModel, InputParamMappingModel, ServiceBaseInfoModel
-from lcm.pub.msapi.aai import get_customer_aai, delete_customer_aai
-from lcm.pub.utils.jobutil import JOB_MODEL_STATUS, JobUtil
 from lcm.pub.exceptions import NSLCMException
 from lcm.pub.msapi.nslcm import call_from_ns_cancel_resource
+from lcm.pub.utils.jobutil import JOB_MODEL_STATUS, JobUtil
 from lcm.pub.utils.values import ignore_case_get
 
 JOB_ERROR = 255
@@ -192,10 +192,10 @@ class TerminateNsService(threading.Thread):
         NSInstModel.objects.filter(id=self.ns_inst_id).update(status='null')
         JobUtil.add_job_status(self.job_id, 100, "ns terminate ends.", '')
 
-    @staticmethod
-    def call_vnfm_to_cancel_resource(res_type, instid):
-        ret = call_from_ns_cancel_resource(res_type, instid)
-        return ret
+    @staticmethod
+    def call_vnfm_to_cancel_resource(res_type, instid):
+        ret = call_from_ns_cancel_resource(res_type, instid)
+        return ret
 
     def add_progress(self, progress, status_decs, error_code=""):
         JobUtil.add_job_status(self.job_id, progress, status_decs, error_code)
index ae76e8d..4be1ff7 100644 (file)
@@ -12,7 +12,6 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-
 import json
 import logging
 import uuid
@@ -40,6 +39,7 @@ def call_aai(resource, method, content=''):
                      content,
                      additional_headers)
 
+
 def create_customer_aai(global_customer_id, data):
     resource = "/business/customers/customer/%s" % global_customer_id
     ret = call_aai(resource, "PUT", data)
@@ -49,13 +49,13 @@ def create_customer_aai(global_customer_id, data):
     return json.JSONDecoder().decode(ret[1]), ret[2]
 
 
-def get_customer_aai(global_customer_id):
+def query_customer_aai(global_customer_id):
     resource = "/business/customers/customer/%s?depth=all" % global_customer_id
     ret = call_aai(resource, "GET")
     if ret[0] != 0:
         logger.error("Status code is %s, detail is %s.", ret[2], ret[1])
         raise NSLCMException("Get customer info exception in AAI")
-    return json.JSONDecoder().decode(ret[1])
+    return json.JSONDecoder().decode(ret[1]), ret[2]
 
 
 def delete_customer_aai(global_customer_id, resource_version=""):
@@ -69,6 +69,24 @@ def delete_customer_aai(global_customer_id, resource_version=""):
     return json.JSONDecoder().decode(ret[1]), ret[2]
 
 
+def put_customer_relationship(global_customer_id, data):
+    resource = "/business/customers/customer/{global-customer-id}/relationship-list/relationship" % global_customer_id
+    ret = call_aai(resource, "PUT", data)
+    if ret[0] != 0:
+        logger.error("Status code is %s, detail is %s.", ret[2], ret[1])
+        raise NSLCMException("Put or update customer relationship exception in AAI")
+    return json.JSONDecoder().decode(ret[1]), ret[2]
+
+
+def delete_customer_relationship(global_customer_id):
+    resource = "/business/customers/customer/{global-customer-id}/relationship-list/relationship" % global_customer_id
+    ret = call_aai(resource, "DELETE")
+    if ret[0] != 0:
+        logger.error("Status code is %s, detail is %s.", ret[2], ret[1])
+        raise NSLCMException("Delete customer relationship exception in AAI")
+    return json.JSONDecoder().decode(ret[1]), ret[2]
+
+
 def create_ns_aai(global_customer_id, service_type, service_instance_id, data):
     resource = "/business/customers/customer/%s/service-subscriptions/service-subscription/" \
                "%s/service-instances/service-instance/%s" % \
@@ -79,6 +97,18 @@ def create_ns_aai(global_customer_id, service_type, service_instance_id, data):
         raise NSLCMException("Ns instance creation exception in AAI")
     return json.JSONDecoder().decode(ret[1]), ret[2]
 
+
+def query_ns_aai(global_customer_id, service_type, service_instance_id):
+    resource = "/business/customers/customer/%s/service-subscriptions/service-subscription/" \
+               "%s/service-instances/service-instance/%s?depth=all" % \
+               (global_customer_id, service_type, service_instance_id)
+    ret = call_aai(resource, "GET")
+    if ret[0] != 0:
+        logger.error("Status code is %s, detail is %s.", ret[2], ret[1])
+        raise NSLCMException("Ns instance query exception in AAI")
+    return json.JSONDecoder().decode(ret[1])
+
+
 def delete_ns_aai(global_customer_id, service_type, service_instance_id, resource_version=""):
     resource = "/business/customers/customer/%s/service-subscriptions/service-subscription/" \
                "%s/service-instances/service-instance/%s" % \
@@ -89,17 +119,30 @@ def delete_ns_aai(global_customer_id, service_type, service_instance_id, resourc
     if ret[0] != 0:
         logger.error("Status code is %s, detail is %s.", ret[2], ret[1])
         raise NSLCMException("Ns instance delete exception in AAI")
-    return json.JSONDecoder().decode(ret[1])
+    return json.JSONDecoder().decode(ret[1]), ret[2]
+
 
-def query_ns_aai(global_customer_id, service_type, service_instance_id, data):
+def put_ns_relationship(global_customer_id, service_type, service_instance_id, data):
     resource = "/business/customers/customer/%s/service-subscriptions/service-subscription/" \
-               "%s/service-instances/service-instance/%s?depth=all" % \
+               "%s/service-instances/service-instance/%s/relationship-list/relationship" % \
                (global_customer_id, service_type, service_instance_id)
-    ret = call_aai(resource, "GET", data)
+    ret = call_aai(resource, "PUT", data)
     if ret[0] != 0:
         logger.error("Status code is %s, detail is %s.", ret[2], ret[1])
-        raise NSLCMException("Ns instance query exception in AAI")
-    return json.JSONDecoder().decode(ret[1])
+        raise NSLCMException("Put or update ns instance relationship exception in AAI")
+    return json.JSONDecoder().decode(ret[1]), ret[2]
+
+
+def delete_ns_relationship(global_customer_id, service_type, service_instance_id):
+    resource = "/business/customers/customer/%s/service-subscriptions/service-subscription/" \
+               "%s/service-instances/service-instance/%s/relationship-list/relationship" % \
+               (global_customer_id, service_type, service_instance_id)
+    ret = call_aai(resource, "DELETE")
+    if ret[0] != 0:
+        logger.error("Status code is %s, detail is %s.", ret[2], ret[1])
+        raise NSLCMException("Delete ns instance relationship exception in AAI")
+    return json.JSONDecoder().decode(ret[1]), ret[2]
+
 
 def create_vnf_aai(vnf_id, data):
     resource = "/network/generic-vnfs/generic-vnf/%s" % vnf_id
@@ -109,6 +152,16 @@ def create_vnf_aai(vnf_id, data):
         raise NSLCMException("Vnf instance creation exception in AAI")
     return json.JSONDecoder().decode(ret[1]), ret[2]
 
+
+def query_vnf_aai(vnf_id):
+    resource = "/network/generic-vnfs/generic-vnf/%s?depth=all" % vnf_id
+    ret = call_aai(resource, "GET")
+    if ret[0] != 0:
+        logger.error("Status code is %s, detail is %s.", ret[2], ret[1])
+        raise NSLCMException("Vnf instance query exception in AAI")
+    return json.JSONDecoder().decode(ret[1])
+
+
 def delete_vnf_aai(vnf_id, resource_version=""):
     resource = "/network/generic-vnfs/generic-vnf/%s" % vnf_id
     if resource_version:
@@ -119,13 +172,24 @@ def delete_vnf_aai(vnf_id, resource_version=""):
         raise NSLCMException("Vnf instance delete exception in AAI")
     return json.JSONDecoder().decode(ret[1]), ret[2]
 
-def query_vnf_aai(vnf_id):
-    resource = "/network/generic-vnfs/generic-vnf/%s?depth=all" % vnf_id
-    ret = call_aai(resource, "GET")
+
+def put_vnf_relationship(vnf_id, data):
+    resource = "/network/generic-vnfs/generic-vnf/%s/relationship-list/relationship" % vnf_id
+    ret = call_aai(resource, "PUT", data)
     if ret[0] != 0:
         logger.error("Status code is %s, detail is %s.", ret[2], ret[1])
-        raise NSLCMException("Vnf instance query exception in AAI")
-    return json.JSONDecoder().decode(ret[1])
+        raise NSLCMException("Put or update vnf instance relationship exception in AAI")
+    return json.JSONDecoder().decode(ret[1]), ret[2]
+
+
+def delete_vnf_relationship(vnf_id):
+    resource = "/network/generic-vnfs/generic-vnf/%s/relationship-list/relationship" % vnf_id
+    ret = call_aai(resource, "DELETE")
+    if ret[0] != 0:
+        logger.error("Status code is %s, detail is %s.", ret[2], ret[1])
+        raise NSLCMException("Delete vnf instance relationship exception in AAI")
+    return json.JSONDecoder().decode(ret[1]), ret[2]
+
 
 def create_vserver_aai(cloud_owner, cloud_region_id, tenant_id, vserver_id, data):
     resource = "/cloud-infrastructure/cloud-regions/cloud-region/%s/" \
@@ -137,6 +201,18 @@ def create_vserver_aai(cloud_owner, cloud_region_id, tenant_id, vserver_id, data
         raise NSLCMException("Vserver creation exception in AAI")
     return json.JSONDecoder().decode(ret[1]), ret[2]
 
+
+def query_vserver_aai(cloud_owner, cloud_region_id, tenant_id, vserver_id):
+    resource = "/cloud-infrastructure/cloud-regions/cloud-region/%s/" \
+               "%s/tenants/tenant/%s/vservers/vserver/%s?depth=all" % \
+               (cloud_owner, cloud_region_id, tenant_id, vserver_id)
+    ret = call_aai(resource, "GET")
+    if ret[0] != 0:
+        logger.error("Status code is %s, detail is %s.", ret[2], ret[1])
+        raise NSLCMException("Vserver query exception in AAI")
+    return json.JSONDecoder().decode(ret[1])
+
+
 def delete_vserver_aai(cloud_owner, cloud_region_id, tenant_id, vserver_id, resource_version=""):
     resource = "/cloud-infrastructure/cloud-regions/cloud-region/%s/" \
                "%s/tenants/tenant/%s/vservers/vserver/%s" % \
@@ -149,15 +225,6 @@ def delete_vserver_aai(cloud_owner, cloud_region_id, tenant_id, vserver_id, reso
         raise NSLCMException("Vserver delete exception in AAI")
     return json.JSONDecoder().decode(ret[1]), ret[2]
 
-def query_vserver_aai(cloud_owner, cloud_region_id, tenant_id, vserver_id):
-    resource = "/cloud-infrastructure/cloud-regions/cloud-region/%s/" \
-               "%s/tenants/tenant/%s/vservers/vserver/%s?depth=all" % \
-               (cloud_owner, cloud_region_id, tenant_id, vserver_id)
-    ret = call_aai(resource, "GET")
-    if ret[0] != 0:
-        logger.error("Status code is %s, detail is %s.", ret[2], ret[1])
-        raise NSLCMException("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/" \
@@ -167,7 +234,7 @@ def put_vserver_relationship(cloud_owner, cloud_region_id, tenant_id, vserver_id
     if ret[0] != 0:
         logger.error("Status code is %s, detail is %s.", ret[2], ret[1])
         raise NSLCMException("Put or update vserver relationship exception in AAI")
-    return json.JSONDecoder().decode(ret[1])
+    return json.JSONDecoder().decode(ret[1]), ret[2]
 
 
 def delete_vserver_relationship(cloud_owner, cloud_region_id, tenant_id, vserver_id):
@@ -178,44 +245,4 @@ def delete_vserver_relationship(cloud_owner, cloud_region_id, tenant_id, vserver
     if ret[0] != 0:
         logger.error("Status code is %s, detail is %s.", ret[2], ret[1])
         raise NSLCMException("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_aai(resource, "PUT", data)
-    if ret[0] != 0:
-        logger.error("Status code is %s, detail is %s.", ret[2], ret[1])
-        raise NSLCMException("Put or update vnf instance relationship exception in AAI")
-    return json.JSONDecoder().decode(ret[1])
-
-
-def delete_vnf_relationship(vnf_id):
-    resource = "/network/generic-vnfs/generic-vnf/%s/relationship-list/relationship" % vnf_id
-    ret = call_aai(resource, "DELETE")
-    if ret[0] != 0:
-        logger.error("Status code is %s, detail is %s.", ret[2], ret[1])
-        raise NSLCMException("Delete vnf instance relationship exception in AAI")
-    return json.JSONDecoder().decode(ret[1])
-
-
-def put_ns_relationship(global_customer_id, service_type, service_instance_id, data):
-    resource = "/business/customers/customer/%s/service-subscriptions/service-subscription/" \
-               "%s/service-instances/service-instance/%s/relationship-list/relationship" % \
-               (global_customer_id, service_type, service_instance_id)
-    ret = call_aai(resource, "PUT", data)
-    if ret[0] != 0:
-        logger.error("Status code is %s, detail is %s.", ret[2], ret[1])
-        raise NSLCMException("Put or update ns instance relationship exception in AAI")
-    return json.JSONDecoder().decode(ret[1])
-
-
-def delete_ns_relationship(global_customer_id, service_type, service_instance_id):
-    resource = "/business/customers/customer/%s/service-subscriptions/service-subscription/" \
-               "%s/service-instances/service-instance/%s/relationship-list/relationship" % \
-               (global_customer_id, service_type, service_instance_id)
-    ret = call_aai(resource, "DELETE")
-    if ret[0] != 0:
-        logger.error("Status code is %s, detail is %s.", ret[2], ret[1])
-        raise NSLCMException("Delete ns instance relationship exception in AAI")
-    return json.JSONDecoder().decode(ret[1])
+    return json.JSONDecoder().decode(ret[1]), ret[2]