add sub api in lcm
[vfc/nfvo/lcm.git] / lcm / ns / const.py
1 # Copyright 2016-2017 ZTE Corporation.
2 #
3 # Licensed under the Apache License, Version 2.0 (the "License");
4 # you may not use this file except in compliance with the License.
5 # You may obtain a copy of the License at
6 #
7 #         http://www.apache.org/licenses/LICENSE-2.0
8 #
9 # Unless required by applicable law or agreed to in writing, software
10 # distributed under the License is distributed on an "AS IS" BASIS,
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 # See the License for the specific language governing permissions and
13 # limitations under the License.
14 from lcm.pub.utils.enumutil import enum
15
16 OWNER_TYPE = enum(VNF=0, VNFM=1, NS=2)
17
18 NS_INST_STATUS = enum(EMPTY='empty', INSTANTIATING='instantiating', TERMINATING='terminating',
19                       ACTIVE='active', FAILED='failed', INACTIVE='inactive', UPDATING='updating',
20                       SCALING='scaling', HEALING='healing')
21
22 SERVICE_TYPE = 'NetworkService'
23 SERVICE_ROLE = 'NetworkService'
24
25 HEAL_ACTION_TYPE = enum(START="vmCreate", RESTART="vmReset")
26 ACTION_TYPE = enum(START=1, STOP=2, REBOOT=3)
27 GRANT_TYPE = enum(INSTANTIATE="INSTANTIATE", TERMINATE="TERMINATE", HEAL_CREATE="Heal Create",
28                   HEAL_RESTART="Heal Restart", OPERATE="OPERATE")
29 VNF_STATUS = enum(NULL='null', INSTANTIATING="instantiating", INACTIVE='inactive', ACTIVE="active",
30                   FAILED="failed", TERMINATING="terminating", SCALING="scaling", OPERATING="operating",
31                   UPDATING="updating", HEALING="healing")
32
33 OPERATION_TYPE = enum(
34     INSTANTIATE="INSTANTIATE",
35     SCALE="SCALE",
36     TERMINATE="TERMINATE",
37     UPDATE="UPDATE",
38     HEAL="HEAL",
39 )
40
41
42 LCM_NOTIFICATION_STATUS = enum(START="START", RESULT="RESULT")
43
44 OPERATION_STATE_TYPE = enum(
45     STARTING="STARTING",
46     PROCESSING="PROCESSING",
47     COMPLETED="COMPLETED",
48     FAILED_TEMP="FAILED_TEMP",
49     FAILED="FAILED",
50     ROLLING_BACK="ROLLING_BACK",
51     ROLLED_BACK="ROLLED_BACK"
52 )
53
54 COMPOMENT_TYPE = enum(
55     VNF="VNF",
56     PNF="PNF",
57     NS="NS",
58 )
59
60 OPName_For_Change_Notification_Type = enum(
61     VNF_INSTANTIATE="VNF_INSTANTIATE", VNF_SCALE="VNF_SCALE", VNF_SCALE_TO_LEVEL="VNF_SCALE_TO_LEVEL",
62     VNF_CHANGE_FLAVOUR="VNF_CHANGE_FLAVOUR", VNF_TERMINATE="VNF_TERMINATE", VNF_HEAL="VNF_HEAL",
63     VNF_OPERATE="VNF_OPERATE", VNF_CHANGE_EXT_CONN="VNF_CHANGE_EXT_CONN", VNF_MODIFY_INFO="VNF_MODIFY_INFO",
64     NS_INSTANTIATE="NS_INSTANTIATE", NS_SCALE="NS_SCALE", NS_UPDATE="NS_UPDATE", NS_TERMINATE="NS_TERMINATE",
65     NS_HEAL="NS_HEAL",
66 )
67
68 OpOcc_Status_For_ChangeNotification_Type = enum(
69     START="START", COMPLETED="COMPLETED ", PARTIALLY_COMPLETED="PARTIALLY_COMPLETED", FAILED="FAILED",
70     ROLLED_BACK="ROLLED_BACK",
71 )
72
73 AUTH_TYPES = ["BASIC", "OAUTH2_CLIENT_CREDENTIALS", "TLS_CERT"]
74
75 BASIC = "BASIC"
76
77 OAUTH2_CLIENT_CREDENTIALS = "OAUTH2_CLIENT_CREDENTIALS"
78
79 # CHANGE_TYPE = enum(
80 #     ADDED='ADDED',
81 #     REMOVED='REMOVED',
82 #     MODIFIED='MODIFIED',
83 #     TEMPORARY='TEMPORARY',
84 #     LINK_PORT_ADDED='LINK_PORT_ADDED',
85 #     LINK_PORT_REMOVED='LINK_PORT_REMOVED'
86 # )
87
88 # RESOURCE_MAP = {'Storage': 'volumn', 'Network': 'network', 'SubNetwork': 'subnet', 'Port': 'port',
89 #                 'Flavour': 'flavor', 'Vm': 'vm'}
90
91 ROOT_URI = "api/nslcm/v1/subscriptions/"
92
93 LCCNNOTIFICATION = "NsLcmOperationOccurrenceNotification"
94
95 NOTIFICATION_TYPES = [
96     "NsLcmOperationOccurrenceNotification", "NsIdentifierCreationNotification",
97     "NsIdentifierDeletionNotification",
98     "NsChangeNotification",
99 ]
100
101 NS_LCM_OP_TYPES = [
102     OPERATION_TYPE.INSTANTIATE,
103     OPERATION_TYPE.SCALE,
104     OPERATION_TYPE.TERMINATE,
105     OPERATION_TYPE.HEAL,
106     OPERATION_TYPE.UPDATE,
107 ]
108
109 LCM_OPERATION_STATE_TYPES = [
110     OPERATION_STATE_TYPE.STARTING,
111     OPERATION_STATE_TYPE.PROCESSING,
112     OPERATION_STATE_TYPE.COMPLETED,
113     OPERATION_STATE_TYPE.FAILED_TEMP,
114     OPERATION_STATE_TYPE.FAILED,
115     OPERATION_STATE_TYPE.ROLLING_BACK,
116     OPERATION_STATE_TYPE.ROLLED_BACK
117 ]
118
119 NS_COMPOMENT_TYPE = [
120     COMPOMENT_TYPE.VNF,
121     COMPOMENT_TYPE.PNF,
122     COMPOMENT_TYPE.NS,
123 ]
124
125
126 LCM_OPName_For_Change_Notification_Type = [
127     OPName_For_Change_Notification_Type.VNF_INSTANTIATE,
128     OPName_For_Change_Notification_Type.VNF_SCALE,
129     OPName_For_Change_Notification_Type.VNF_SCALE_TO_LEVEL,
130     OPName_For_Change_Notification_Type.VNF_CHANGE_FLAVOUR,
131     OPName_For_Change_Notification_Type.VNF_TERMINATE,
132     OPName_For_Change_Notification_Type.VNF_HEAL,
133     OPName_For_Change_Notification_Type.VNF_OPERATE,
134     OPName_For_Change_Notification_Type.VNF_CHANGE_EXT_CONN,
135     OPName_For_Change_Notification_Type.VNF_MODIFY_INFO,
136     OPName_For_Change_Notification_Type.NS_INSTANTIATE,
137     OPName_For_Change_Notification_Type.NS_SCALE,
138     OPName_For_Change_Notification_Type.NS_UPDATE,
139     OPName_For_Change_Notification_Type.NS_TERMINATE,
140     OPName_For_Change_Notification_Type.NS_HEAL,
141 ]
142
143 LCM_OpOcc_Status_For_ChangeNotification_Type = [
144     OpOcc_Status_For_ChangeNotification_Type.START,
145     OpOcc_Status_For_ChangeNotification_Type.COMPLETED,
146     OpOcc_Status_For_ChangeNotification_Type.PARTIALLY_COMPLETED,
147     OpOcc_Status_For_ChangeNotification_Type.FAILED,
148     OpOcc_Status_For_ChangeNotification_Type.ROLLED_BACK,
149 ]