2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 AT&T Intellectual Property. All rights
7 * ================================================================================
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
12 * http://www.apache.org/licenses/LICENSE-2.0
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
19 * ============LICENSE_END=========================================================
22 package org.openecomp.appc.lifecyclemanager.helper;
25 import org.openecomp.appc.domainmodel.lcm.VNFOperation;
26 import org.openecomp.appc.lifecyclemanager.objects.VNFOperationOutcome;
27 import org.openecomp.appc.statemachine.objects.Event;
28 import org.openecomp.appc.statemachine.objects.State;
29 import org.openecomp.appc.statemachine.objects.StateMachineMetadata;
32 public class MetadataReader {
34 private enum VNFStates {
35 Not_Instantiated, Instantiated, Configuring, Configured, Testing, Tested, Rebuilding, Restarting, Error, Running, Unknown, Terminating, Stopping, Stopped,
36 Backing_Up, Snapshotting, Software_Uploading, Upgrading, Rollbacking, Licensing, Migrating, Evacuating;
39 @SuppressWarnings("unused")
40 public StateMachineMetadata readMetadata(String vnfType){
41 State NOT_INSTANTIATED = new State(VNFStates.Not_Instantiated.toString());
42 State INSTANTIATED = new State(VNFStates.Instantiated.toString());
43 State CONFIGURING = new State(VNFStates.Configuring.toString());
44 State CONFIGURED = new State(VNFStates.Configured.toString());
45 State TESTING = new State(VNFStates.Testing.toString());
46 State TESTED = new State(VNFStates.Tested.toString());
47 State REBUILDING = new State(VNFStates.Rebuilding.toString());
48 State RESTARTING = new State(VNFStates.Restarting.toString());
49 State ERROR = new State(VNFStates.Error.toString());
50 State RUNNING = new State(VNFStates.Running.toString());
51 State UNKNOWN = new State(VNFStates.Unknown.toString());
52 State TERMINATING = new State(VNFStates.Terminating.toString());
53 State STOPPING = new State(VNFStates.Stopping.toString());
54 State STOPPED = new State(VNFStates.Stopped.toString());
56 // State PRE_UPGRADE_TESTING = new State(VNFStates.Pre_Upgrade_Testing.toString());
57 State BACKING_UP = new State(VNFStates.Backing_Up.toString());
58 State SNAPSHOTTING = new State(VNFStates.Snapshotting.toString());
59 State SOFTWARE_UPLOADING = new State(VNFStates.Software_Uploading.toString());
60 State UPGRADING = new State(VNFStates.Upgrading.toString());
61 State ROLLBACKING = new State(VNFStates.Rollbacking.toString());
63 State MIGRATING = new State(VNFStates.Migrating.toString());
64 State EVACUATING = new State(VNFStates.Evacuating.toString());
66 Event CONFIGURE = new Event(VNFOperation.Configure.toString());
67 Event HEALTHCHECK = new Event(VNFOperation.HealthCheck.toString());
68 Event TEST = new Event(VNFOperation.Test.toString());
69 Event START = new Event(VNFOperation.Start.toString());
70 Event TERMINATE = new Event(VNFOperation.Terminate.toString());
71 Event RESTART = new Event(VNFOperation.Restart.toString());
72 Event REBUILD = new Event(VNFOperation.Rebuild.toString());
73 Event STOP = new Event(VNFOperation.Stop.toString());
74 Event MODIFY_CONFIG = new Event(VNFOperation.ModifyConfig.toString());
75 Event BACKUP = new Event(VNFOperation.Backup.toString());
76 Event SNAPSHOT = new Event(VNFOperation.Snapshot.toString());
77 Event SOFTWARE_UPLOAD = new Event(VNFOperation.SoftwareUpload.toString());
78 Event LIVE_UPGRADE = new Event(VNFOperation.LiveUpgrade.toString());
79 Event ROLLBACK = new Event(VNFOperation.Rollback.toString());
80 Event SYNC = new Event(VNFOperation.Sync.toString());
81 Event AUDIT = new Event(VNFOperation.Audit.toString());
82 Event MIGRATE = new Event(VNFOperation.Migrate.toString());
83 Event EVACUATE = new Event(VNFOperation.Evacuate.toString());
85 Event LOCK = new Event(VNFOperation.Lock.toString());
86 Event UNLOCK = new Event(VNFOperation.Unlock.toString());
87 Event CHECKLOCK = new Event(VNFOperation.CheckLock.toString());
89 Event SUCCESS = new Event(VNFOperationOutcome.SUCCESS.toString());
90 Event FAILURE = new Event(VNFOperationOutcome.FAILURE.toString());
93 StateMachineMetadata.StateMachineMetadataBuilder builder = new StateMachineMetadata.StateMachineMetadataBuilder();
95 builder = builder.addState(NOT_INSTANTIATED);
96 builder = builder.addState(INSTANTIATED);
97 builder = builder.addState(CONFIGURING);
98 builder = builder.addState(CONFIGURED);
99 builder = builder.addState(TESTING);
100 builder = builder.addState(TESTED);
101 builder = builder.addState(REBUILDING);
102 builder = builder.addState(RESTARTING);
103 builder = builder.addState(ERROR);
104 builder = builder.addState(RUNNING);
105 builder = builder.addState(UNKNOWN);
106 builder = builder.addState(TERMINATING);
107 builder = builder.addState(STOPPING);
108 builder = builder.addState(STOPPED);
109 // builder = builder.addState(PRE_UPGRADE_TESTING);
110 builder = builder.addState(BACKING_UP);
111 builder = builder.addState(SNAPSHOTTING);
112 builder = builder.addState(SOFTWARE_UPLOADING);
113 builder = builder.addState(UPGRADING);
114 builder = builder.addState(ROLLBACKING);
115 builder = builder.addState(MIGRATING);
116 builder = builder.addState(EVACUATING);
118 builder = builder.addEvent(CONFIGURE);
119 builder = builder.addEvent(TEST);
120 builder = builder.addEvent(START);
121 builder = builder.addEvent(TERMINATE);
122 builder = builder.addEvent(RESTART);
123 builder = builder.addEvent(REBUILD);
124 builder = builder.addEvent(SUCCESS);
125 builder = builder.addEvent(FAILURE);
126 builder = builder.addEvent(STOP);
127 builder = builder.addEvent(MODIFY_CONFIG);
128 builder = builder.addEvent(HEALTHCHECK);
129 builder = builder.addEvent(BACKUP);
130 builder = builder.addEvent(SNAPSHOT);
131 builder = builder.addEvent(SOFTWARE_UPLOAD);
132 builder = builder.addEvent(LIVE_UPGRADE);
133 builder = builder.addEvent(ROLLBACK);
134 builder = builder.addEvent(SYNC);
135 builder = builder.addEvent(AUDIT);
136 builder = builder.addEvent(MIGRATE);
137 builder = builder.addEvent(EVACUATE);
138 builder = builder.addEvent(LOCK);
139 builder = builder.addEvent(UNLOCK);
140 builder = builder.addEvent(CHECKLOCK);
142 builder = builder.addTransition(INSTANTIATED,CONFIGURE,CONFIGURING);
143 builder = builder.addTransition(INSTANTIATED,TEST,TESTING);
144 builder = builder.addTransition(INSTANTIATED,START,RESTARTING);
145 builder = builder.addTransition(INSTANTIATED,TERMINATE,TERMINATING);
146 builder = builder.addTransition(INSTANTIATED,RESTART,RESTARTING);
147 builder = builder.addTransition(INSTANTIATED,REBUILD,REBUILDING);
148 builder = builder.addTransition(INSTANTIATED,STOP,STOPPING);
149 builder = builder.addTransition(INSTANTIATED,MODIFY_CONFIG,CONFIGURING);
150 builder = builder.addTransition(INSTANTIATED,HEALTHCHECK,TESTING);
151 builder = builder.addTransition(INSTANTIATED,BACKUP,BACKING_UP);
152 builder = builder.addTransition(INSTANTIATED,SNAPSHOT,SNAPSHOTTING);
153 builder = builder.addTransition(INSTANTIATED,SOFTWARE_UPLOAD,SOFTWARE_UPLOADING);
154 builder = builder.addTransition(INSTANTIATED,LIVE_UPGRADE,UPGRADING);
155 builder = builder.addTransition(INSTANTIATED,ROLLBACK,ROLLBACKING);
156 builder = builder.addTransition(INSTANTIATED,MIGRATE,MIGRATING);
157 builder = builder.addTransition(INSTANTIATED,EVACUATE,EVACUATING);
158 builder = builder.addTransition(INSTANTIATED,LOCK,INSTANTIATED);
159 builder = builder.addTransition(INSTANTIATED,UNLOCK,INSTANTIATED);
160 builder = builder.addTransition(INSTANTIATED,CHECKLOCK,INSTANTIATED);
162 builder = builder.addTransition(CONFIGURED,CONFIGURE,CONFIGURING);
163 builder = builder.addTransition(CONFIGURED,TEST,TESTING);
164 builder = builder.addTransition(CONFIGURED,START,RESTARTING);
165 builder = builder.addTransition(CONFIGURED,TERMINATE,TERMINATING);
166 builder = builder.addTransition(CONFIGURED,RESTART,RESTARTING);
167 builder = builder.addTransition(CONFIGURED,REBUILD,REBUILDING);
168 builder = builder.addTransition(CONFIGURED,STOP,STOPPING);
169 builder = builder.addTransition(CONFIGURED,MODIFY_CONFIG,CONFIGURING);
170 builder = builder.addTransition(CONFIGURED,HEALTHCHECK,TESTING);
171 builder = builder.addTransition(CONFIGURED,BACKUP,BACKING_UP);
172 builder = builder.addTransition(CONFIGURED,SNAPSHOT,SNAPSHOTTING);
173 builder = builder.addTransition(CONFIGURED,SOFTWARE_UPLOAD,SOFTWARE_UPLOADING);
174 builder = builder.addTransition(CONFIGURED,LIVE_UPGRADE,UPGRADING);
175 builder = builder.addTransition(CONFIGURED,ROLLBACK,ROLLBACKING);
176 builder = builder.addTransition(CONFIGURED,SYNC,CONFIGURED);
177 builder = builder.addTransition(CONFIGURED,AUDIT,CONFIGURED);
178 builder = builder.addTransition(CONFIGURED,MIGRATE,MIGRATING);
179 builder = builder.addTransition(CONFIGURED,EVACUATE,EVACUATING);
180 builder = builder.addTransition(CONFIGURED,LOCK,CONFIGURED);
181 builder = builder.addTransition(CONFIGURED,UNLOCK,CONFIGURED);
182 builder = builder.addTransition(CONFIGURED,CHECKLOCK,CONFIGURED);
184 builder = builder.addTransition(TESTED,CONFIGURE,CONFIGURING);
185 builder = builder.addTransition(TESTED,TEST,TESTING);
186 builder = builder.addTransition(TESTED,START,RESTARTING);
187 builder = builder.addTransition(TESTED,TERMINATE,TERMINATING);
188 builder = builder.addTransition(TESTED,RESTART,RESTARTING);
189 builder = builder.addTransition(TESTED,REBUILD,REBUILDING);
190 builder = builder.addTransition(TESTED,STOP,STOPPING);
191 builder = builder.addTransition(TESTED,MODIFY_CONFIG,CONFIGURING);
192 builder = builder.addTransition(TESTED,HEALTHCHECK,TESTING);
193 builder = builder.addTransition(TESTED,BACKUP,BACKING_UP);
194 builder = builder.addTransition(TESTED,SNAPSHOT,SNAPSHOTTING);
195 builder = builder.addTransition(TESTED,SOFTWARE_UPLOAD,SOFTWARE_UPLOADING);
196 builder = builder.addTransition(TESTED,LIVE_UPGRADE,UPGRADING);
197 builder = builder.addTransition(TESTED,ROLLBACK,ROLLBACKING);
198 builder = builder.addTransition(TESTED,SYNC,TESTED);
199 builder = builder.addTransition(TESTED,AUDIT,TESTED);
200 builder = builder.addTransition(TESTED,MIGRATE,MIGRATING);
201 builder = builder.addTransition(TESTED,EVACUATE,EVACUATING);
202 builder = builder.addTransition(TESTED,LOCK,TESTED);
203 builder = builder.addTransition(TESTED,UNLOCK,TESTED);
204 builder = builder.addTransition(TESTED,CHECKLOCK,TESTED);
206 builder = builder.addTransition(RUNNING,CONFIGURE,CONFIGURING);
207 builder = builder.addTransition(RUNNING,TEST,TESTING);
208 builder = builder.addTransition(RUNNING,START,RESTARTING);
209 builder = builder.addTransition(RUNNING,TERMINATE,TERMINATING);
210 builder = builder.addTransition(RUNNING,RESTART,RESTARTING);
211 builder = builder.addTransition(RUNNING,REBUILD,REBUILDING);
212 builder = builder.addTransition(RUNNING,STOP,STOPPING);
213 builder = builder.addTransition(RUNNING,MODIFY_CONFIG,CONFIGURING);
214 builder = builder.addTransition(RUNNING,HEALTHCHECK,TESTING);
215 builder = builder.addTransition(RUNNING,BACKUP,BACKING_UP);
216 builder = builder.addTransition(RUNNING,SNAPSHOT,SNAPSHOTTING);
217 builder = builder.addTransition(RUNNING,SOFTWARE_UPLOAD,SOFTWARE_UPLOADING);
218 builder = builder.addTransition(RUNNING,LIVE_UPGRADE,UPGRADING);
219 builder = builder.addTransition(RUNNING,ROLLBACK,ROLLBACKING);
220 builder = builder.addTransition(RUNNING,SYNC,RUNNING);
221 builder = builder.addTransition(RUNNING,AUDIT,RUNNING);
222 builder = builder.addTransition(RUNNING,MIGRATE,MIGRATING);
223 builder = builder.addTransition(RUNNING,EVACUATE,EVACUATING);
224 builder = builder.addTransition(RUNNING,LOCK,RUNNING);
225 builder = builder.addTransition(RUNNING,UNLOCK,RUNNING);
226 builder = builder.addTransition(RUNNING,CHECKLOCK,RUNNING);
228 builder = builder.addTransition(ERROR,CONFIGURE,CONFIGURING);
229 builder = builder.addTransition(ERROR,TEST,TESTING);
230 builder = builder.addTransition(ERROR,START,RESTARTING);
231 builder = builder.addTransition(ERROR,TERMINATE,TERMINATING);
232 builder = builder.addTransition(ERROR,RESTART,RESTARTING);
233 builder = builder.addTransition(ERROR,REBUILD,REBUILDING);
234 builder = builder.addTransition(ERROR,STOP,STOPPING);
235 builder = builder.addTransition(ERROR,MODIFY_CONFIG,CONFIGURING);
236 builder = builder.addTransition(ERROR,HEALTHCHECK,TESTING);
237 builder = builder.addTransition(ERROR,BACKUP,BACKING_UP);
238 builder = builder.addTransition(ERROR,SNAPSHOT,SNAPSHOTTING);
239 builder = builder.addTransition(ERROR,SOFTWARE_UPLOAD,SOFTWARE_UPLOADING);
240 builder = builder.addTransition(ERROR,LIVE_UPGRADE,UPGRADING);
241 builder = builder.addTransition(ERROR,ROLLBACK,ROLLBACKING);
242 builder = builder.addTransition(ERROR,SYNC,ERROR);
243 builder = builder.addTransition(ERROR,AUDIT,ERROR);
244 builder = builder.addTransition(ERROR,MIGRATE,MIGRATING);
245 builder = builder.addTransition(ERROR,EVACUATE,EVACUATING);
246 builder = builder.addTransition(ERROR,LOCK,ERROR);
247 builder = builder.addTransition(ERROR,UNLOCK,ERROR);
248 builder = builder.addTransition(ERROR,CHECKLOCK,ERROR);
250 builder = builder.addTransition(UNKNOWN,CONFIGURE,CONFIGURING);
251 builder = builder.addTransition(UNKNOWN,TEST,TESTING);
252 builder = builder.addTransition(UNKNOWN,START,RESTARTING);
253 builder = builder.addTransition(UNKNOWN,TERMINATE,TERMINATING);
254 builder = builder.addTransition(UNKNOWN,RESTART,RESTARTING);
255 builder = builder.addTransition(UNKNOWN,REBUILD,REBUILDING);
256 builder = builder.addTransition(UNKNOWN,STOP,STOPPING);
257 builder = builder.addTransition(UNKNOWN,MODIFY_CONFIG,CONFIGURING);
258 builder = builder.addTransition(UNKNOWN,HEALTHCHECK,TESTING);
259 builder = builder.addTransition(UNKNOWN,BACKUP,BACKING_UP);
260 builder = builder.addTransition(UNKNOWN,SNAPSHOT,SNAPSHOTTING);
261 builder = builder.addTransition(UNKNOWN,SOFTWARE_UPLOAD,SOFTWARE_UPLOADING);
262 builder = builder.addTransition(UNKNOWN,LIVE_UPGRADE,UPGRADING);
263 builder = builder.addTransition(UNKNOWN,ROLLBACK,ROLLBACKING);
264 builder = builder.addTransition(UNKNOWN,SYNC,UNKNOWN);
265 builder = builder.addTransition(UNKNOWN,AUDIT,UNKNOWN);
266 builder = builder.addTransition(UNKNOWN,MIGRATE,MIGRATING);
267 builder = builder.addTransition(UNKNOWN,EVACUATE,EVACUATING);
268 builder = builder.addTransition(UNKNOWN,LOCK,UNKNOWN);
269 builder = builder.addTransition(UNKNOWN,UNLOCK,UNKNOWN);
270 builder = builder.addTransition(UNKNOWN,CHECKLOCK,UNKNOWN);
272 builder = builder.addTransition(STOPPED,CONFIGURE,CONFIGURING);
273 builder = builder.addTransition(STOPPED,TEST,TESTING);
274 builder = builder.addTransition(STOPPED,START,RESTARTING);
275 builder = builder.addTransition(STOPPED,TERMINATE,TERMINATING);
276 builder = builder.addTransition(STOPPED,RESTART,RESTARTING);
277 builder = builder.addTransition(STOPPED,REBUILD,REBUILDING);
278 builder = builder.addTransition(STOPPED,MODIFY_CONFIG,CONFIGURING);
279 builder = builder.addTransition(STOPPED,HEALTHCHECK,TESTING);
280 builder = builder.addTransition(STOPPED,BACKUP,BACKING_UP);
281 builder = builder.addTransition(STOPPED,SNAPSHOT,SNAPSHOTTING);
282 builder = builder.addTransition(STOPPED,SOFTWARE_UPLOAD,SOFTWARE_UPLOADING);
283 builder = builder.addTransition(STOPPED,LIVE_UPGRADE,UPGRADING);
284 builder = builder.addTransition(STOPPED,ROLLBACK,ROLLBACKING);
285 builder = builder.addTransition(STOPPED,MIGRATE,MIGRATING);
286 builder = builder.addTransition(STOPPED,EVACUATE,EVACUATING);
287 builder = builder.addTransition(STOPPED,LOCK,STOPPED);
288 builder = builder.addTransition(STOPPED,UNLOCK,STOPPED);
289 builder = builder.addTransition(STOPPED,CHECKLOCK,STOPPED);
291 builder = builder.addTransition(CONFIGURING,SUCCESS,CONFIGURED);
292 builder = builder.addTransition(CONFIGURING,FAILURE,ERROR);
294 builder = builder.addTransition(TESTING,SUCCESS,TESTED);
295 builder = builder.addTransition(TESTING,FAILURE,ERROR);
297 builder = builder.addTransition(RESTARTING,SUCCESS,RUNNING);
298 builder = builder.addTransition(RESTARTING,FAILURE,ERROR);
300 builder = builder.addTransition(TERMINATING,SUCCESS,NOT_INSTANTIATED);
301 builder = builder.addTransition(TERMINATING,FAILURE,ERROR);
303 builder = builder.addTransition(REBUILDING,SUCCESS,RUNNING);
304 builder = builder.addTransition(REBUILDING,FAILURE,ERROR);
306 builder = builder.addTransition(STOPPING,SUCCESS,STOPPED);
307 builder = builder.addTransition(STOPPING,FAILURE,ERROR);
309 // builder = builder.addTransition(PRE_UPGRADE_TESTING,SUCCESS,TESTED);
310 // builder = builder.addTransition(PRE_UPGRADE_TESTING,FAILURE,ERROR);
312 builder = builder.addTransition(BACKING_UP,SUCCESS,RUNNING);
313 builder = builder.addTransition(BACKING_UP,FAILURE,ERROR);
315 builder = builder.addTransition(SNAPSHOTTING,SUCCESS,RUNNING);
316 builder = builder.addTransition(SNAPSHOTTING,FAILURE,ERROR);
318 builder = builder.addTransition(SOFTWARE_UPLOADING,SUCCESS,RUNNING);
319 builder = builder.addTransition(SOFTWARE_UPLOADING,FAILURE,ERROR);
321 builder = builder.addTransition(UPGRADING,SUCCESS,RUNNING);
322 builder = builder.addTransition(UPGRADING,FAILURE,ERROR);
324 builder = builder.addTransition(ROLLBACKING,SUCCESS,RUNNING);
325 builder = builder.addTransition(ROLLBACKING,FAILURE,ERROR);
327 builder = builder.addTransition(MIGRATING,SUCCESS,RUNNING);
328 builder = builder.addTransition(MIGRATING,FAILURE,ERROR);
330 builder = builder.addTransition(EVACUATING,SUCCESS,RUNNING);
331 builder = builder.addTransition(EVACUATING,FAILURE,ERROR);
333 return builder.build();