Fix vfc-svnfm-driver convert bug
[vfc/nfvo/driver/vnfm/svnfm.git] / zte / vmanager / driver / interfaces / tests.py
index 19a3b95..715e2d9 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,21 +115,25 @@ 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':{}}}
+        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")
@@ -128,6 +141,7 @@ class InterfacesTest(TestCase):
         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,6 +162,7 @@ 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("/api/ztevmanagerdriver/v1/ztevnfmid/vnfs/vbras_innstance_id/terminate")
@@ -156,6 +171,7 @@ class InterfacesTest(TestCase):
         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,6 +192,7 @@ 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("/api/ztevmanagerdriver/v1/ztevnfmid/vnfs/vbras_innstance_id")
@@ -185,6 +202,7 @@ class InterfacesTest(TestCase):
         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("/api/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,19 +267,23 @@ 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("/api/ztevmanagerdriver/v1/resource/grant",
@@ -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",
@@ -334,7 +350,7 @@ class InterfacesTest(TestCase):
                         "vmflavor": "CMP",
                         "vmnumber": "3",
                         "vmidlist ": ["vmuuid"]}]}
-        mock_call_req.side_effect = [r1, r2]
+        mock_call_req.side_effect = [r1]
         response = self.client.post("/api/ztevmanagerdriver/v1/vnfs/lifecyclechangesnotification",
                                     data=json.dumps(req_data), content_type='application/json')
 
@@ -343,10 +359,10 @@ class InterfacesTest(TestCase):
         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 +377,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 +412,74 @@ 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)
 
-        response = self.client.post("/api/ztevmanagerdriver/v1/vnfmid/vnfs/101/scale",
-                                   data=json.dumps(scale_vnf_data), content_type='application/json')
+    # @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''}
 
-        self.assertEqual(str(status.HTTP_202_ACCEPTED), response.status_code)
+        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]
 
-        expect_resp_data = {"jobid":"801","nfInstanceId":"101"}
-        self.assertDictEqual(expect_resp_data, response.data)
-    '''
+        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("/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)