fix get job error 56/72356/2
authormaopengzhang <zhang.maopeng1@zte.com.cn>
Sat, 10 Nov 2018 05:29:02 +0000 (13:29 +0800)
committermaopengzhang <zhang.maopeng1@zte.com.cn>
Sat, 10 Nov 2018 05:49:45 +0000 (13:49 +0800)
fix get job error

Change-Id: I6a9bff556f9ae9d1dd1e2ee62323241fe9c59a1f
Issue-ID: VFC-1158
Signed-off-by: maopengzhang <zhang.maopeng1@zte.com.cn>
gvnfmadapter/driver/interfaces/serializers/heal_request.py
gvnfmadapter/driver/interfaces/serializers/lccn_subscription_request.py
gvnfmadapter/driver/interfaces/serializers/problem_details.py
gvnfmadapter/driver/interfaces/serializers/subscription_authentication.py
gvnfmadapter/driver/interfaces/serializers/vnf_instance_subscription_filter.py
gvnfmadapter/driver/interfaces/tests.py
gvnfmadapter/driver/interfaces/views.py

index c212769..9a3a240 100644 (file)
@@ -20,10 +20,12 @@ class AffectedVm(serializers.Serializer):
     vduid = serializers.CharField(help_text="Vdu id", required=True)
     vmname = serializers.CharField(help_text="Vm name", required=True)
 
+
 class VnfHealRequestSerializer(serializers.Serializer):
     action = serializers.CharField(help_text="Action for NS heal", required=True, allow_null=True)
     affectedvm = AffectedVm(help_text="Get the vm information to be healed", required=True)
 
+
 class HealVnfRequestSerializerToVnfm(serializers.Serializer):
     cause = serializers.CharField(help_text="Cause of NS heal", required=False, allow_null=True)
     additionalParams = serializers.DictField(
index 88797bc..8f5cfe8 100644 (file)
@@ -17,6 +17,7 @@ from rest_framework import serializers
 from driver.interfaces.serializers.lccn_filter import LifeCycleChangeNotificationsFilterSerializer
 from driver.interfaces.serializers.subscription_authentication import SubscriptionAuthenticationSerializer
 
+
 class LccnSubscriptionRequestSerializer(serializers.Serializer):
     callbackUri = serializers.URLField(
         help_text="The URI of the endpoint to send the notification to.",
index fefc403..19639ce 100644 (file)
@@ -14,6 +14,7 @@
 
 from rest_framework import serializers
 
+
 class ProblemDetailsSerializer(serializers.Serializer):
     type = serializers.CharField(
         help_text='A URI reference according to IETF RFC 3986 [5] that identifies the problem type.',
index d9129ed..37a0195 100644 (file)
@@ -46,12 +46,16 @@ class BasicAuthSerializer(serializers.Serializer):
     userName = serializers.CharField(
         help_text="Username to be used in HTTP Basic authentication.",
         max_length=255,
-        required=False
+        required=False,
+        allow_null=True,
+        allow_blank=True
     )
     password = serializers.CharField(
         help_text="Password to be used in HTTP Basic authentication.",
         max_length=255,
-        required=False
+        required=False,
+        allow_null=True,
+        allow_blank=True
     )
 
 
@@ -65,10 +69,12 @@ class SubscriptionAuthenticationSerializer(serializers.Serializer):
     )
     paramsBasic = BasicAuthSerializer(
         help_text="Parameters for authentication/authorization using BASIC.",
-        required=False
+        required=False,
+        allow_null=True
     )
     paramsOauth2ClientCredentials = OAuthCredentialsSerializer(
         help_text="Parameters for authentication/authorization \
         using OAUTH2_CLIENT_CREDENTIALS.",
-        required=False
+        required=False,
+        allow_null=True
     )
index c46dc50..33fecbb 100644 (file)
@@ -61,20 +61,24 @@ class VnfInstanceSubscriptionFilterSerializer(serializers.Serializer):
         help_text="VNF instances that were created \
         based on a VNFD identified by one of the vnfdId values",
         child=serializers.UUIDField(),
-        required=False
+        required=False,
+        allow_null=True
     )
     vnfInstanceIds = serializers.ListField(
         help_text="VNF instance IDs that has to be matched",
         child=serializers.UUIDField(),
-        required=False
+        required=False,
+        allow_null=True
     )
     vnfInstanceNames = serializers.ListField(
         help_text="VNF Instance names that has to be matched",
         child=serializers.CharField(max_length=255, required=True),
-        required=False
+        required=False,
+        allow_null=True
     )
     vnfProductsFromProviders = VnfProductsProvidersSerializer(
         help_text="match VNF instances \
         that belong to VNF products from certain providers.",
-        required=False
+        required=False,
+        allow_null=True
     )
index 72f47b8..c4e1791 100644 (file)
@@ -197,24 +197,22 @@ class InterfacesTest(TestCase):
             }
         }
         resp_body = {
-            "ResponseInfo": {
-                "vnfLcOpId": "NF-CREATE-11-ec6c2f2a-9f48-11e6-9405-fa163e91c2f9",
-                "responseDescriptor": {
-                    "responseId": 3,
-                    "progress": 40,
-                    "lcmOperationStatus": "PROCESSING",
-                    "statusDescription": "OMC VMs are decommissioned in VIM",
-                    "errorCode": "null",
-                    "responseHistoryList": [
-                        {
-                            "status": "error",
-                            "progress": 255,
-                            "errorcode": "",
-                            "responseid": 20,
-                            "statusdescription": "'JsonParser' object has no attribute 'parser_info'"
-                        }
-                    ]
-                }
+            "jobId": "NF-CREATE-11-ec6c2f2a-9f48-11e6-9405-fa163e91c2f9",
+            "responseDescriptor": {
+                "responseId": 3,
+                "progress": 40,
+                "status": "PROCESSING",
+                "statusDescription": "OMC VMs are decommissioned in VIM",
+                "errorCode": "null",
+                "responseHistoryList": [
+                    {
+                        "status": "error",
+                        "progress": 255,
+                        "errorcode": "",
+                        "responseid": 20,
+                        "statusdescription": "'JsonParser' object has no attribute 'parser_info'"
+                    }
+                ]
             }
         }
         r1 = [0, json.JSONEncoder().encode(vnfm_info), '200']
@@ -222,6 +220,7 @@ class InterfacesTest(TestCase):
         mock_call_req.side_effect = [r1, r2]
         response = self.client.get("/api/gvnfmdriver/v1/%s/jobs/%s?responseId=0"
                                    % (vnfm_info["vnfmId"], expected_body["jobId"]))
+        print response
         self.assertEqual(status.HTTP_200_OK, response.status_code)
         self.assertDictEqual(expected_body, response.data)
 
@@ -654,7 +653,7 @@ class InterfacesTest(TestCase):
             "filter": {
                 "notificationTypes": ["VnfLcmOperationOccurrenceNotification"],
                 "operationTypes": ["INSTANTIATE"],
-                "operationStates": ["STARTING"],
+                "operationStates": ["STARTING"]
             },
             "callbackUri": "http://aurl.com",
             "authentication": {
index 3a62b24..d246080 100644 (file)
@@ -220,13 +220,13 @@ class VnfOperInfo(APIView):
                 raise GvnfmDriverException('Failed to query vnf operation status.')
             resp_data = json.JSONDecoder().decode(ret[1])
             logger.debug("[%s]resp_data=%s", fun_name(), resp_data)
-            ResponseInfo = ignorcase_get(resp_data, "ResponseInfo")
-            responseDescriptor = ignorcase_get(ResponseInfo, "responseDescriptor")
-            status_tmp = ignorcase_get(responseDescriptor, "lcmOperationStatus")
-            del responseDescriptor["lcmOperationStatus"]
+            ResponseInfo = ignorcase_get(resp_data, "ResponseInfo")
+            responseDescriptor = ignorcase_get(resp_data, "responseDescriptor")
+            status_tmp = ignorcase_get(responseDescriptor, "status")
+            del responseDescriptor["lcmOperationStatus"]
             responseDescriptor["status"] = status_tmp
             operation_data = {
-                "jobId": ignorcase_get(ResponseInfo, "vnfLcOpId"),
+                "jobId": ignorcase_get(resp_data, "jobId"),
                 "responseDescriptor": responseDescriptor
             }
             return Response(data=operation_data, status=status.HTTP_200_OK)
@@ -409,6 +409,7 @@ class VnfPkgsInfo(APIView):
             logger.error(traceback.format_exc())
             return Response(data={'error': 'unexpected exception'}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
 
+
 class QuerySingleVnfLcmOpOcc(APIView):
     @swagger_auto_schema(
         responses={