improve enum and list in serializers 37/85737/1
authormaopengzhang <zhang.maopeng1@zte.com.cn>
Fri, 19 Apr 2019 02:20:42 +0000 (10:20 +0800)
committermaopengzhang <zhang.maopeng1@zte.com.cn>
Fri, 19 Apr 2019 02:20:42 +0000 (10:20 +0800)
improve enum and list in serializers

Change-Id: I714f39a3b0b03693f6c95b2e93ac7590dc3bbf94
Issue-ID: VFC-1241
Signed-off-by: maopengzhang <zhang.maopeng1@zte.com.cn>
lcm/ns/enum.py [new file with mode: 0644]
lcm/ns/serializers/sol/affected_nss.py
lcm/ns/serializers/sol/affected_pnfs.py
lcm/ns/serializers/sol/affected_saps.py
lcm/ns/serializers/sol/affected_vls.py
lcm/ns/serializers/sol/affected_vnffgs.py
lcm/ns/serializers/sol/affected_vnfs.py
lcm/ns/serializers/sol/cp_serializers.py
lcm/pub/utils/enumutil.py

diff --git a/lcm/ns/enum.py b/lcm/ns/enum.py
new file mode 100644 (file)
index 0000000..5e22f66
--- /dev/null
@@ -0,0 +1,142 @@
+# Copyright 2019 ZTE Corporation.
+#
+# 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 lcm.pub.utils.enumutil import enum
+
+ACTION_TYPE = enum(
+    START=1,
+    STOP=2,
+    REBOOT=3
+)
+AUTH_TYPE = enum(
+    BASIC="BASIC",
+    OAUTH2_CLIENT_CREDENTIALS="OAUTH2_CLIENT_CREDENTIALS",
+    TLS_CERT="TLS_CERT"
+)
+CHANGE_RESULT = enum(
+    COMPLETED='COMPLETED',
+    ROLLED_BACK='ROLLED_BACK',
+    FAILED='FAILED',
+    PARTIALLY_COMPLETED='PARTIALLY_COMPLETED'
+)
+CHANGE_TYPE = enum(
+    ADD='ADD',
+    DELETE='DELETE',
+    REMOVE='REMOVE',
+    INSTANTIATE='INSTANTIATE',
+    TERMINATE='TERMINATE',
+    SCALE='SCALE',
+    UPDATE='UPDATE',
+    CHANGE_FLAVOUR='CHANGE_FLAVOUR',
+    HEAL='HEAL',
+    OPERATE='OPERATE',
+    MODIFY='MODIFY',
+    MODIFY_INFORMATION='MODIFY_INFORMATION',
+    CHANGE_EXTERNAL_VNF_CONNECTIVITY='CHANGE_EXTERNAL_VNF_CONNECTIVITY',
+    ADD_LINK_PORT='ADD_LINK_PORT',
+    REMOVE_LINK_PORT='REMOVE_LINK_PORT'
+)
+GRANT_TYPE = enum(
+    INSTANTIATE="INSTANTIATE",
+    TERMINATE="TERMINATE",
+    HEAL_CREATE="Heal Create",
+    HEAL_RESTART="Heal Restart",
+    OPERATE="OPERATE"
+)
+HEAL_ACTION_TYPE = enum(
+    START="vmCreate",
+    RESTART="vmReset"
+)
+IPADDRESSES_TYPE = enum(
+    IPV4='IPV4',
+    IPV6='IPV6'
+)
+LCM_NOTIFICATION_STATUS = enum(
+    START="START",
+    RESULT="RESULT"
+)
+LAYER_PROTOCOL = enum(
+    IP_OVER_ETHERNET="IP_OVER_ETHERNET"
+)
+NS_COMPOMENT_TYPE = enum(
+    VNF="VNF",
+    PNF="PNF",
+    NS="NS"
+)
+NS_INST_STATUS = enum(
+    EMPTY='empty',
+    INSTANTIATING='instantiating',
+    TERMINATING='terminating',
+    ACTIVE='active',
+    FAILED='failed',
+    INACTIVE='inactive',
+    UPDATING='updating',
+    SCALING='scaling',
+    HEALING='healing'
+)
+OPERATION_STATE_TYPE = enum(
+    STARTING="STARTING",
+    PROCESSING="PROCESSING",
+    COMPLETED="COMPLETED",
+    FAILED_TEMP="FAILED_TEMP",
+    FAILED="FAILED",
+    ROLLING_BACK="ROLLING_BACK",
+    ROLLED_BACK="ROLLED_BACK"
+)
+OPERATION_TYPE = enum(
+    INSTANTIATE="INSTANTIATE",
+    SCALE="SCALE",
+    TERMINATE="TERMINATE",
+    UPDATE="UPDATE",
+    HEAL="HEAL",
+)
+OPNAME_FOR_CHANGE_NOTIFICATION_TYPE = enum(
+    VNF_INSTANTIATE="VNF_INSTANTIATE",
+    VNF_SCALE="VNF_SCALE",
+    VNF_SCALE_TO_LEVEL="VNF_SCALE_TO_LEVEL",
+    VNF_CHANGE_FLAVOUR="VNF_CHANGE_FLAVOUR",
+    VNF_TERMINATE="VNF_TERMINATE",
+    VNF_HEAL="VNF_HEAL",
+    VNF_OPERATE="VNF_OPERATE",
+    VNF_CHANGE_EXT_CONN="VNF_CHANGE_EXT_CONN",
+    VNF_MODIFY_INFO="VNF_MODIFY_INFO",
+    NS_INSTANTIATE="NS_INSTANTIATE",
+    NS_SCALE="NS_SCALE",
+    NS_UPDATE="NS_UPDATE",
+    NS_TERMINATE="NS_TERMINATE",
+    NS_HEAL="NS_HEAL"
+)
+OPOCC_STATUS_FOR_CHANGENOTIFICATION_TYPE = enum(
+    START="START",
+    COMPLETED="COMPLETED ",
+    PARTIALLY_COMPLETED="PARTIALLY_COMPLETED",
+    FAILED="FAILED",
+    ROLLED_BACK="ROLLED_BACK",
+)
+OWNER_TYPE = enum(
+    VNF=0,
+    VNFM=1,
+    NS=2
+)
+VNF_STATUS = enum(
+    NULL='null',
+    INSTANTIATING="instantiating",
+    INACTIVE='inactive',
+    ACTIVE="active",
+    FAILED="failed",
+    TERMINATING="terminating",
+    SCALING="scaling",
+    OPERATING="operating",
+    UPDATING="updating",
+    HEALING="healing"
+)
index c35b083..d4d6170 100644 (file)
@@ -1,4 +1,5 @@
 # Copyright (c) 2019, CMCC Technologies Co., Ltd.
+# Copyright (c) 2019, ZTE Corporation.
 
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 
 from rest_framework import serializers
 
-from lcm.ns import const
-
-
-CHANGE_TYPE = [
-    const.CHANGE_TYPES.ADD,
-    const.CHANGE_TYPES.REMOVE,
-    const.CHANGE_TYPES.INSTANTIATE,
-    const.CHANGE_TYPES.SCALE,
-    const.CHANGE_TYPES.UPDATE,
-    const.CHANGE_TYPES.HEAL,
-    const.CHANGE_TYPES.TERMINATE
-]
-
-CHANGE_RESULT = [
-    const.CHANGE_RESULTS.COMPLETED,
-    const.CHANGE_RESULTS.ROLLED_BACK,
-    const.CHANGE_RESULTS.FAILED,
-    const.CHANGE_RESULTS.PARTIALLY_COMPLETED
-]
+from lcm.ns.enum import CHANGE_TYPE, CHANGE_RESULT
+from lcm.pub.utils.enumutil import enum_to_list
 
 
 class AffectedNssSerializer(serializers.Serializer):
@@ -48,10 +32,10 @@ class AffectedNssSerializer(serializers.Serializer):
     changeType = serializers.ChoiceField(
         help_text="Signals the type of change",
         required=True,
-        choices=CHANGE_TYPE
+        choices=enum_to_list(CHANGE_TYPE)
     )
     changeResult = serializers.ChoiceField(
         help_text="Signals the result of change identified by the 'changeType' attribute.",
         required=True,
-        choices=CHANGE_RESULT
+        choices=enum_to_list(CHANGE_RESULT)
     )
index c89d4a4..071f96e 100644 (file)
@@ -1,4 +1,5 @@
 # Copyright (c) 2019, CMCC Technologies Co., Ltd.
+# Copyright (c) 2019, ZTE Corporation.
 
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 
 
 from rest_framework import serializers
-from lcm.ns.const import CHANGE_TYPES, CHANGE_RESULT
-
-
-CHANGE_TYPE = [
-    CHANGE_TYPES.ADD,
-    CHANGE_TYPES.REMOVE,
-    CHANGE_TYPES.MODIFY
-]
+from lcm.ns.enum import CHANGE_TYPE, CHANGE_RESULT
+from lcm.pub.utils.enumutil import enum_to_list
 
 
 class AffectedPnfsSerializer(serializers.Serializer):
@@ -47,10 +42,10 @@ class AffectedPnfsSerializer(serializers.Serializer):
     changeType = serializers.ChoiceField(
         help_text="Signals the type of change",
         required=True,
-        choices=CHANGE_TYPE
+        choices=enum_to_list(CHANGE_TYPE)
     )
     changeResult = serializers.ChoiceField(
         help_text="Signals the result of change identified by the 'changeType' attribute.",
         required=True,
-        choices=CHANGE_RESULT
+        choices=enum_to_list(CHANGE_RESULT)
     )
index b1091e5..7c33494 100644 (file)
@@ -1,5 +1,5 @@
 # Copyright (c) 2019, CMCC Technologies Co., Ltd.
-# Copyright 2019 ZTE Corporation.
+# Copyright (c) 2019, ZTE Corporation.
 
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 
 
 from rest_framework import serializers
-
-from lcm.ns import const
-
-
-CHANGE_TYPE = [
-    const.CHANGE_TYPES.ADD,
-    const.CHANGE_TYPES.REMOVE,
-    const.CHANGE_TYPES.MODIFY
-]
-
-CHANGE_RESULT = [
-    const.CHANGE_RESULTS.COMPLETED,
-    const.CHANGE_RESULTS.ROLLED_BACK,
-    const.CHANGE_RESULTS.FAILED
-]
+from lcm.ns.enum import CHANGE_TYPE, CHANGE_RESULT
+from lcm.pub.utils.enumutil import enum_to_list
 
 
 class AffectedSapsSerializer(serializers.Serializer):
@@ -47,10 +34,10 @@ class AffectedSapsSerializer(serializers.Serializer):
     changeType = serializers.ChoiceField(
         help_text="Signals the type of lifecycle change",
         required=True,
-        choices=CHANGE_TYPE
+        choices=enum_to_list(CHANGE_TYPE)
     )
     changeResult = serializers.ChoiceField(
         help_text="Signals the result of change identified by the 'changeType' attribute.",
         required=True,
-        choices=CHANGE_RESULT
+        choices=enum_to_list(CHANGE_RESULT)
     )
index 26e0c9b..a891e83 100644 (file)
@@ -1,4 +1,5 @@
 # Copyright (c) 2019, CMCC Technologies Co., Ltd.
+# Copyright (c) 2019, ZTE Corporation.
 
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 
 
 from rest_framework import serializers
-
-from lcm.ns.const import CHANGE_TYPES, CHANGE_RESULT
-
-CHANGE_TYPE = [
-    CHANGE_TYPES.ADD,
-    CHANGE_TYPES.DELETE,
-    CHANGE_TYPES.MODIFY,
-    CHANGE_TYPES.ADD_LINK_PORT,
-    CHANGE_TYPES.REMOVE_LINK_PORT
-]
+from lcm.ns.enum import CHANGE_TYPE, CHANGE_RESULT
+from lcm.pub.utils.enumutil import enum_to_list
 
 
 class AffectedVLsSerializer(serializers.Serializer):
@@ -38,10 +31,10 @@ class AffectedVLsSerializer(serializers.Serializer):
     changeType = serializers.ChoiceField(
         help_text="Signals the type of change",
         required=True,
-        choices=CHANGE_TYPE
+        choices=enum_to_list(CHANGE_TYPE)
     )
     changeResult = serializers.ChoiceField(
         help_text="Signals the result of change identified by the 'changeType' attribute.",
         required=True,
-        choices=CHANGE_RESULT
+        choices=enum_to_list(CHANGE_RESULT)
     )
index 3e5de99..9d00b4b 100644 (file)
@@ -1,5 +1,5 @@
 # Copyright (c) 2019, CMCC Technologies Co., Ltd.
-# Copyright 2019 ZTE Corporation.
+# Copyright (c) 2019, ZTE Corporation.
 
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 
 
 from rest_framework import serializers
-
-from lcm.ns import const
-
-
-CHANGE_TYPE = [
-    const.CHANGE_TYPES.ADD,
-    const.CHANGE_TYPES.REMOVE,
-    const.CHANGE_TYPES.MODIFY
-]
+from lcm.ns.enum import CHANGE_TYPE, CHANGE_RESULT
+from lcm.pub.utils.enumutil import enum_to_list
 
 
 class AffectedVnffgsSerializer(serializers.Serializer):
@@ -38,10 +31,10 @@ class AffectedVnffgsSerializer(serializers.Serializer):
     changeType = serializers.ChoiceField(
         help_text="Signals the type of lifecycle change.",
         required=True,
-        choices=CHANGE_TYPE
+        choices=enum_to_list(CHANGE_TYPE)
     )
     changeResult = serializers.ChoiceField(
         help_text="Signals the result of change identified by the 'changeType' attribute.",
         required=True,
-        choices=const.CHANGE_RESULT
+        choices=enum_to_list(CHANGE_RESULT)
     )
index ebb94eb..ff81797 100644 (file)
@@ -1,5 +1,5 @@
 # Copyright (c) 2019, CMCC Technologies Co., Ltd.
-# Copyright 2019 ZTE Corporation.
+# Copyright (c) 2019, ZTE Corporation.
 
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 
 from rest_framework import serializers
 
-from lcm.ns.const import CHANGE_TYPES, CHANGE_RESULT
+from lcm.ns.enum import CHANGE_TYPE, CHANGE_RESULT
+from lcm.pub.utils.enumutil import enum_to_list
 from lcm.ns.serializers.sol.ext_virtual_link_info import ExtVirtualLinkInfoSerializer
 from lcm.ns.serializers.sol.update_serializers import ModifyVnfInfoDataSerializer
 
-CHANGE_TYPE = [
-    CHANGE_TYPES.ADD,
-    CHANGE_TYPES.REMOVE,
-    CHANGE_TYPES.INSTANTIATE,
-    CHANGE_TYPES.TERMINATE,
-    CHANGE_TYPES.SCALE,
-    CHANGE_TYPES.CHANGE_FLAVOUR,
-    CHANGE_TYPES.HEAL,
-    CHANGE_TYPES.OPERATE,
-    CHANGE_TYPES.MODIFY_INFORMATION,
-    CHANGE_TYPES.CHANGE_EXTERNAL_VNF_CONNECTIVITY
-]
-
 
 class ChangedInfoSerializer(serializers.Serializer):
     changedVnfInfo = ModifyVnfInfoDataSerializer(
@@ -64,12 +52,12 @@ class AffectedVnfsSerializer(serializers.Serializer):
     changeType = serializers.ChoiceField(
         help_text="Signals the type of change",
         required=True,
-        choices=CHANGE_TYPE
+        choices=enum_to_list(CHANGE_TYPE)
     )
     changeResult = serializers.ChoiceField(
         help_text="Signals the result of change identified by the 'changeType' attribute.",
         required=True,
-        choices=CHANGE_RESULT
+        choices=enum_to_list(CHANGE_RESULT)
     )
     changedInfo = ChangedInfoSerializer(
         help_text="Information about the changed VNF instance information, including VNF configurable properties, if applicable.",
index bf93d9d..6a4de9b 100644 (file)
@@ -1,4 +1,5 @@
 # Copyright (c) 2019, CMCC Technologies Co., Ltd.
+# Copyright (c) 2019, ZTE Corporation.
 
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # limitations under the License.
 
 from rest_framework import serializers
-from lcm.ns.const import IPADDRESSES_TYPE_LIST
-
-
-LAYER_PROTOCOL = [
-    "IP_OVER_ETHERNET"
-]
+from lcm.ns.enum import LAYER_PROTOCOL, IPADDRESSES_TYPE
+from lcm.pub.utils.enumutil import enum_to_list
 
 
 class AddressRangeSerializer(serializers.Serializer):
@@ -34,7 +31,7 @@ class IpAddressesDataSerialzier(serializers.Serializer):
     type = serializers.ChoiceField(
         help_text="The type of the IP addresses.",
         required=True,
-        choices=IPADDRESSES_TYPE_LIST)
+        choices=enum_to_list(IPADDRESSES_TYPE))
     fixedAddresses = serializers.ListField(
         child=serializers.CharField(
             help_text="Fixed addresses to assign.",
@@ -57,7 +54,7 @@ class IpAddressesInfoSerialzier(serializers.Serializer):
     type = serializers.ChoiceField(
         help_text="The type of the IP addresses.",
         required=True,
-        choices=IPADDRESSES_TYPE_LIST)
+        choices=enum_to_list(IPADDRESSES_TYPE))
     addresses = serializers.ListField(
         help_text="An IPV4 or IPV6 address",
         required=False,
@@ -104,7 +101,7 @@ class IpOverEthernetAddressInfoSerializer(serializers.Serializer):
 class CpProtocolDataSerializer(serializers.Serializer):
     layerProtocol = serializers.ChoiceField(
         help_text="Identifier of layer(s) and protocol(s)",
-        choices=LAYER_PROTOCOL,
+        choices=enum_to_list(LAYER_PROTOCOL),
         required=True)
     ipOverEthernet = IpOverEthernetAddressDataSerializer(
         help_text="Network address data for IP over Ethernet to assign to the extCP instance.",
@@ -115,7 +112,7 @@ class CpProtocolDataSerializer(serializers.Serializer):
 class CpProtocolInfoSerializer(serializers.Serializer):
     layerProtocol = serializers.ChoiceField(
         help_text="Identifier of layer(s) and protocol(s)",
-        choices=LAYER_PROTOCOL,
+        choices=enum_to_list(LAYER_PROTOCOL),
         required=True)
     ipOverEthernet = IpOverEthernetAddressInfoSerializer(
         help_text="Network address data for IP over Ethernet to assign to the extCP instance.",
index 8b263db..e06c16b 100644 (file)
@@ -15,3 +15,7 @@
 
 def enum(**enums):
     return type('Enum', (), enums)
+
+
+def enum_to_list(e):
+    return [v for k, v in e.__dict__.iteritems() if not k.startswith("_")]