aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormaopengzhang <zhang.maopeng1@zte.com.cn>2019-04-19 10:20:42 +0800
committermaopengzhang <zhang.maopeng1@zte.com.cn>2019-04-19 10:20:42 +0800
commitad8970a1c5e207f180e45bb8e5c3ef0f2853614a (patch)
tree48665875587d1bb72e73a9758e18f4fe50615d00
parent81f56408de3b059b8345d3d1aeef084eaa5e8f49 (diff)
improve enum and list in serializers
improve enum and list in serializers Change-Id: I714f39a3b0b03693f6c95b2e93ac7590dc3bbf94 Issue-ID: VFC-1241 Signed-off-by: maopengzhang <zhang.maopeng1@zte.com.cn>
-rw-r--r--lcm/ns/enum.py142
-rw-r--r--lcm/ns/serializers/sol/affected_nss.py26
-rw-r--r--lcm/ns/serializers/sol/affected_pnfs.py15
-rw-r--r--lcm/ns/serializers/sol/affected_saps.py23
-rw-r--r--lcm/ns/serializers/sol/affected_vls.py17
-rw-r--r--lcm/ns/serializers/sol/affected_vnffgs.py17
-rw-r--r--lcm/ns/serializers/sol/affected_vnfs.py22
-rw-r--r--lcm/ns/serializers/sol/cp_serializers.py17
-rw-r--r--lcm/pub/utils/enumutil.py4
9 files changed, 183 insertions, 100 deletions
diff --git a/lcm/ns/enum.py b/lcm/ns/enum.py
new file mode 100644
index 00000000..5e22f66a
--- /dev/null
+++ b/lcm/ns/enum.py
@@ -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"
+)
diff --git a/lcm/ns/serializers/sol/affected_nss.py b/lcm/ns/serializers/sol/affected_nss.py
index c35b0830..d4d61706 100644
--- a/lcm/ns/serializers/sol/affected_nss.py
+++ b/lcm/ns/serializers/sol/affected_nss.py
@@ -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.
@@ -15,25 +16,8 @@
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)
)
diff --git a/lcm/ns/serializers/sol/affected_pnfs.py b/lcm/ns/serializers/sol/affected_pnfs.py
index c89d4a45..071f96e7 100644
--- a/lcm/ns/serializers/sol/affected_pnfs.py
+++ b/lcm/ns/serializers/sol/affected_pnfs.py
@@ -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.
@@ -14,14 +15,8 @@
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)
)
diff --git a/lcm/ns/serializers/sol/affected_saps.py b/lcm/ns/serializers/sol/affected_saps.py
index b1091e5e..7c334945 100644
--- a/lcm/ns/serializers/sol/affected_saps.py
+++ b/lcm/ns/serializers/sol/affected_saps.py
@@ -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.
@@ -15,21 +15,8 @@
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)
)
diff --git a/lcm/ns/serializers/sol/affected_vls.py b/lcm/ns/serializers/sol/affected_vls.py
index 26e0c9b1..a891e83a 100644
--- a/lcm/ns/serializers/sol/affected_vls.py
+++ b/lcm/ns/serializers/sol/affected_vls.py
@@ -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.
@@ -14,16 +15,8 @@
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)
)
diff --git a/lcm/ns/serializers/sol/affected_vnffgs.py b/lcm/ns/serializers/sol/affected_vnffgs.py
index 3e5de99b..9d00b4bb 100644
--- a/lcm/ns/serializers/sol/affected_vnffgs.py
+++ b/lcm/ns/serializers/sol/affected_vnffgs.py
@@ -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.
@@ -15,15 +15,8 @@
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)
)
diff --git a/lcm/ns/serializers/sol/affected_vnfs.py b/lcm/ns/serializers/sol/affected_vnfs.py
index ebb94ebf..ff817971 100644
--- a/lcm/ns/serializers/sol/affected_vnfs.py
+++ b/lcm/ns/serializers/sol/affected_vnfs.py
@@ -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.
@@ -16,23 +16,11 @@
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.",
diff --git a/lcm/ns/serializers/sol/cp_serializers.py b/lcm/ns/serializers/sol/cp_serializers.py
index bf93d9d9..6a4de9be 100644
--- a/lcm/ns/serializers/sol/cp_serializers.py
+++ b/lcm/ns/serializers/sol/cp_serializers.py
@@ -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.
@@ -13,12 +14,8 @@
# 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.",
diff --git a/lcm/pub/utils/enumutil.py b/lcm/pub/utils/enumutil.py
index 8b263db4..e06c16b7 100644
--- a/lcm/pub/utils/enumutil.py
+++ b/lcm/pub/utils/enumutil.py
@@ -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("_")]