diff options
author | 2018-09-06 12:48:42 +0530 | |
---|---|---|
committer | 2018-09-06 12:50:40 +0530 | |
commit | c78cda3f14d09c2d15ed1985be684a73f34282c1 (patch) | |
tree | d70a87344a305dfad5741b46fd157d2a647ada44 /lcm/lcm/nf/serializers | |
parent | 8f59e8d4426a11ea3f2a16d0c0479786fd02a027 (diff) |
Add notification system util in GVNFM
Change-Id: I1489722e30121aebb69b524cdaafaa44729784a2
Signed-off-by: Bharath Thiruveedula<bharath.thiruveedula@verizon.com>
Issue-ID: VFC-1096
Diffstat (limited to 'lcm/lcm/nf/serializers')
-rw-r--r-- | lcm/lcm/nf/serializers/lccn_filter_data.py | 29 | ||||
-rw-r--r-- | lcm/lcm/nf/serializers/notification_types.py | 128 | ||||
-rw-r--r-- | lcm/lcm/nf/serializers/vnf_lcm_op_occ.py | 4 |
3 files changed, 131 insertions, 30 deletions
diff --git a/lcm/lcm/nf/serializers/lccn_filter_data.py b/lcm/lcm/nf/serializers/lccn_filter_data.py index 547ba094..b016a4f0 100644 --- a/lcm/lcm/nf/serializers/lccn_filter_data.py +++ b/lcm/lcm/nf/serializers/lccn_filter_data.py @@ -15,34 +15,7 @@ from rest_framework import serializers from vnf_instance_subscription_filter import VnfInstanceSubscriptionFilter - - -NOTIFICATION_TYPES = [ - "VnfLcmOperationOccurrenceNotification", - "VnfIdentifierCreationNotification", - "VnfIdentifierDeletionNotification"] - -LCM_OPERATION_TYPES = [ - "INSTANTIATE", - "SCALE", - "SCALE_TO_LEVEL", - "CHANGE_FLAVOUR", - "TERMINATE", - "HEAL", - "OPERATE", - "CHANGE_EXT_CONN", - "MODIFY_INFO" -] - -LCM_OPERATION_STATE_TYPES = [ - "STARTING", - "PROCESSING", - "COMPLETED", - "FAILED_TEMP", - "FAILED", - "ROLLING_BACK", - "ROLLED_BACK" -] +from lcm.nf.const import NOTIFICATION_TYPES, LCM_OPERATION_TYPES, LCM_OPERATION_STATE_TYPES class LifeCycleChangeNotificationsFilter(serializers.Serializer): diff --git a/lcm/lcm/nf/serializers/notification_types.py b/lcm/lcm/nf/serializers/notification_types.py new file mode 100644 index 00000000..5ee5eb03 --- /dev/null +++ b/lcm/lcm/nf/serializers/notification_types.py @@ -0,0 +1,128 @@ +# Copyright (C) 2018 Verizon. All Rights Reserved +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from rest_framework import serializers + +from affected_vnfcs import AffectedVnfcsSerializer +from affected_vls import AffectedVLsSerializer +from affected_storages import AffectedStoragesSerializer +from lcm.nf.const import LCM_OPERATION_TYPES, LCM_OPERATION_STATE_TYPES +from link import LinkSerializer +from response import ProblemDetailsSerializer +from ext_virtual_link_info import ExtVirtualLinkInfoSerializer +from vnf_info_modifications import VnfInfoModificationsSerializer + + +class LinksSerializer(serializers.Serializer): + vnfInstance = LinkSerializer( + help_text="Link to the resource representing the VNF instance to " + "which the notified change applies.", + required=True, + allow_null=False) + subscription = LinkSerializer( + help_text="Link to the related subscription.", + required=True, + allow_null=False) + vnfLcmOpOcc = LinkSerializer( + help_text="Link to the VNF lifecycle management operation" + "occurrence that this notification is related to. Shall be" + "present if there is a related lifecycle operation occurance.", + required=False, + allow_null=False) + + +class VnfLcmOperationOccurrenceNotification(serializers.Serializer): + id = serializers.CharField( + help_text="Identifier of this notification", + max_length=255, + required=True, + allow_null=False) + notificationType = serializers.CharField( + help_text="Type of the notification", + max_length=50, + required=True, + allow_null=False) + subscriptionId = serializers.CharField( + help_text="Identifier for the subscription", + required=False) + timeStamp = serializers.CharField( + help_text="Date-time of the generation of the notification.", + required=True) + notificationStatus = serializers.ChoiceField( + help_text="Indicates whether this notification reports about the start" + "of a lifecycle operation or the result of a lifecycle" + "operation", + choices=["START", "RESULT"], + required=True) + operationState = serializers.ChoiceField( + choices=LCM_OPERATION_STATE_TYPES, + help_text="The state of the VNF LCM operation occurrence. ", + required=True) + vnfInstanceId = serializers.CharField( + help_text="The identifier of the VNF instance affected. ", + required=True) + operation = serializers.ChoiceField( + help_text="The lifecycle management operation.", + required=True, + choices=LCM_OPERATION_TYPES) + isAutomaticInvocation = serializers.BooleanField( + help_text="Set to true if this VNF LCM operation occurrence has" + "been triggered by an automated procedure inside the" + "VNFM. Otherwise False", + required=True) + vnfLcmOpOccId = serializers.CharField( + help_text="The identifier of the VNF lifecycle management" + "operation occurrence associated to the notification.", + required=True) + affectedVnfcs = AffectedVnfcsSerializer( + help_text="Information about VNFC instances that were affected " + + "during the lifecycle operation.", + required=False, + many=True + ) + affectedVirtualLinks = AffectedVLsSerializer( + help_text="Information about VL instances that were affected " + + "during the lifecycle operation. ", + required=False, + many=True + ) + affectedVirtualStorages = AffectedStoragesSerializer( + help_text="Information about virtualised storage instances that " + + "were affected during the lifecycle operation", + required=False, + many=True + ) + changedInfo = VnfInfoModificationsSerializer( + help_text="Information about the changed VNF instance information, " + + "including VNF configurable properties", + required=False, + allow_null=True) + changedExtConnectivity = ExtVirtualLinkInfoSerializer( + help_text="Information about changed external connectivity, if this " + + "notification represents the result of a lifecycle operation occurrence. " + + "Shall be present if the 'notificationStatus' is set to 'RESULT' and the " + + "'operation' is set to 'CHANGE_EXT_CONN'. Shall be absent otherwise.", + many=True, + required=False, + allow_null=True) + error = ProblemDetailsSerializer( + help_text="If 'operationState' is 'FAILED_TEMP' or 'FAILED' or " + + "'PROCESSING' or 'ROLLING_BACK' and previous value of 'operationState' " + + "was 'FAILED_TEMP' this attribute shall be present ", + allow_null=True, + required=False + ) + _links = LinksSerializer( + help_text="Links to resources related to this resource.", + required=True) diff --git a/lcm/lcm/nf/serializers/vnf_lcm_op_occ.py b/lcm/lcm/nf/serializers/vnf_lcm_op_occ.py index f2ef664d..a2b50196 100644 --- a/lcm/lcm/nf/serializers/vnf_lcm_op_occ.py +++ b/lcm/lcm/nf/serializers/vnf_lcm_op_occ.py @@ -18,6 +18,7 @@ from rest_framework import serializers from affected_vnfcs import AffectedVnfcsSerializer from affected_vls import AffectedVLsSerializer from affected_storages import AffectedStoragesSerializer +from link import LinkSerializer from response import ProblemDetailsSerializer from ext_virtual_link_info import ExtVirtualLinkInfoSerializer from vnf_info_modifications import VnfInfoModificationsSerializer @@ -68,9 +69,8 @@ class ResourceChangesSerializer(serializers.Serializer): class LcmOpLinkSerializer(serializers.Serializer): - self = serializers.CharField( + self = LinkSerializer( help_text="URI of this resource.", - max_length=255, required=True, allow_null=False) vnfInstance = serializers.CharField( |