summaryrefslogtreecommitdiffstats
path: root/lcm/lcm/nf/serializers
diff options
context:
space:
mode:
authorBharath Thiruveedula <bharath.thiruveedula@verizon.com>2018-09-06 12:48:42 +0530
committerBharath Thiruveedula <bharath.thiruveedula@verizon.com>2018-09-06 12:50:40 +0530
commitc78cda3f14d09c2d15ed1985be684a73f34282c1 (patch)
treed70a87344a305dfad5741b46fd157d2a647ada44 /lcm/lcm/nf/serializers
parent8f59e8d4426a11ea3f2a16d0c0479786fd02a027 (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.py29
-rw-r--r--lcm/lcm/nf/serializers/notification_types.py128
-rw-r--r--lcm/lcm/nf/serializers/vnf_lcm_op_occ.py4
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(