Fix vfc-ztevnfmdriver notify bug
[vfc/nfvo/driver/vnfm/svnfm.git] / zte / vmanager / driver / interfaces / tests.py
index 0fc179f..f8ef799 100644 (file)
@@ -27,6 +27,7 @@ class InterfacesTest(TestCase):
     def tearDown(self):
         pass
 
+    # @mock.patch.object(restcall, 'call_req_aai')
     @mock.patch.object(restcall, 'call_req')
     def test_instantiate_vnf_001(self, mock_call_req):
         """
@@ -79,26 +80,34 @@ class InterfacesTest(TestCase):
                                       u'operationalState': u'Disabled',
                                       u'createTime': u'2016-10-31 16:21:11',
                                       u'size': u'12.1 MB'}}
-        packageInfo = {u'usageState': u'NotInUse',
-                       u'onBoardState': u'onBoarded',
-                       u'name': u'VFW',
-                       u'format': u'yaml',
-                       u'provider': u'ZTE',
-                       u'vnfdProvider': u'zte',
-                       u'vnfdId': u'vcpe_vfw_zte_1_0',
-                       u'deletionPending': False,
-                       u'version': u'v1.0',
-                       u'vnfVersion': u'1.0',
-                       u'vnfdVersion': u'1.0.0',
-                       u'processState': u'normal',
-                       u'modifyTime': u'2016-10-31 16:21:32',
-                       u'downloadUri': u'http://192.168.233.226:80/files/catalog-http/NFAR/ZTE/VFW/v1.0/VFW.csar',
-                       u'operationalState': u'Disabled',
-                       u'createTime': u'2016-10-31 16:21:11', u'size': u'12.1 MB'}
-
-        ret = [0, json.JSONEncoder().encode({"vnfInstanceId":"8",
-                                             "jobid":"NF-CREATE-8-b384535c-9f45-11e6-8749-fa163e91c2f9"}),
-               '200']
+        packageInfo = {
+            "size": "12.1 MB",
+            "usageState": "NotInUse",
+            "onBoardState": "onBoarded",
+            "name": "VFW",
+            "format": "yaml",
+            "packageInfo": {
+                "vnfdModel": json.dumps({"metadata": {"name": "ZTE-MME-FIX-VL"}})
+            },
+            "modifyTime": "2016-10-31 16:21:32",
+            "vnfdProvider": "zte",
+            "vnfdId": "vcpe_vfw_zte_1_0",
+            "deletionPending": False,
+            "version": "v1.0",
+            "vnfVersion": "1.0",
+            "vnfdVersion": "1.0.0",
+            "processState": "normal",
+            "provider": "ZTE",
+            "operationalState": "Disabled",
+            "createTime": "2016-10-31 16:21:11",
+            "downloadUri": "http://192.168.233.226:80/files/catalog-http/NFAR/ZTE/VFW/v1.0/VFW.csar"
+        }
+
+        inst_response = {
+            u'vnfInstanceId': u'8',
+            u'jobid': u'NF-CREATE-8-b384535c-9f45-11e6-8749-fa163e91c2f9'
+        }
+        ret = [0, json.JSONEncoder().encode(inst_response), '200']
 
         r1 = [0, json.JSONEncoder().encode(vnfm_info), "200"]
 
@@ -106,28 +115,33 @@ class InterfacesTest(TestCase):
 
         r3 = [0, json.JSONEncoder().encode(packageInfo), "200"]
 
-
+        # mock_call_req_aai.side_effect =[r1]
         mock_call_req.side_effect = [r1, r2, r3, ret]
 
-        req_data = {'vnfInstanceName': 'VFW_f88c0cb7-512a-44c4-bd09-891663f19367',
-                    'vnfPackageId': 'd852e1be-0aac-48f1-b1a4-cd825f6cdf9a',
-                    'vnfDescriptorId': 'vcpe_vfw_zte_1_0',
-                    'additionalParam': {'sdncontroller': 'e4d637f1-a4ec-4c59-8b20-4e8ab34daba9',
-                                        'NatIpRange': '192.167.0.10-192.168.0.20',
-                                        'm6000_mng_ip': '192.168.11.11',
-                                        'externalPluginManageNetworkName': 'plugin_net_2014',
-                                        'location': '516cee95-e8ca-4d26-9268-38e343c2e31e',
-                                        'externalManageNetworkName': 'mng_net_2017',
-                                        'sfc_data_network': 'sfc_data_net_2016',
-                                        'externalDataNetworkName': 'Flow_out_net',
-                                        'inputs':{}}}
-
-        response = self.client.post("/openoapi/ztevnfm/v1/ztevnfmid/vnfs",
+        req_data = {
+            'vnfInstanceName': 'VFW_f88c0cb7-512a-44c4-bd09-891663f19367',
+            'vnfPackageId': 'd852e1be-0aac-48f1-b1a4-cd825f6cdf9a',
+            'vnfDescriptorId': 'vcpe_vfw_zte_1_0',
+            'additionalParam': {
+                'sdncontroller': 'e4d637f1-a4ec-4c59-8b20-4e8ab34daba9',
+                'NatIpRange': '192.167.0.10-192.168.0.20',
+                'm6000_mng_ip': '192.168.11.11',
+                'externalPluginManageNetworkName': 'plugin_net_2014',
+                'location': '516cee95-e8ca-4d26-9268-38e343c2e31e',
+                'externalManageNetworkName': 'mng_net_2017',
+                'sfc_data_network': 'sfc_data_net_2016',
+                'externalDataNetworkName': 'Flow_out_net',
+                'inputs': {}
+            }
+        }
+
+        response = self.client.post("/api/ztevmanagerdriver/v1/ztevnfmid/vnfs",
                                     data=json.dumps(req_data), content_type="application/json")
         self.assertEqual(str(status.HTTP_200_OK), response.status_code)
         expect_resp_data = {"jobid": "NF-CREATE-8-b384535c-9f45-11e6-8749-fa163e91c2f9", "vnfInstanceId": "8"}
         self.assertEqual(expect_resp_data, response.data)
 
+    # @mock.patch.object(restcall, 'call_req_aai')
     @mock.patch.object(restcall, 'call_req')
     def test_terminate_vnf__002(self, mock_call_req):
         """
@@ -148,14 +162,16 @@ class InterfacesTest(TestCase):
             "createTime": "2016-07-06 15:33:18"}), "200"]
 
         r2 = [0, json.JSONEncoder().encode({"vnfInstanceId": "1", "JobId": "1"}), "200"]
+        # mock_call_req_aai.side_effect = [r1]
         mock_call_req.side_effect = [r1, r2]
 
-        response = self.client.post("/openoapi/ztevnfm/v1/ztevnfmid/vnfs/vbras_innstance_id/terminate")
+        response = self.client.post("/api/ztevmanagerdriver/v1/ztevnfmid/vnfs/vbras_innstance_id/terminate")
 
         self.assertEqual(str(status.HTTP_200_OK), response.status_code)
         expect_resp_data = {"jobid": "1", "vnfInstanceId": "1"}
         self.assertEqual(expect_resp_data, response.data)
 
+    # @mock.patch.object(restcall, 'call_req_aai')
     @mock.patch.object(restcall, 'call_req')
     def test_query_vnf_003(self, mock_call_req):
         """
@@ -176,15 +192,17 @@ class InterfacesTest(TestCase):
             "createTime": "2016-07-06 15:33:18"}), "200"]
 
         r2 = [0, json.JSONEncoder().encode({"vnfinstancestatus": "1"}), "200"]
+        # mock_call_req_aai.side_effect = [r1]
         mock_call_req.side_effect = [r1, r2]
 
-        response = self.client.get("/openoapi/ztevnfm/v1/ztevnfmid/vnfs/vbras_innstance_id")
+        response = self.client.get("/api/ztevmanagerdriver/v1/ztevnfmid/vnfs/vbras_innstance_id")
 
         self.assertEqual(str(status.HTTP_200_OK), response.status_code)
 
         expect_resp_data = {"vnfInfo": {"vnfStatus": "1"}}
         self.assertEqual(expect_resp_data, response.data)
 
+    # @mock.patch.object(restcall, 'call_req_aai')
     @mock.patch.object(restcall, 'call_req')
     def test_operation_status_004(self, mock_call_req):
         """
@@ -202,26 +220,34 @@ class InterfacesTest(TestCase):
                      u'type': u'ztevmanagerdriver',
                      u'createTime': u'2016-10-31 11:08:39',
                      u'description': u''}
-        resp_body = {"responsedescriptor":
-                         {"status": "processing", "responsehistorylist": [
-                             {"status": "error",
-                              "progress": 255,
-                              "errorcode": "",
-                              "responseid": 20,
-                              "statusdescription": "'JsonParser' object has no attribute 'parser_info'"}],
-                          "responseid": 21,
-                          "errorcode": "",
-                          "progress": 40,
-                          "statusdescription": "Create nf apply resource failed"},
-                     "jobid": "NF-CREATE-11-ec6c2f2a-9f48-11e6-9405-fa163e91c2f9"}
+        resp_body = {
+            "responsedescriptor": {
+                "status": "processing",
+                "responsehistorylist": [
+                    {
+                        "status": "error",
+                        "progress": 255,
+                        "errorcode": "",
+                        "responseid": 20,
+                        "statusdescription": "'JsonParser' object has no attribute 'parser_info'"
+                    }
+                ],
+                "responseid": 21,
+                "errorcode": "",
+                "progress": 40,
+                "statusdescription": "Create nf apply resource failed"
+            },
+            "jobid": "NF-CREATE-11-ec6c2f2a-9f48-11e6-9405-fa163e91c2f9"
+        }
         r1 = [0, json.JSONEncoder().encode(vnfm_info), '200']
         r2 = [0, json.JSONEncoder().encode(resp_body), '200']
+        # mock_call_req_aai.side_effect = [r1]
         mock_call_req.side_effect = [r1, r2]
-        response = self.client.get("/openoapi/ztevmanagerdriver/v1/{vnfmid}/jobs/{jobid}?responseId={responseId}".
-            format(
+        response = self.client.get("/api/ztevmanagerdriver/v1/{vnfmid}/jobs/{jobid}?responseId={responseId}".format(
             vnfmid=vnfm_info["vnfmId"],
             jobid=resp_body["jobid"],
-            responseId=resp_body["responsedescriptor"]["responseid"]))
+            responseId=resp_body["responsedescriptor"]["responseid"])
+        )
 
         self.assertEqual(str(status.HTTP_200_OK), response.status_code)
 
@@ -241,22 +267,26 @@ class InterfacesTest(TestCase):
             "vnfmid": "13232222",
             "nfvoid": "03212234",
             "vimid": "12345678",
-            "exvimidlist ":
-                ["exvimid"],
+            "exvimidlist ": [
+                "exvimid"
+            ],
             "tenant": " tenant1",
             "vnfistanceid": "1234",
             "operationright": "0",
             "vmlist": [
                 {
                     "vmflavor": "SMP",
-                    "vmnumber": "3"},
+                    "vmnumber": "3"
+                },
                 {
                     "vmflavor": "CMP",
-                    "vmnumber": "3"}
-            ]}
+                    "vmnumber": "3"
+                }
+            ]
+        }
 
         mock_call_req.return_value = ret
-        response = self.client.put("/openoapi/ztevmanagerdriver/v1/resource/grant",
+        response = self.client.put("/api/ztevmanagerdriver/v1/resource/grant",
                                    data=json.dumps(req_data), content_type='application/json')
 
         self.assertEqual(str(status.HTTP_201_CREATED), response.status_code)
@@ -271,21 +301,7 @@ class InterfacesTest(TestCase):
         """
         Notification
         """
-        r1 = [0, json.JSONEncoder().encode({
-            "vnfmId": "19ecbb3a-3242-4fa3-9926-8dfb7ddc29ee",
-            "name": "g_vnfm",
-            "type": "vnfm",
-            "vimId": "",
-            "vendor": "ZTE",
-            "version": "v1.0",
-            "description": "vnfm",
-            "certificateUrl": "",
-            "url": "http://10.74.44.11",
-            "userName": "admin",
-            "password": "admin",
-            "createTime": "2016-07-06 15:33:18"}), "200"]
-
-        r2 = [0, json.JSONEncoder().encode(
+        r1 = [0, json.JSONEncoder().encode(
             {"vim":
                 {
                     "vimInfoId": "111111",
@@ -317,36 +333,19 @@ class InterfacesTest(TestCase):
                 "additionalParam": ""
              }), "200"]
 
-        req_data = {
-            "nfvoid": "1",
-            "vnfmid": "876543211",
-            "vimid": "6543211",
-            "timestamp": "1234567890",
-            "vnfinstanceid": "1",
-            "eventtype": "0",
-            "vmlist":
-                [
-                    {
-                        "vmflavor": "SMP",
-                        "vmnumber": "3",
-                        "vmidlist ": ["vmuuid"]},
-                    {
-                        "vmflavor": "CMP",
-                        "vmnumber": "3",
-                        "vmidlist ": ["vmuuid"]}]}
-        mock_call_req.side_effect = [r1, r2]
-        response = self.client.post("/openoapi/ztevmanagerdriver/v1/vnfs/lifecyclechangesnotification",
-                                    data=json.dumps(req_data), content_type='application/json')
+        mock_call_req.side_effect = [r1]
+        response = self.client.post("/api/ztevmanagerdriver/v1/vnfs/lifecyclechangesnotification",
+                                    data=json.dumps(notify_req_data), content_type='application/json')
 
         self.assertEqual(str(status.HTTP_200_OK), response.status_code)
 
         expect_resp_data = None
         self.assertEqual(expect_resp_data, response.data)
 
-    '''
+    # @mock.patch.object(restcall, 'call_req_aai')
     @mock.patch.object(restcall, 'call_req')
-    def test_scale(self,mock_call_req):
-        job_info = {"jobid":"801","nfInstanceId":"101"}
+    def test_scale(self, mock_call_req):
+        job_info = {"jobid": "801", "nfInstanceId": "101"}
         vnfm_info = {u'userName': u'admin',
                      u'vendor': u'ZTE',
                      u'name': u'ZTE_VNFM_237_62',
@@ -361,28 +360,30 @@ class InterfacesTest(TestCase):
                      u'description': u''}
 
         ret = [0, json.JSONEncoder().encode(job_info), "202"]
-        ret_vnfm = [0,json.JSONEncoder().encode(job_info), "200"]
+        ret_vnfm = [0, json.JSONEncoder().encode(vnfm_info), "200"]
+        # mock_call_req_aai.side_effect = [ret_vnfm]
         mock_call_req.side_effect = [ret_vnfm, ret]
 
         vnfd_info = {
-            "vnf_flavours":[
+            "vnf_flavours": [
                 {
-                    "flavour_id":"flavour1",
-                    "description":"",
-                    "vdu_profiles":[
+                    "flavour_id": "flavour1",
+                    "description": "",
+                    "vdu_profiles": [
                         {
-                            "vdu_id":"vdu1Id",
+                            "vdu_id": "vdu1Id",
                             "instances_minimum_number": 1,
                             "instances_maximum_number": 4,
-                            "local_affinity_antiaffinity_rule":[
+                            "local_affinity_antiaffinity_rule": [
                                 {
-                                    "affinity_antiaffinity":"affinity",
-                                    "scope":"node",
+                                    "affinity_antiaffinity": "affinity",
+                                    "scope": "node",
+
                                 }
                             ]
                         }
                     ],
-                    "scaling_aspects":[
+                    "scaling_aspects": [
                         {
                             "id": "demo_aspect",
                             "name": "demo_aspect",
@@ -394,32 +395,796 @@ class InterfacesTest(TestCase):
                 }
             ],
             "element_groups": [
-                  {
-                      "group_id": "elementGroup1",
-                      "description": "",
-                      "properties":{
-                          "name": "elementGroup1",
-                      },
-                      "members": ["gsu_vm","pfu_vm"],
-                  }
+                {
+                    "group_id": "elementGroup1",
+                    "description": "",
+                    "properties": {
+                        "name": "elementGroup1"
+                    },
+                    "members": [
+                        "gsu_vm",
+                        "pfu_vm"
+                    ]
+                }
             ]
         }
 
         scale_vnf_data = {
-            "type":"SCALE_OUT",
-            "aspectId":"demo_aspect",
-            "numberOfSteps":"3",
-            "additionalParam":{
-                "vnfdModel":vnfd_info
+            "type": "SCALE_OUT",
+            "aspectId": "demo_aspect",
+            "numberOfSteps": "3",
+            "additionalParam": {
+                "vnfdModel": vnfd_info
             }
         }
 
+        response = self.client.post("/api/ztevmanagerdriver/v1/100/vnfs/101/scale",
+                                    data=json.dumps(scale_vnf_data), content_type='application/json')
+        self.assertEqual(str(status.HTTP_202_ACCEPTED), response.status_code)
+        self.assertDictEqual(job_info, response.data)
+
+    # @mock.patch.object(restcall, 'call_req_aai')
+    @mock.patch.object(restcall, 'call_req')
+    def test_heal(self, mock_call_req):
+        job_info = {"jobid": "12234455", "nfInstanceId": "10144445666"}
+        vnfm_info = {u'userName': u'admin',
+                     u'vendor': u'ZTE',
+                     u'name': u'ZTE_VNFM_237_62',
+                     u'vimId': u'516cee95-e8ca-4d26-9268-38e343c2e31e',
+                     u'url': u'http://192.168.237.165:2324',
+                     u'certificateUrl': u'',
+                     u'version': u'V1.0',
+                     u'vnfmId': u'b0797c9b-3da9-459c-b25c-3813e9d8fd70',
+                     u'password': u'admin',
+                     u'type': u'ztevmanagerdriver',
+                     u'createTime': u'2016-10-31 11:08:39',
+                     u'description': u''}
+
+        ret = [0, json.JSONEncoder().encode(job_info), "202"]
+        ret_vnfm = [0, json.JSONEncoder().encode(vnfm_info), "200"]
+        # mock_call_req_aai.side_effect = [ret_vnfm]
+        mock_call_req.side_effect = [ret_vnfm, ret]
+
+        heal_vnf_data = {
+            'action': 'vmReset',
+            'affectedvm': [{
+                'flavour': {
+
+                },
+                'extention': '',
+                'vmid': '804cca71-9ae9-4511-8e30-d1387718caff',
+                'changtype': 'changed',
+                'vduid': 'vdu_100',
+                'vmname': 'ZTE_SSS_111_PP_2_L'
+            }],
+            'lifecycleoperation': 'operate',
+            'isgrace': 'force'
+        }
 
-        response = self.client.post("/openoapi/ztevnfm/v1/vnfmid/vnfs/101/scale",
-                                   data=json.dumps(scale_vnf_data), content_type='application/json')
+        response = self.client.post("/api/ztevmanagerdriver/v1/200/vnfs/201/heal",
+                                    data=json.dumps(heal_vnf_data), content_type='application/json')
 
         self.assertEqual(str(status.HTTP_202_ACCEPTED), response.status_code)
+        self.assertDictEqual(job_info, response.data)
 
-        expect_resp_data = {"jobid":"801","nfInstanceId":"101"}
-        self.assertDictEqual(expect_resp_data, response.data)
-    '''
+
+notify_req_data = {
+    "vnfinstanceid": "1",
+    "nfvoid": "3",
+    "extension": {
+        "openo_notification": {
+            "status": "finished",
+            "affectedService": [
+
+            ],
+            "affectedVnfc": [
+                {
+                    "changeType": "added",
+                    "computeResource": {
+                        "resourceId": "e8ccc55a-3ebb-4e46-8260-dc4a1646ef4f",
+                        "tenant": "ZTE_ONAP_PRO",
+                        "vimId": "vmware_vio",
+                        "resourceName": "ZTE_xGW_39_CDB_1"
+                    },
+                    "storageResource": [
+
+                    ],
+                    "vnfcInstanceId": "17502154-c5bf-11e7-904d-fa163eee1ffe",
+                    "vduType": "CDB",
+                    "vduId": "VDU_S_CDB_51"
+                },
+                {
+                    "changeType": "added",
+                    "computeResource": {
+                        "resourceId": "a9dd6a73-76ee-4d07-9554-08f14c17261f",
+                        "tenant": "ZTE_ONAP_PRO",
+                        "vimId": "vmware_vio",
+                        "resourceName": "ZTE_xGW_39_SLB_1"
+                    },
+                    "storageResource": [
+
+                    ],
+                    "vnfcInstanceId": "1750d540-c5bf-11e7-904d-fa163eee1ffe",
+                    "vduType": "SLB",
+                    "vduId": "VDU_M_SLB_42"
+                }
+            ],
+            "nfvoInstanceId": "3",
+            "affectedVirtualLink": [
+                {
+                    "changeType": "added",
+                    "virtualLinkInstanceId": "1753b60c-c5bf-11e7-904d-fa163eee1ffe",
+                    "networkResource": {
+                        "resourceId": "c55e0788-3683-48a1-b88a-a0cb5e05bd44",
+                        "tenant": None,
+                        "vimId": "vmware_vio",
+                        "resourceName": "ZTE_VGW_MGT_NET39"
+                    },
+                    "virtualLinkDescId": "ZTE_VGW_MGT_NET39_virtualLink",
+                    "tenant": "ZTE_ONAP_PRO",
+                    "subnetworkResource": {
+                        "resourceId": "33c8a03d-00c9-4c57-a348-26dae462b473",
+                        "tenant": None,
+                        "vimId": "vmware_vio",
+                        "resourceName": "ZTE_VGW_MGT_NET39_s"
+                    }
+                },
+                {
+                    "changeType": "added",
+                    "virtualLinkInstanceId": "175472a4-c5bf-11e7-904d-fa163eee1ffe",
+                    "networkResource": {
+                        "resourceId": "2d22b6e4-340b-45a8-8757-5206aa056b92",
+                        "tenant": None,
+                        "vimId": "vmware_vio",
+                        "resourceName": "ZTE_VGW_SERVICE_NET39"
+                    },
+                    "virtualLinkDescId": "ZTE_VGW_SERVICE_NET39_virtualLink",
+                    "tenant": "ZTE_ONAP_PRO",
+                    "subnetworkResource": {
+                        "resourceId": "2ea2acc0-a4ed-44f8-9d31-9cdc9e3ebe62",
+                        "tenant": None,
+                        "vimId": "vmware_vio",
+                        "resourceName": "ZTE_VGW_SERVICE_NET39_s"
+                    }
+                }
+            ],
+            "affectedVirtualStorage": [
+
+            ],
+            "jobId": "",
+            "affectedcapacity": {
+                "vcp": "72",
+                "vm": "9",
+                "localStorage": "0",
+                "sharedStorage": "288",
+                "vMemory": "233472",
+                "port": "27"
+            },
+            "additionalParam": {
+                "vmList": [
+                    {
+                        "vmName": "ZTE_xGW_39_CDB_1",
+                        "vduId": "VDU_S_CDB_51"
+                    },
+                    {
+                        "vmName": "ZTE_xGW_39_CDB_2",
+                        "vduId": "VDU_S_CDB_51"
+                    },
+                    {
+                        "vmName": "ZTE_xGW_39_SLB_1",
+                        "vduId": "VDU_M_SLB_42"
+                    },
+                    {
+                        "vmName": "ZTE_xGW_39_SLB_2",
+                        "vduId": "VDU_M_SLB_42"
+                    },
+                    {
+                        "vmName": "ZTE_xGW_39_GSU_1",
+                        "vduId": "VDU_M_GSU_22"
+                    },
+                    {
+                        "vmName": "ZTE_xGW_39_GSU_2",
+                        "vduId": "VDU_M_GSU_22"
+                    },
+                    {
+                        "vmName": "ZTE_xGW_39_MPU_1",
+                        "vduId": "VDU_M_MPU_12"
+                    },
+                    {
+                        "vmName": "ZTE_xGW_39_PFU_1",
+                        "vduId": "VDU_M_PFU_32"
+                    },
+                    {
+                        "vmName": "ZTE_xGW_39_PFU_2",
+                        "vduId": "VDU_M_PFU_32"
+                    }
+                ]
+            },
+            "nfInstanceId": "1",
+            "affectedCp": [
+                {
+                    "changeType": "added",
+                    "cPInstanceId": "175767d4-c5bf-11e7-904d-fa163eee1ffe",
+                    "ownertype": 3,
+                    "cpdId": "CP_NO_0_CDB_ZTE_VGW_MGT_NET39",
+                    "portResource": {
+                        "resourceId": "3296b6d8-ebca-4d33-98f4-68d1bc63a3d0",
+                        "tenant": "ZTE_ONAP_PRO",
+                        "vimId": "vmware_vio",
+                        "resourceName": "CP_ZTE_xGW_39_CDB_1_ZTE_VGW_MGT_NET39_su1"
+                    },
+                    "cpInstanceName": "CP_ZTE_xGW_39_CDB_1_ZTE_VGW_MGT_NET39_su1",
+                    "ownerid": "17502154-c5bf-11e7-904d-fa163eee1ffe",
+                    "virtualLinkInstanceId": "1753b60c-c5bf-11e7-904d-fa163eee1ffe"
+                },
+                {
+                    "changeType": "added",
+                    "cPInstanceId": "1758181e-c5bf-11e7-904d-fa163eee1ffe",
+                    "ownertype": 3,
+                    "cpdId": "CP_NO_1_CDB_ZTE_VGW_SERVICE_NET39",
+                    "portResource": {
+                        "resourceId": "5e277a18-94de-469a-a336-2c01ab46387e",
+                        "tenant": "ZTE_ONAP_PRO",
+                        "vimId": "vmware_vio",
+                        "resourceName": "CP_ZTE_xGW_39_CDB_1_ZTE_VGW_SERVICE_NET39_su2"
+                    },
+                    "cpInstanceName": "CP_ZTE_xGW_39_CDB_1_ZTE_VGW_SERVICE_NET39_su2",
+                    "ownerid": "17502154-c5bf-11e7-904d-fa163eee1ffe",
+                    "virtualLinkInstanceId": "175472a4-c5bf-11e7-904d-fa163eee1ffe"
+                }
+            ],
+            "vnfdmodule": {
+                "volume_storages": [
+
+                ],
+                "inputs": {
+
+                },
+                "vdus": [
+                    {
+                        "volume_storages": [
+
+                        ],
+                        "description": "CDB",
+                        "vdu_id": "VDU_S_CDB_51",
+                        "local_storages": [
+                            "local_disk_root_10GB",
+                            "local_disk_ephemeral_14GB"
+                        ],
+                        "nfv_compute": {
+                            "flavor_extra_specs": {
+                                "hw:cpu_policy": "dedicated",
+                                "hw:mem_page_size": "large",
+                                "hw:numa_nodes": 1,
+                                "hw:cpu_max_sockets": 1
+                            },
+                            "mem_size": 8192,
+                            "num_cpus": 2
+                        },
+                        "artifacts": [
+
+                        ],
+                        "dependencies": [
+
+                        ],
+                        "vls": [
+                            "ZTE_VGW_MGT_NET39_virtualLink",
+                            "ZTE_VGW_SERVICE_NET39_virtualLink"
+                        ],
+                        "image_file": "image_51",
+                        "cps": [
+                            "CP_ZTE_xGW_39_CDB_1_ZTE_VGW_MGT_NET39_su1",
+                            "CP_ZTE_xGW_39_CDB_1_ZTE_VGW_SERVICE_NET39_su2"
+                        ],
+                        "properties": {
+                            "key_vd": True,
+                            "support_scaling": True,
+                            "vdu_type": "CDB",
+                            "name": "ZTE_xGW_39_CDB_1",
+                            "storage_policy": "Share_Service",
+                            "inject_network_address": True,
+                            "is_predefined": False,
+                            "location_info": {
+                                "vimid": "",
+                                "availability_zone": "",
+                                "vdc": "OG_OrganizationDC",
+                                "host": "",
+                                "tenant": "",
+                                "vapp": "xgw"
+                            },
+                            "use_shared_vm": False,
+                            "inject_data_list": [
+
+                            ],
+                            "allow_scale_updown": True,
+                            "action": "ADD",
+                            "watchdog": {
+
+                            },
+                            "template_id": 51,
+                            "manual_scale_select_vim": False,
+                            "config_drive": True
+                        }
+                    },
+                    {
+                        "volume_storages": [
+
+                        ],
+                        "description": "SLB",
+                        "vdu_id": "VDU_M_SLB_42",
+                        "local_storages": [
+                            "local_disk_root_10GB",
+                            "local_disk_ephemeral_14GB"
+                        ],
+                        "nfv_compute": {
+                            "flavor_extra_specs": {
+                                "hw:cpu_policy": "dedicated",
+                                "hw:mem_page_size": "large",
+                                "hw:numa_nodes": 1,
+                                "hw:cpu_max_sockets": 1
+                            },
+                            "mem_size": 24576,
+                            "num_cpus": 8
+                        },
+                        "artifacts": [
+
+                        ],
+                        "dependencies": [
+
+                        ],
+                        "vls": [
+                            "ZTE_VGW_MGT_NET39_virtualLink",
+                            "ZTE_VGW_SERVICE_NET39_virtualLink",
+                            "ZTE_NET39_virtualLink",
+                            "ZTE_VGW_GTP_NET39_virtualLink"
+                        ],
+                        "image_file": "image_51",
+                        "cps": [
+                            "CP_ZTE_xGW_39_SLB_1_ZTE_VGW_MGT_NET39_su1",
+                            "CP_ZTE_xGW_39_SLB_1_ZTE_VGW_SERVICE_NET39_su2",
+                            "CP_ZTE_xGW_39_SLB_1_zte-net-subnet393",
+                            "CP_ZTE_xGW_39_SLB_1_ZTE_VGW_GTP_NET39_su4"
+                        ],
+                        "properties": {
+                            "key_vd": True,
+                            "support_scaling": False,
+                            "vdu_type": "SLB",
+                            "name": "ZTE_xGW_39_SLB_1",
+                            "storage_policy": "Share_Service",
+                            "inject_network_address": True,
+                            "is_predefined": False,
+                            "location_info": {
+                                "vimid": "",
+                                "availability_zone": "",
+                                "vdc": "OG_OrganizationDC",
+                                "host": "",
+                                "tenant": "",
+                                "vapp": "xgw"
+                            },
+                            "use_shared_vm": False,
+                            "inject_data_list": [
+
+                            ],
+                            "allow_scale_updown": True,
+                            "action": "ADD",
+                            "watchdog": {
+
+                            },
+                            "template_id": 42,
+                            "manual_scale_select_vim": False,
+                            "config_drive": True
+                        }
+                    }
+                ],
+                "vcloud": [
+
+                ],
+                "extvirtuallink": "",
+                "server_groups": [
+
+                ],
+                "image_files": [
+                    {
+                        "properties": {
+                            "vendor": "zte",
+                            "name": "ZXUN_xGW_CGSL_QCOW2_OP_V6.17.10.B17.ova",
+                            "image_extra_specs": {
+
+                            },
+                            "disk_format": "vmdk",
+                            "file_url": "SoftwareImages/ZXUN-xGW-CGSL-QCOW2-V6.17.10.B17-image.tar.gz",
+                            "container_type": "bare",
+                            "version": "V6.17.10.B17.ova"
+                        },
+                        "image_file_id": "image_51",
+                        "description": "xgw image file"
+                    }
+                ],
+                "routers": [
+
+                ],
+                "local_storages": [
+                    {
+                        "local_storage_id": "local_disk_ephemeral_38GB",
+                        "description": "local_disk_ephemeral_38GB",
+                        "properties": {
+                            "disk_type": "ephemeral",
+                            "size": 38
+                        }
+                    },
+                    {
+                        "local_storage_id": "local_disk_root_10GB",
+                        "description": "local_disk_root_10GB",
+                        "properties": {
+                            "disk_type": "root",
+                            "size": 10
+                        }
+                    },
+                    {
+                        "local_storage_id": "local_disk_ephemeral_14GB",
+                        "description": "local_disk_ephemeral_14GB",
+                        "properties": {
+                            "disk_type": "ephemeral",
+                            "size": 14
+                        }
+                    }
+                ],
+                "vnf_flavours": [
+
+                ],
+                "vnf_exposed": {
+                    "external_cps": [
+                        {
+                            "key_name": "ZTE_NET39_virtualLink",
+                            "cpd_id": "CP_NO_3_PFU_ZTE_NET39"
+                        },
+                        {
+                            "key_name": "ZTE_NET39_virtualLink1",
+                            "cpd_id": "CP_NO_2_PFU_ZTE_NET39"
+                        },
+                        {
+                            "key_name": "ZTE_VGW_GTP_NET39_virtualLink",
+                            "cpd_id": "CP_NO_3_SLB_ZTE_VGW_GTP_NET39"
+                        },
+                        {
+                            "key_name": "ZTE_NET39_virtualLink2",
+                            "cpd_id": "CP_NO_2_SLB_ZTE_NET39"
+                        },
+                        {
+                            "key_name": "provider-zte_virtualLink",
+                            "cpd_id": "CP_NO_2_MPU_provider-zte"
+                        }
+                    ],
+                    "forward_cps": [
+                        {
+                            "key_name": "ZTE_VGW_GTP_NET39_forwarder",
+                            "cpd_id": "CP_NO_3_SLB_ZTE_VGW_GTP_NET39"
+                        },
+                        {
+                            "key_name": "ZTE_NET39_forwarder1",
+                            "cpd_id": "CP_NO_2_PFU_ZTE_NET39"
+                        },
+                        {
+                            "key_name": "ZTE_NET39_forwarder2",
+                            "cpd_id": "CP_NO_3_PFU_ZTE_NET39"
+                        },
+                        {
+                            "key_name": "provider-zte_forwarder",
+                            "cpd_id": "CP_NO_2_MPU_provider-zte"
+                        },
+                        {
+                            "key_name": "ZTE_NET39_forwarder",
+                            "cpd_id": "CP_NO_2_SLB_ZTE_NET39"
+                        }
+                    ]
+                },
+                "reserved_total": {
+                    "portnum": 27,
+                    "vcpunum": 72,
+                    "memorysize": 233472,
+                    "shdsize": 288,
+                    "isreserve": 0,
+                    "vmnum": 9
+                },
+                "policies": [
+                    {
+                        "scaling": [
+                            {
+                                "description": "zte vgw vnf policy",
+                                "policy_id": "Policy_1",
+                                "targets": [
+                                    "VDU_S_CDB_51",
+                                    "VDU_M_CDB_52",
+                                    "VDU_M_SLB_42",
+                                    "VDU_M_GSU_22",
+                                    "VDU_M_MPU_12",
+                                    "VDU_L_MPU_13",
+                                    "VDU_M_PFU_32",
+                                    "VDU_L_PFU_33"
+                                ],
+                                "properties": {
+                                    "policy_file": "Policies/zte-vcn-vnf-policy.xml"
+                                }
+                            }
+                        ],
+                        "healing": [
+
+                        ]
+                    }
+                ],
+                "plugins": [
+
+                ],
+                "services": [
+
+                ],
+                "vcenter": [
+
+                ],
+                "cps": [
+                    {
+                        "vl_id": "ZTE_VGW_MGT_NET39_virtualLink",
+                        "description": "ZTE_xGW_39_CDB_1_ZTE_VGW_MGT_NET39_s",
+                        "vdu_id": "VDU_S_CDB_51",
+                        "properties": {
+                            "service_port_created": False,
+                            "name": "ZTE_xGW_39_CDB_1_ZTE_VGW_MGT_NET39_s",
+                            "allowed_address_pairs": [
+
+                            ],
+                            "bandwidth": 0,
+                            "is_virtual": False,
+                            "guest_os_mt": 1400,
+                            "vnic_type": "normal",
+                            "floating_ip_address": {
+
+                            },
+                            "mac_address": "",
+                            "port_security_enabled": False,
+                            "ip_address": "192.168.39.247",
+                            "order": 1,
+                            "security_groups": [
+
+                            ],
+                            "bond": "none"
+                        },
+                        "cp_id": "CP_ZTE_xGW_39_CDB_1_ZTE_VGW_MGT_NET39_su1",
+                        "cpd_id": "CP_NO_0_CDB_ZTE_VGW_MGT_NET39"
+                    },
+                    {
+                        "vl_id": "ZTE_VGW_SERVICE_NET39_virtualLink",
+                        "description": "ZTE_xGW_39_CDB_1_ZTE_VGW_SERVICE_NET39_s",
+                        "vdu_id": "VDU_S_CDB_51",
+                        "properties": {
+                            "service_port_created": False,
+                            "name": "ZTE_xGW_39_CDB_1_ZTE_VGW_SERVICE_NET39_s",
+                            "allowed_address_pairs": [
+
+                            ],
+                            "bandwidth": 0,
+                            "is_virtual": False,
+                            "guest_os_mt": 1400,
+                            "vnic_type": "normal",
+                            "floating_ip_address": {
+
+                            },
+                            "mac_address": "",
+                            "port_security_enabled": False,
+                            "ip_address": "192.168.40.247",
+                            "order": 2,
+                            "security_groups": [
+
+                            ],
+                            "bond": "none"
+                        },
+                        "cp_id": "CP_ZTE_xGW_39_CDB_1_ZTE_VGW_SERVICE_NET39_su2",
+                        "cpd_id": "CP_NO_1_CDB_ZTE_VGW_SERVICE_NET39"
+                    }
+                ],
+                "vls": [
+                    {
+                        "route_external": False,
+                        "route_id": "",
+                        "vl_id": "ZTE_VGW_MGT_NET39_virtualLink",
+                        "description": "ZTE_VGW_MGT_NET39_s",
+                        "properties": {
+                            "gateway_ip": "",
+                            "vendor": "ZTE",
+                            "name": "ZTE_VGW_MGT_NET39_s",
+                            "location_info": {
+                                "vdc": "OG_OrganizationDC",
+                                "vimid": 1,
+                                "tenant": "",
+                                "vapp": "xgw"
+                            },
+                            "start_ip": "",
+                            "segmentation_id": "142",
+                            "dns_nameservers": [
+
+                            ],
+                            "vds_name": "",
+                            "mt": 1400,
+                            "is_predefined": True,
+                            "ip_version": 4,
+                            "netmask": "255.255.255.0",
+                            "end_ip": "",
+                            "host_routes": [
+
+                            ],
+                            "vlan_transparent": False,
+                            "physical_network": "physnet1",
+                            "cidr": "192.168.39.0/24",
+                            "dhcp_enabled": False,
+                            "network_name": "ZTE_VGW_MGT_NET39",
+                            "network_type": "vlan"
+                        }
+                    },
+                    {
+                        "route_external": False,
+                        "route_id": "",
+                        "vl_id": "ZTE_VGW_SERVICE_NET39_virtualLink",
+                        "description": "ZTE_VGW_SERVICE_NET39_s",
+                        "properties": {
+                            "gateway_ip": "",
+                            "vendor": "ZTE",
+                            "name": "ZTE_VGW_SERVICE_NET39_s",
+                            "location_info": {
+                                "vdc": "OG_OrganizationDC",
+                                "vimid": 1,
+                                "tenant": "",
+                                "vapp": "xgw"
+                            },
+                            "start_ip": "",
+                            "segmentation_id": "128",
+                            "dns_nameservers": [
+
+                            ],
+                            "vds_name": "",
+                            "mt": 1400,
+                            "is_predefined": True,
+                            "ip_version": 4,
+                            "netmask": "255.255.255.0",
+                            "end_ip": "",
+                            "host_routes": [
+
+                            ],
+                            "vlan_transparent": False,
+                            "physical_network": "physnet1",
+                            "cidr": "192.168.40.0/24",
+                            "dhcp_enabled": False,
+                            "network_name": "ZTE_VGW_SERVICE_NET39",
+                            "network_type": "vlan"
+                        }
+                    }
+                ],
+                "element_groups": [
+
+                ],
+                "metadata": {
+                    "plugin_info": "cn_plugin_3.0",
+                    "vendor": "ZTE",
+                    "is_shared": False,
+                    "adjust_vnf_capacity": True,
+                    "paas_project": "",
+                    "description": "VMware",
+                    "vnf_extend_type": "driver",
+                    "domain_type": "CN",
+                    "resview": "dync",
+                    "script_info": "",
+                    "service_category": "EPC",
+                    "version": "ZTE",
+                    "vnf_type": "SAE-GW",
+                    "cross_dc": False,
+                    "vmnumber_overquota_alarm": True,
+                    "vnfd_version": "V00000001",
+                    "id": "NFAR-ZTE-40-ZTE",
+                    "name": 40
+                }
+            },
+            "operation": "instantiate",
+            "vnfmInstanceId": "31f8934e-c785-4fa5-9205-c5f374ada982"
+        }
+    },
+    "vimid": "vmware_vio",
+    "timestamp": "20171110105828",
+    "affectedcp": [
+        {
+            "changeType": "added",
+            "cPInstanceId": "175767d4-c5bf-11e7-904d-fa163eee1ffe",
+            "ownertype": 3,
+            "cpdId": "CP_NO_0_CDB_ZTE_VGW_MGT_NET39",
+            "portResource": {
+                "resourceId": "3296b6d8-ebca-4d33-98f4-68d1bc63a3d0",
+                "tenant": "ZTE_ONAP_PRO",
+                "vimId": "vmware_vio",
+                "resourceName": "CP_ZTE_xGW_39_CDB_1_ZTE_VGW_MGT_NET39_su1"
+            },
+            "cpInstanceName": "CP_ZTE_xGW_39_CDB_1_ZTE_VGW_MGT_NET39_su1",
+            "ownerid": "17502154-c5bf-11e7-904d-fa163eee1ffe",
+            "virtualLinkInstanceId": "1753b60c-c5bf-11e7-904d-fa163eee1ffe"
+        },
+        {
+            "changeType": "added",
+            "cPInstanceId": "1758181e-c5bf-11e7-904d-fa163eee1ffe",
+            "ownertype": 3,
+            "cpdId": "CP_NO_1_CDB_ZTE_VGW_SERVICE_NET39",
+            "portResource": {
+                "resourceId": "5e277a18-94de-469a-a336-2c01ab46387e",
+                "tenant": "ZTE_ONAP_PRO",
+                "vimId": "vmware_vio",
+                "resourceName": "CP_ZTE_xGW_39_CDB_1_ZTE_VGW_SERVICE_NET39_su2"
+            },
+            "cpInstanceName": "CP_ZTE_xGW_39_CDB_1_ZTE_VGW_SERVICE_NET39_su2",
+            "ownerid": "17502154-c5bf-11e7-904d-fa163eee1ffe",
+            "virtualLinkInstanceId": "175472a4-c5bf-11e7-904d-fa163eee1ffe"
+        }
+    ],
+    "vmlist": [
+        {
+            "VMNumber": 1,
+            "vdutype": "CDB",
+            "VMFlavor": "VDU_S_CDB_51",
+            "VMIDlist": [
+                {
+                    "VMID": "e8ccc55a-3ebb-4e46-8260-dc4a1646ef4f",
+                    "VMName": "ZTE_xGW_39_CDB_1",
+                    "vimid": "vmware_vio",
+                    "tenant": "ZTE_ONAP_PRO"
+                }
+            ]
+        },
+        {
+            "VMNumber": 1,
+            "vdutype": "SLB",
+            "VMFlavor": "VDU_M_SLB_42",
+            "VMIDlist": [
+                {
+                    "VMID": "a9dd6a73-76ee-4d07-9554-08f14c17261f",
+                    "VMName": "ZTE_xGW_39_SLB_1",
+                    "vimid": "vmware_vio",
+                    "tenant": "ZTE_ONAP_PRO"
+                }
+            ]
+        }
+    ],
+    "EventType": 1,
+    "vnfmid": "31f8934e-c785-4fa5-9205-c5f374ada982",
+    "affectedvirtuallink ": [
+        {
+            "changeType": "added",
+            "virtualLinkInstanceId": "1753b60c-c5bf-11e7-904d-fa163eee1ffe",
+            "networkResource": {
+                "resourceId": "c55e0788-3683-48a1-b88a-a0cb5e05bd44",
+                "tenant": None,
+                "vimId": "vmware_vio",
+                "resourceName": "ZTE_VGW_MGT_NET39"
+            },
+            "virtualLinkDescId": "ZTE_VGW_MGT_NET39_virtualLink",
+            "tenant": "ZTE_ONAP_PRO",
+            "subnetworkResource": {
+                "resourceId": "33c8a03d-00c9-4c57-a348-26dae462b473",
+                "tenant": None,
+                "vimId": "vmware_vio",
+                "resourceName": "ZTE_VGW_MGT_NET39_s"
+            }
+        },
+        {
+            "changeType": "added",
+            "virtualLinkInstanceId": "175472a4-c5bf-11e7-904d-fa163eee1ffe",
+            "networkResource": {
+                "resourceId": "2d22b6e4-340b-45a8-8757-5206aa056b92",
+                "tenant": None,
+                "vimId": "vmware_vio",
+                "resourceName": "ZTE_VGW_SERVICE_NET39"
+            },
+            "virtualLinkDescId": "ZTE_VGW_SERVICE_NET39_virtualLink",
+            "tenant": "ZTE_ONAP_PRO",
+            "subnetworkResource": {
+                "resourceId": "2ea2acc0-a4ed-44f8-9d31-9cdc9e3ebe62",
+                "tenant": None,
+                "vimId": "vmware_vio",
+                "resourceName": "ZTE_VGW_SERVICE_NET39_s"
+            }
+        }
+    ]
+}