Update lcm extsys query vnfm by id 21/11021/2
authorying.yunlong <ying.yunlong@zte.com.cn>
Fri, 8 Sep 2017 05:52:13 +0000 (13:52 +0800)
committerying.yunlong <ying.yunlong@zte.com.cn>
Fri, 8 Sep 2017 05:57:52 +0000 (13:57 +0800)
Change-Id: Id1d0da493d22228540212e52810063b9b03275ea
Issue-ID: VFC-315
Signed-off-by: ying.yunlong <ying.yunlong@zte.com.cn>
lcm/ns/tests/vnfs/tests.py
lcm/pub/msapi/aai.py
lcm/pub/msapi/extsys.py

index b71f75d..7024dfe 100644 (file)
@@ -32,6 +32,34 @@ from lcm.ns.vnfs.heal_vnfs import NFHealService
 from lcm.pub.utils.jobutil import JobUtil, JOB_TYPE
 from lcm.pub.exceptions import NSLCMException
 
+vnfm_info = {"vnfm-id": "example-vnfm-id-val-97336",
+             "vim-id": "example-vim-id-val-35532",
+             "certificate-url": "example-certificate-url-val-18046",
+             "resource-version": "example-resource-version-val-42094",
+             "esr-system-info-list": {
+                 "esr-system-info": [
+                     {
+                         "esr-system-info-id": "example-esr-system-info-id-val-7713",
+                         "system-name": "example-system-name-val-19801",
+                         "type": "example-type-val-24477",
+                         "vendor": "example-vendor-val-50079",
+                         "version": "example-version-val-93146",
+                         "service-url": "example-service-url-val-68090",
+                         "user-name": "example-user-name-val-14470",
+                         "password": "example-password-val-84190",
+                         "system-type": "example-system-type-val-42773",
+                         "protocal": "example-protocal-val-85736",
+                         "ssl-cacert": "example-ssl-cacert-val-33989",
+                         "ssl-insecure": True,
+                         "ip-address": "example-ip-address-val-99038",
+                         "port": "example-port-val-27323",
+                         "cloud-domain": "example-cloud-domain-val-55163",
+                         "default-tenant": "example-default-tenant-val-99383",
+                         "resource-version": "example-resource-version-val-15424"
+                     }
+                 ]
+             }
+             }
 
 class TestGetVnfViews(TestCase):
     def setUp(self):
@@ -86,8 +114,8 @@ class TestCreateVnfViews(TestCase):
         mock_vals = {
             "/api/ztevmanagerdriver/v1/1/vnfs":
                 [0, json.JSONEncoder().encode({"jobId": self.job_id, "vnfInstanceId": 3}), '200'],
-            "/api/aai-esr-server/v1/vnfms/1":
-                [0, json.JSONEncoder().encode({"name": 'vnfm1'}), '200'],
+            "/external-system/esr-vnfm-list/esr-vnfm/1":
+                [0, json.JSONEncoder().encode(vnfm_info), '200'],
             "/api/resmgr/v1/vnf":
                 [0, json.JSONEncoder().encode({}), '200'],
             "/api/resmgr/v1/vnfinfo":
@@ -154,51 +182,51 @@ class TestTerminateVnfViews(TestCase):
         response = self.client.post("/api/nslcm/v1/ns/vnfs/%s" % self.nf_inst_id, data=req_data)
         self.failUnlessEqual(status.HTTP_201_CREATED, response.status_code)
 
-    @mock.patch.object(restcall, "call_req")
-    def test_terminate_vnf(self, mock_call_req):
-        job_id = JobUtil.create_job("VNF", JOB_TYPE.TERMINATE_VNF, self.nf_inst_id)
-
-        nfinst = NfInstModel.objects.filter(nfinstid=self.nf_inst_id)
-        if nfinst:
-            self.failUnlessEqual(1, 1)
-        else:
-            self.failUnlessEqual(1, 0)
-
-        mock_vals = {
-            "/api/ztevmanagerdriver/v1/1/vnfs/111/terminate":
-                [0, json.JSONEncoder().encode({"jobId": job_id}), '200'],
-            "/api/aai-esr-server/v1/vnfms/1":
-                [0, json.JSONEncoder().encode({"name": 'vnfm1', "type": 'ztevmanagerdriver'}), '200'],
-            "/api/resmgr/v1/vnf/1":
-                [0, json.JSONEncoder().encode({"jobId": job_id}), '200'],
-            "/api/ztevmanagerdriver/v1/1/jobs/" + job_id + "?responseId=0":
-                [0, json.JSONEncoder().encode({"jobId": job_id,
-                                               "responsedescriptor": {"progress": "100",
-                                                                      "status": JOB_MODEL_STATUS.FINISHED,
-                                                                      "responseid": "3",
-                                                                      "statusdescription": "creating",
-                                                                      "errorcode": "0",
-                                                                      "responsehistorylist": [
-                                                                          {"progress": "0",
-                                                                           "status": JOB_MODEL_STATUS.PROCESSING,
-                                                                           "responseid": "2",
-                                                                           "statusdescription": "creating",
-                                                                           "errorcode": "0"}]}}), '200']}
-
-        req_data = {
-            "terminationType": "forceful",
-            "gracefulTerminationTimeout": "600"}
-
-        def side_effect(*args):
-            return mock_vals[args[4]]
-        mock_call_req.side_effect = side_effect
-
-        TerminateVnfs(req_data, self.nf_inst_id, job_id).run()
-        nfinst = NfInstModel.objects.filter(nfinstid=self.nf_inst_id)
-        if nfinst:
-            self.failUnlessEqual(1, 0)
-        else:
-            self.failUnlessEqual(1, 1)
+    @mock.patch.object(restcall, "call_req")
+    def test_terminate_vnf(self, mock_call_req):
+        job_id = JobUtil.create_job("VNF", JOB_TYPE.TERMINATE_VNF, self.nf_inst_id)
+    #
+        nfinst = NfInstModel.objects.filter(nfinstid=self.nf_inst_id)
+        if nfinst:
+            self.failUnlessEqual(1, 1)
+        else:
+            self.failUnlessEqual(1, 0)
+    #
+        mock_vals = {
+            "/api/ztevmanagerdriver/v1/1/vnfs/111/terminate":
+                [0, json.JSONEncoder().encode({"jobId": job_id}), '200'],
+    #         "/external-system/esr-vnfm-list/esr-vnfm/1":
+    #             [0, json.JSONEncoder().encode(vnfm_info), '200'],
+            "/api/resmgr/v1/vnf/1":
+                [0, json.JSONEncoder().encode({"jobId": job_id}), '200'],
+            "/api/ztevmanagerdriver/v1/1/jobs/" + job_id + "?responseId=0":
+                [0, json.JSONEncoder().encode({"jobId": job_id,
+                                               "responsedescriptor": {"progress": "100",
+                                                                      "status": JOB_MODEL_STATUS.FINISHED,
+                                                                      "responseid": "3",
+                                                                      "statusdescription": "creating",
+                                                                      "errorcode": "0",
+                                                                      "responsehistorylist": [
+                                                                          {"progress": "0",
+                                                                           "status": JOB_MODEL_STATUS.PROCESSING,
+                                                                           "responseid": "2",
+                                                                           "statusdescription": "creating",
+                                                                           "errorcode": "0"}]}}), '200']}
+    #
+        req_data = {
+            "terminationType": "forceful",
+            "gracefulTerminationTimeout": "600"}
+    #
+        def side_effect(*args):
+            return mock_vals[args[4]]
+        mock_call_req.side_effect = side_effect
+    #
+        TerminateVnfs(req_data, self.nf_inst_id, job_id).run()
+        nfinst = NfInstModel.objects.filter(nfinstid=self.nf_inst_id)
+        if nfinst:
+            self.failUnlessEqual(1, 0)
+        else:
+            self.failUnlessEqual(1, 1)
 
 class TestScaleVnfViews(TestCase):
     def setUp(self):
@@ -337,8 +365,8 @@ class TestHealVnfViews(TestCase):
         mock_vals = {
             "/api/ztevmanagerdriver/v1/1/vnfs/111/heal":
                 [0, json.JSONEncoder().encode({"jobId": self.job_id}), '200'],
-            "/api/aai-esr-server/v1/vnfms/1":
-                [0, json.JSONEncoder().encode({"name": 'vnfm1', "type": 'ztevmanagerdriver'}), '200'],
+            "/external-system/esr-vnfm-list/esr-vnfm/1":
+                [0, json.JSONEncoder().encode(vnfm_info), '200'],
             "/api/resmgr/v1/vnf/1":
                 [0, json.JSONEncoder().encode({"jobId": self.job_id}), '200'],
             "/api/ztevmanagerdriver/v1/1/jobs/" + self.job_id + "?responseId=0":
index 6779e1d..251f8e0 100644 (file)
@@ -29,15 +29,17 @@ def call_aai(resource, method, content=''):
         'X-FromAppId': 'VFC-NFVO-LCM',
         'X-TransactionId': str(uuid.uuid1())
     }
+    resource = resource + "?depth=all"
     return restcall.call_req(base_url=AAI_BASE_URL,
         user=AAI_USER,
         passwd=AAI_PASSWD,
-        auth_type=restcall.rest_no_auth,
-        resource=resource + "?depth=all",
+        auth_type=0,
+        resource=resource,
         method=method,
         content=content,
         additional_headers=additional_headers)
 
+
 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" % \
@@ -184,36 +186,6 @@ def delete_ns_relationship(global_customer_id, service_type, service_instance_id
     return json.JSONDecoder().decode(ret[1])
 
 
-def get_vnfm_by_id(vnfm_inst_id):
-    uri = '/external-system/esr-vnfm-list/esr-vnfm/%s' % vnfm_inst_id
-    ret = call_aai(uri, "GET")
-    if ret[0] > 0:
-        logger.error('Send get VNFM information request to extsys failed.')
-        raise NSLCMException('Send get VNFM information request to extsys failed.')
-    # convert vnfm_info_aai to internal vnfm_info
-    vnfm_info_aai = json.JSONDecoder().decode(ret[1])
-    vnfm_info = convert_vnfm_info(vnfm_info_aai)
-    return vnfm_info
-
-def convert_vnfm_info(vnfm_info_aai):
-    esr_system_info = ignore_case_get(ignore_case_get(vnfm_info_aai, "esr-system-info-list"), "esr-system-info")
-    vnfm_info = {
-        "vnfmId": vnfm_info_aai["vnfm-id"],
-        "name": vnfm_info_aai["vnfm-id"],
-        "type": ignore_case_get(esr_system_info[0], "type"),
-        "vimId": vnfm_info_aai["vim-id"],
-        "vendor": ignore_case_get(esr_system_info[0], "vendor"),
-        "version": ignore_case_get(esr_system_info[0], "version"),
-        "description": "vnfm",
-        "certificateUrl": vnfm_info_aai["certificate-url"],
-        "url": ignore_case_get(esr_system_info[0], "service-url"),
-        "userName": ignore_case_get(esr_system_info[0], "user-name"),
-        "password": ignore_case_get(esr_system_info[0], "password"),
-        "createTime": "2016-07-06 15:33:18"
-    }
-    return vnfm_info
-
-
 def split_vim_to_owner_region(vim_id):
     split_vim = vim_id.split('_')
     cloud_owner = split_vim[0]
index 001a9ca..3859fef 100644 (file)
@@ -101,12 +101,15 @@ def convert_sdnc_info(sdnc_info_aai):
 
 
 def get_vnfm_by_id(vnfm_inst_id):
-    uri = '/api/aai-esr-server/v1/vnfms/%s' % vnfm_inst_id
-    ret = req_by_msb(uri, "GET")
+    uri = '/external-system/esr-vnfm-list/esr-vnfm/%s' % vnfm_inst_id
+    ret = call_aai(uri, "GET")
     if ret[0] > 0:
         logger.error('Send get VNFM information request to extsys failed.')
         raise NSLCMException('Send get VNFM information request to extsys failed.')
-    return json.JSONDecoder().decode(ret[1])
+    # convert vnfm_info_aai to internal vnfm_info
+    vnfm_info_aai = json.JSONDecoder().decode(ret[1])
+    vnfm_info = convert_vnfm_info(vnfm_info_aai)
+    return vnfm_info
 
 
 def convert_vnfm_info(vnfm_info_aai):