diff options
7 files changed, 46 insertions, 32 deletions
diff --git a/gvnfmadapter/driver/interfaces/serializers/heal_request.py b/gvnfmadapter/driver/interfaces/serializers/heal_request.py index c212769..9a3a240 100644 --- a/gvnfmadapter/driver/interfaces/serializers/heal_request.py +++ b/gvnfmadapter/driver/interfaces/serializers/heal_request.py @@ -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( diff --git a/gvnfmadapter/driver/interfaces/serializers/lccn_subscription_request.py b/gvnfmadapter/driver/interfaces/serializers/lccn_subscription_request.py index 88797bc..8f5cfe8 100644 --- a/gvnfmadapter/driver/interfaces/serializers/lccn_subscription_request.py +++ b/gvnfmadapter/driver/interfaces/serializers/lccn_subscription_request.py @@ -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.", diff --git a/gvnfmadapter/driver/interfaces/serializers/problem_details.py b/gvnfmadapter/driver/interfaces/serializers/problem_details.py index fefc403..19639ce 100644 --- a/gvnfmadapter/driver/interfaces/serializers/problem_details.py +++ b/gvnfmadapter/driver/interfaces/serializers/problem_details.py @@ -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.', diff --git a/gvnfmadapter/driver/interfaces/serializers/subscription_authentication.py b/gvnfmadapter/driver/interfaces/serializers/subscription_authentication.py index d9129ed..37a0195 100644 --- a/gvnfmadapter/driver/interfaces/serializers/subscription_authentication.py +++ b/gvnfmadapter/driver/interfaces/serializers/subscription_authentication.py @@ -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 ) diff --git a/gvnfmadapter/driver/interfaces/serializers/vnf_instance_subscription_filter.py b/gvnfmadapter/driver/interfaces/serializers/vnf_instance_subscription_filter.py index c46dc50..33fecbb 100644 --- a/gvnfmadapter/driver/interfaces/serializers/vnf_instance_subscription_filter.py +++ b/gvnfmadapter/driver/interfaces/serializers/vnf_instance_subscription_filter.py @@ -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 ) diff --git a/gvnfmadapter/driver/interfaces/tests.py b/gvnfmadapter/driver/interfaces/tests.py index 72f47b8..c4e1791 100644 --- a/gvnfmadapter/driver/interfaces/tests.py +++ b/gvnfmadapter/driver/interfaces/tests.py @@ -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": { diff --git a/gvnfmadapter/driver/interfaces/views.py b/gvnfmadapter/driver/interfaces/views.py index 3a62b24..d246080 100644 --- a/gvnfmadapter/driver/interfaces/views.py +++ b/gvnfmadapter/driver/interfaces/views.py @@ -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={ |