Merging in bug fixes
[appc.git] / appc-dispatcher / appc-lifecycle-management / appc-lifecycle-management-core / src / main / java / org / openecomp / appc / lifecyclemanager / helper / MetadataReader.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * ONAP : APPC
4  * ================================================================================
5  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Copyright (C) 2017 Amdocs
8  * =============================================================================
9  * Licensed under the Apache License, Version 2.0 (the "License");
10  * you may not use this file except in compliance with the License.
11  * You may obtain a copy of the License at
12  * 
13  *      http://www.apache.org/licenses/LICENSE-2.0
14  * 
15  * Unless required by applicable law or agreed to in writing, software
16  * distributed under the License is distributed on an "AS IS" BASIS,
17  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18  * See the License for the specific language governing permissions and
19  * limitations under the License.
20  * 
21  * ECOMP is a trademark and service mark of AT&T Intellectual Property.
22  * ============LICENSE_END=========================================================
23  */
24
25 package org.openecomp.appc.lifecyclemanager.helper;
26
27
28 import org.openecomp.appc.domainmodel.lcm.VNFOperation;
29 import org.openecomp.appc.lifecyclemanager.objects.VNFOperationOutcome;
30 import org.openecomp.appc.statemachine.objects.Event;
31 import org.openecomp.appc.statemachine.objects.State;
32 import org.openecomp.appc.statemachine.objects.StateMachineMetadata;
33
34
35 public class MetadataReader {
36
37     private enum VNFStates {
38         Not_Instantiated, Instantiated, Configuring, Configured, Testing, Tested, Rebuilding, Restarting, Starting, Error, Running, Unknown, Terminating, Stopping, Stopped,
39         Backing_Up, Snapshotting, Software_Uploading, Upgrading, Rollbacking, Licensing, Migrating, Evacuating , NOT_ORCHESTRATED("NOT ORCHESTRATED"),Created;
40
41         String stateName;
42
43         VNFStates(String name){
44             this.stateName = name;
45         }
46
47         VNFStates(){
48             this.stateName = name();
49         }
50
51         public String toString(){
52             return this.stateName.toLowerCase();
53         }
54     }
55
56     @SuppressWarnings("unused")
57     public StateMachineMetadata readMetadata(String vnfType){
58         State NOT_INSTANTIATED = new State(VNFStates.Not_Instantiated.toString());
59         State INSTANTIATED = new State(VNFStates.Instantiated.toString());
60         State CONFIGURING = new State(VNFStates.Configuring.toString());
61         State CONFIGURED = new State(VNFStates.Configured.toString());
62         State TESTING = new State(VNFStates.Testing.toString());
63         State TESTED = new State(VNFStates.Tested.toString());
64         State REBUILDING = new State(VNFStates.Rebuilding.toString());
65         State RESTARTING = new State(VNFStates.Restarting.toString());
66         State STARTING = new State(VNFStates.Starting.toString());
67         State ERROR = new State(VNFStates.Error.toString());
68         State RUNNING = new State(VNFStates.Running.toString());
69         State UNKNOWN = new State(VNFStates.Unknown.toString());
70         State TERMINATING = new State(VNFStates.Terminating.toString());
71         State STOPPING = new State(VNFStates.Stopping.toString());
72         State STOPPED = new State(VNFStates.Stopped.toString());
73         State NOT_ORCHESTRATED = new State(VNFStates.NOT_ORCHESTRATED.toString());
74
75         State BACKING_UP = new State(VNFStates.Backing_Up.toString());
76         State SNAPSHOTTING = new State(VNFStates.Snapshotting.toString());
77         State SOFTWARE_UPLOADING = new State(VNFStates.Software_Uploading.toString());
78         State UPGRADING = new State(VNFStates.Upgrading.toString());
79         State ROLLBACKING = new State(VNFStates.Rollbacking.toString());
80
81         State MIGRATING = new State(VNFStates.Migrating.toString());
82         State EVACUATING = new State(VNFStates.Evacuating.toString());
83         State CREATED= new State(VNFStates.Created.toString());
84
85         Event CONFIGURE = new Event(VNFOperation.Configure.toString());
86         Event HEALTHCHECK = new Event(VNFOperation.HealthCheck.toString());
87         Event TEST = new Event(VNFOperation.Test.toString());
88         Event START = new Event(VNFOperation.Start.toString());
89         Event TERMINATE = new Event(VNFOperation.Terminate.toString());
90         Event RESTART = new Event(VNFOperation.Restart.toString());
91         Event REBUILD = new Event(VNFOperation.Rebuild.toString());
92         Event STOP = new Event(VNFOperation.Stop.toString());
93         Event CONFIG_MODIFY = new Event(VNFOperation.ConfigModify.toString());
94         Event CONFIG_SCALEOUT = new Event(VNFOperation.ConfigScaleOut.toString());
95         Event CONFIG_RESTORE = new Event(VNFOperation.ConfigRestore.toString());
96         Event BACKUP = new Event(VNFOperation.Backup.toString());
97         Event SNAPSHOT = new Event(VNFOperation.Snapshot.toString());
98         Event SOFTWARE_UPLOAD = new Event(VNFOperation.SoftwareUpload.toString());
99         Event LIVE_UPGRADE = new Event(VNFOperation.LiveUpgrade.toString());
100         Event ROLLBACK = new Event(VNFOperation.Rollback.toString());
101         Event SYNC = new Event(VNFOperation.Sync.toString());
102         Event AUDIT = new Event(VNFOperation.Audit.toString());
103         Event MIGRATE = new Event(VNFOperation.Migrate.toString());
104         Event EVACUATE = new Event(VNFOperation.Evacuate.toString());
105         Event CONFIG_BACKUP = new Event(VNFOperation.ConfigBackup.toString());
106         Event CONFIG_BACKUP_DELETE = new Event(VNFOperation.ConfigBackupDelete.toString());
107         Event CONFIG_EXPORT = new Event(VNFOperation.ConfigExport.toString());
108
109         Event LOCK = new Event(VNFOperation.Lock.toString());
110         Event UNLOCK = new Event(VNFOperation.Unlock.toString());
111         Event CHECKLOCK = new Event(VNFOperation.CheckLock.toString());
112
113         Event SUCCESS = new Event(VNFOperationOutcome.SUCCESS.toString());
114         Event FAILURE = new Event(VNFOperationOutcome.FAILURE.toString());
115
116
117         StateMachineMetadata.StateMachineMetadataBuilder builder = new StateMachineMetadata.StateMachineMetadataBuilder();
118
119         builder = builder.addState(NOT_INSTANTIATED);
120         builder = builder.addState(INSTANTIATED);
121         builder = builder.addState(CONFIGURING);
122         builder = builder.addState(CONFIGURED);
123         builder = builder.addState(TESTING);
124         builder = builder.addState(TESTED);
125         builder = builder.addState(REBUILDING);
126         builder = builder.addState(RESTARTING);
127         builder = builder.addState(STARTING);
128         builder = builder.addState(ERROR);
129         builder = builder.addState(RUNNING);
130         builder = builder.addState(UNKNOWN);
131         builder = builder.addState(TERMINATING);
132         builder = builder.addState(STOPPING);
133         builder = builder.addState(STOPPED);
134         builder = builder.addState(BACKING_UP);
135         builder = builder.addState(SNAPSHOTTING);
136         builder = builder.addState(SOFTWARE_UPLOADING);
137         builder = builder.addState(UPGRADING);
138         builder = builder.addState(ROLLBACKING);
139         builder = builder.addState(MIGRATING);
140         builder = builder.addState(EVACUATING);
141         builder = builder.addState(NOT_ORCHESTRATED);
142         builder = builder.addState(CREATED);
143
144         builder = builder.addEvent(CONFIGURE);
145         builder = builder.addEvent(TEST);
146         builder = builder.addEvent(START);
147         builder = builder.addEvent(TERMINATE);
148         builder = builder.addEvent(RESTART);
149         builder = builder.addEvent(REBUILD);
150         builder = builder.addEvent(SUCCESS);
151         builder = builder.addEvent(FAILURE);
152         builder = builder.addEvent(STOP);
153         builder = builder.addEvent(CONFIG_MODIFY);
154         builder = builder.addEvent(CONFIG_SCALEOUT);
155         builder = builder.addEvent(CONFIG_RESTORE);
156         builder = builder.addEvent(HEALTHCHECK);
157         builder = builder.addEvent(BACKUP);
158         builder = builder.addEvent(SNAPSHOT);
159         builder = builder.addEvent(SOFTWARE_UPLOAD);
160         builder = builder.addEvent(LIVE_UPGRADE);
161         builder = builder.addEvent(ROLLBACK);
162         builder = builder.addEvent(SYNC);
163         builder = builder.addEvent(AUDIT);
164         builder = builder.addEvent(MIGRATE);
165         builder = builder.addEvent(EVACUATE);
166         builder = builder.addEvent(LOCK);
167         builder = builder.addEvent(UNLOCK);
168         builder = builder.addEvent(CHECKLOCK);
169         builder = builder.addEvent(CONFIG_BACKUP);
170         builder = builder.addEvent(CONFIG_BACKUP_DELETE);
171         builder = builder.addEvent(CONFIG_EXPORT);
172
173         builder = builder.addTransition(NOT_ORCHESTRATED,CONFIGURE,CONFIGURING);
174         builder = builder.addTransition(NOT_ORCHESTRATED,TEST,TESTING);
175         builder = builder.addTransition(NOT_ORCHESTRATED,START,STARTING);
176         builder = builder.addTransition(NOT_ORCHESTRATED,TERMINATE,TERMINATING);
177         builder = builder.addTransition(NOT_ORCHESTRATED,RESTART,RESTARTING);
178         builder = builder.addTransition(NOT_ORCHESTRATED,REBUILD,REBUILDING);
179         builder = builder.addTransition(NOT_ORCHESTRATED,STOP,STOPPING);
180         builder = builder.addTransition(NOT_ORCHESTRATED,CONFIG_MODIFY,CONFIGURING);
181         builder = builder.addTransition(NOT_ORCHESTRATED,CONFIG_SCALEOUT,CONFIGURING);
182         builder = builder.addTransition(NOT_ORCHESTRATED,CONFIG_RESTORE,CONFIGURING);
183         builder = builder.addTransition(NOT_ORCHESTRATED,HEALTHCHECK,TESTING);
184         builder = builder.addTransition(NOT_ORCHESTRATED,BACKUP,BACKING_UP);
185         builder = builder.addTransition(NOT_ORCHESTRATED,SNAPSHOT,SNAPSHOTTING);
186         builder = builder.addTransition(NOT_ORCHESTRATED,SOFTWARE_UPLOAD,SOFTWARE_UPLOADING);
187         builder = builder.addTransition(NOT_ORCHESTRATED,LIVE_UPGRADE,UPGRADING);
188         builder = builder.addTransition(NOT_ORCHESTRATED,ROLLBACK,ROLLBACKING);
189         builder = builder.addTransition(NOT_ORCHESTRATED,MIGRATE,MIGRATING);
190         builder = builder.addTransition(NOT_ORCHESTRATED,EVACUATE,EVACUATING);
191         builder = builder.addTransition(NOT_ORCHESTRATED,LOCK,NOT_ORCHESTRATED);
192         builder = builder.addTransition(NOT_ORCHESTRATED,UNLOCK,NOT_ORCHESTRATED);
193         builder = builder.addTransition(NOT_ORCHESTRATED,CHECKLOCK,NOT_ORCHESTRATED);
194         builder = builder.addTransition(NOT_ORCHESTRATED,CONFIG_BACKUP,NOT_ORCHESTRATED);
195
196         builder = builder.addTransition(INSTANTIATED,CONFIGURE,CONFIGURING);
197         builder = builder.addTransition(INSTANTIATED,TEST,TESTING);
198         builder = builder.addTransition(INSTANTIATED,START,STARTING);
199         builder = builder.addTransition(INSTANTIATED,TERMINATE,TERMINATING);
200         builder = builder.addTransition(INSTANTIATED,RESTART,RESTARTING);
201         builder = builder.addTransition(INSTANTIATED,REBUILD,REBUILDING);
202         builder = builder.addTransition(INSTANTIATED,STOP,STOPPING);
203         builder = builder.addTransition(INSTANTIATED,CONFIG_MODIFY,CONFIGURING);
204         builder = builder.addTransition(INSTANTIATED,CONFIG_SCALEOUT,CONFIGURING);
205         builder = builder.addTransition(INSTANTIATED,CONFIG_RESTORE,CONFIGURING);
206         builder = builder.addTransition(INSTANTIATED,HEALTHCHECK,TESTING);
207         builder = builder.addTransition(INSTANTIATED,BACKUP,BACKING_UP);
208         builder = builder.addTransition(INSTANTIATED,SNAPSHOT,SNAPSHOTTING);
209         builder = builder.addTransition(INSTANTIATED,SOFTWARE_UPLOAD,SOFTWARE_UPLOADING);
210         builder = builder.addTransition(INSTANTIATED,LIVE_UPGRADE,UPGRADING);
211         builder = builder.addTransition(INSTANTIATED,ROLLBACK,ROLLBACKING);
212         builder = builder.addTransition(INSTANTIATED,MIGRATE,MIGRATING);
213         builder = builder.addTransition(INSTANTIATED,EVACUATE,EVACUATING);
214         builder = builder.addTransition(INSTANTIATED,LOCK,INSTANTIATED);
215         builder = builder.addTransition(INSTANTIATED,UNLOCK,INSTANTIATED);
216         builder = builder.addTransition(INSTANTIATED,CHECKLOCK,INSTANTIATED);
217
218         builder = builder.addTransition(CONFIGURED,CONFIGURE,CONFIGURING);
219         builder = builder.addTransition(CONFIGURED,TEST,TESTING);
220         builder = builder.addTransition(CONFIGURED,START,STARTING);
221         builder = builder.addTransition(CONFIGURED,TERMINATE,TERMINATING);
222         builder = builder.addTransition(CONFIGURED,RESTART,RESTARTING);
223         builder = builder.addTransition(CONFIGURED,REBUILD,REBUILDING);
224         builder = builder.addTransition(CONFIGURED,STOP,STOPPING);
225         builder = builder.addTransition(CONFIGURED,CONFIG_MODIFY,CONFIGURING);
226         builder = builder.addTransition(CONFIGURED,CONFIG_SCALEOUT,CONFIGURING);
227         builder = builder.addTransition(CONFIGURED,CONFIG_RESTORE,CONFIGURING);
228         builder = builder.addTransition(CONFIGURED,HEALTHCHECK,TESTING);
229         builder = builder.addTransition(CONFIGURED,BACKUP,BACKING_UP);
230         builder = builder.addTransition(CONFIGURED,SNAPSHOT,SNAPSHOTTING);
231         builder = builder.addTransition(CONFIGURED,SOFTWARE_UPLOAD,SOFTWARE_UPLOADING);
232         builder = builder.addTransition(CONFIGURED,LIVE_UPGRADE,UPGRADING);
233         builder = builder.addTransition(CONFIGURED,ROLLBACK,ROLLBACKING);
234         builder = builder.addTransition(CONFIGURED,SYNC,CONFIGURED);
235         builder = builder.addTransition(CONFIGURED,AUDIT,CONFIGURED);
236         builder = builder.addTransition(CONFIGURED,MIGRATE,MIGRATING);
237         builder = builder.addTransition(CONFIGURED,EVACUATE,EVACUATING);
238         builder = builder.addTransition(CONFIGURED,LOCK,CONFIGURED);
239         builder = builder.addTransition(CONFIGURED,UNLOCK,CONFIGURED);
240         builder = builder.addTransition(CONFIGURED,CHECKLOCK,CONFIGURED);
241         builder = builder.addTransition(CONFIGURED,CONFIG_BACKUP,CONFIGURED);
242         builder = builder.addTransition(CONFIGURED,CONFIG_BACKUP_DELETE,CONFIGURED);
243         builder = builder.addTransition(CONFIGURED,CONFIG_EXPORT,CONFIGURED);
244
245         builder = builder.addTransition(CREATED,CONFIGURE,CONFIGURING);
246         builder = builder.addTransition(CREATED,TEST,TESTING);
247         builder = builder.addTransition(CREATED,START,STARTING);
248         builder = builder.addTransition(CREATED,TERMINATE,TERMINATING);
249         builder = builder.addTransition(CREATED,RESTART,RESTARTING);
250         builder = builder.addTransition(CREATED,REBUILD,REBUILDING);
251         builder = builder.addTransition(CREATED,STOP,STOPPING);
252         builder = builder.addTransition(CREATED,CONFIG_MODIFY,CONFIGURING);
253         builder = builder.addTransition(CREATED,CONFIG_SCALEOUT,CONFIGURING);
254         builder = builder.addTransition(CREATED,CONFIG_RESTORE,CONFIGURING);
255         builder = builder.addTransition(CREATED,HEALTHCHECK,TESTING);
256         builder = builder.addTransition(CREATED,BACKUP,BACKING_UP);
257         builder = builder.addTransition(CREATED,SNAPSHOT,SNAPSHOTTING);
258         builder = builder.addTransition(CREATED,SOFTWARE_UPLOAD,SOFTWARE_UPLOADING);
259         builder = builder.addTransition(CREATED,LIVE_UPGRADE,UPGRADING);
260         builder = builder.addTransition(CREATED,ROLLBACK,ROLLBACKING);
261         builder = builder.addTransition(CREATED,MIGRATE,MIGRATING);
262         builder = builder.addTransition(CREATED,EVACUATE,EVACUATING);
263         builder = builder.addTransition(CREATED,LOCK,CREATED);
264         builder = builder.addTransition(CREATED,UNLOCK,CREATED);
265         builder = builder.addTransition(CREATED,CHECKLOCK,CREATED);
266         builder = builder.addTransition(CREATED,CONFIG_BACKUP,CREATED);
267
268         builder = builder.addTransition(TESTED,CONFIGURE,CONFIGURING);
269         builder = builder.addTransition(TESTED,TEST,TESTING);
270         builder = builder.addTransition(TESTED,START,STARTING);
271         builder = builder.addTransition(TESTED,TERMINATE,TERMINATING);
272         builder = builder.addTransition(TESTED,RESTART,RESTARTING);
273         builder = builder.addTransition(TESTED,REBUILD,REBUILDING);
274         builder = builder.addTransition(TESTED,STOP,STOPPING);
275         builder = builder.addTransition(TESTED,CONFIG_MODIFY,CONFIGURING);
276         builder = builder.addTransition(TESTED,CONFIG_SCALEOUT,CONFIGURING);
277         builder = builder.addTransition(TESTED,CONFIG_RESTORE,CONFIGURING);
278         builder = builder.addTransition(TESTED,HEALTHCHECK,TESTING);
279         builder = builder.addTransition(TESTED,BACKUP,BACKING_UP);
280         builder = builder.addTransition(TESTED,SNAPSHOT,SNAPSHOTTING);
281         builder = builder.addTransition(TESTED,SOFTWARE_UPLOAD,SOFTWARE_UPLOADING);
282         builder = builder.addTransition(TESTED,LIVE_UPGRADE,UPGRADING);
283         builder = builder.addTransition(TESTED,ROLLBACK,ROLLBACKING);
284         builder = builder.addTransition(TESTED,SYNC,TESTED);
285         builder = builder.addTransition(TESTED,AUDIT,TESTED);
286         builder = builder.addTransition(TESTED,MIGRATE,MIGRATING);
287         builder = builder.addTransition(TESTED,EVACUATE,EVACUATING);
288         builder = builder.addTransition(TESTED,LOCK,TESTED);
289         builder = builder.addTransition(TESTED,UNLOCK,TESTED);
290         builder = builder.addTransition(TESTED,CHECKLOCK,TESTED);
291         builder = builder.addTransition(TESTED,CONFIG_BACKUP,TESTED);
292         builder = builder.addTransition(TESTED,CONFIG_BACKUP_DELETE,TESTED);
293         builder = builder.addTransition(TESTED,CONFIG_EXPORT,TESTED);
294
295         builder = builder.addTransition(RUNNING,CONFIGURE,CONFIGURING);
296         builder = builder.addTransition(RUNNING,TEST,TESTING);
297         builder = builder.addTransition(RUNNING,START,STARTING);
298         builder = builder.addTransition(RUNNING,TERMINATE,TERMINATING);
299         builder = builder.addTransition(RUNNING,RESTART,RESTARTING);
300         builder = builder.addTransition(RUNNING,REBUILD,REBUILDING);
301         builder = builder.addTransition(RUNNING,STOP,STOPPING);
302         builder = builder.addTransition(RUNNING,CONFIG_MODIFY,CONFIGURING);
303         builder = builder.addTransition(RUNNING,CONFIG_SCALEOUT,CONFIGURING);
304         builder = builder.addTransition(RUNNING,CONFIG_RESTORE,CONFIGURING);
305         builder = builder.addTransition(RUNNING,HEALTHCHECK,TESTING);
306         builder = builder.addTransition(RUNNING,BACKUP,BACKING_UP);
307         builder = builder.addTransition(RUNNING,SNAPSHOT,SNAPSHOTTING);
308         builder = builder.addTransition(RUNNING,SOFTWARE_UPLOAD,SOFTWARE_UPLOADING);
309         builder = builder.addTransition(RUNNING,LIVE_UPGRADE,UPGRADING);
310         builder = builder.addTransition(RUNNING,ROLLBACK,ROLLBACKING);
311         builder = builder.addTransition(RUNNING,SYNC,RUNNING);
312         builder = builder.addTransition(RUNNING,AUDIT,RUNNING);
313         builder = builder.addTransition(RUNNING,MIGRATE,MIGRATING);
314         builder = builder.addTransition(RUNNING,EVACUATE,EVACUATING);
315         builder = builder.addTransition(RUNNING,LOCK,RUNNING);
316         builder = builder.addTransition(RUNNING,UNLOCK,RUNNING);
317         builder = builder.addTransition(RUNNING,CHECKLOCK,RUNNING);
318         builder = builder.addTransition(RUNNING,CONFIG_BACKUP,RUNNING);
319         builder = builder.addTransition(RUNNING,CONFIG_BACKUP_DELETE,RUNNING);
320         builder = builder.addTransition(RUNNING,CONFIG_EXPORT,RUNNING);
321
322         builder = builder.addTransition(ERROR,CONFIGURE,CONFIGURING);
323         builder = builder.addTransition(ERROR,TEST,TESTING);
324         builder = builder.addTransition(ERROR,START,STARTING);
325         builder = builder.addTransition(ERROR,TERMINATE,TERMINATING);
326         builder = builder.addTransition(ERROR,RESTART,RESTARTING);
327         builder = builder.addTransition(ERROR,REBUILD,REBUILDING);
328         builder = builder.addTransition(ERROR,STOP,STOPPING);
329         builder = builder.addTransition(ERROR,CONFIG_MODIFY,CONFIGURING);
330         builder = builder.addTransition(ERROR,CONFIG_SCALEOUT,CONFIGURING);
331         builder = builder.addTransition(ERROR,CONFIG_RESTORE,CONFIGURING);
332         builder = builder.addTransition(ERROR,HEALTHCHECK,TESTING);
333         builder = builder.addTransition(ERROR,BACKUP,BACKING_UP);
334         builder = builder.addTransition(ERROR,SNAPSHOT,SNAPSHOTTING);
335         builder = builder.addTransition(ERROR,SOFTWARE_UPLOAD,SOFTWARE_UPLOADING);
336         builder = builder.addTransition(ERROR,LIVE_UPGRADE,UPGRADING);
337         builder = builder.addTransition(ERROR,ROLLBACK,ROLLBACKING);
338         builder = builder.addTransition(ERROR,SYNC,ERROR);
339         builder = builder.addTransition(ERROR,AUDIT,ERROR);
340         builder = builder.addTransition(ERROR,MIGRATE,MIGRATING);
341         builder = builder.addTransition(ERROR,EVACUATE,EVACUATING);
342         builder = builder.addTransition(ERROR,LOCK,ERROR);
343         builder = builder.addTransition(ERROR,UNLOCK,ERROR);
344         builder = builder.addTransition(ERROR,CHECKLOCK,ERROR);
345         builder = builder.addTransition(ERROR,CONFIG_BACKUP,ERROR);
346         builder = builder.addTransition(ERROR,CONFIG_BACKUP_DELETE,ERROR);
347         builder = builder.addTransition(ERROR,CONFIG_EXPORT,ERROR);
348
349         builder = builder.addTransition(UNKNOWN,CONFIGURE,CONFIGURING);
350         builder = builder.addTransition(UNKNOWN,TEST,TESTING);
351         builder = builder.addTransition(UNKNOWN,START,STARTING);
352         builder = builder.addTransition(UNKNOWN,TERMINATE,TERMINATING);
353         builder = builder.addTransition(UNKNOWN,RESTART,RESTARTING);
354         builder = builder.addTransition(UNKNOWN,REBUILD,REBUILDING);
355         builder = builder.addTransition(UNKNOWN,STOP,STOPPING);
356         builder = builder.addTransition(UNKNOWN,CONFIG_MODIFY,CONFIGURING);
357         builder = builder.addTransition(UNKNOWN,CONFIG_SCALEOUT,CONFIGURING);
358         builder = builder.addTransition(UNKNOWN,CONFIG_RESTORE,CONFIGURING);
359         builder = builder.addTransition(UNKNOWN,HEALTHCHECK,TESTING);
360         builder = builder.addTransition(UNKNOWN,BACKUP,BACKING_UP);
361         builder = builder.addTransition(UNKNOWN,SNAPSHOT,SNAPSHOTTING);
362         builder = builder.addTransition(UNKNOWN,SOFTWARE_UPLOAD,SOFTWARE_UPLOADING);
363         builder = builder.addTransition(UNKNOWN,LIVE_UPGRADE,UPGRADING);
364         builder = builder.addTransition(UNKNOWN,ROLLBACK,ROLLBACKING);
365         builder = builder.addTransition(UNKNOWN,SYNC,UNKNOWN);
366         builder = builder.addTransition(UNKNOWN,AUDIT,UNKNOWN);
367         builder = builder.addTransition(UNKNOWN,MIGRATE,MIGRATING);
368         builder = builder.addTransition(UNKNOWN,EVACUATE,EVACUATING);
369         builder = builder.addTransition(UNKNOWN,LOCK,UNKNOWN);
370         builder = builder.addTransition(UNKNOWN,UNLOCK,UNKNOWN);
371         builder = builder.addTransition(UNKNOWN,CHECKLOCK,UNKNOWN);
372         builder = builder.addTransition(UNKNOWN,CONFIG_BACKUP,UNKNOWN);
373         builder = builder.addTransition(UNKNOWN,CONFIG_BACKUP_DELETE,UNKNOWN);
374         builder = builder.addTransition(UNKNOWN,CONFIG_EXPORT,UNKNOWN);
375
376         builder = builder.addTransition(STOPPED,CONFIGURE,CONFIGURING);
377         builder = builder.addTransition(STOPPED,TEST,TESTING);
378         builder = builder.addTransition(STOPPED,START,STARTING);
379         builder = builder.addTransition(STOPPED,TERMINATE,TERMINATING);
380         builder = builder.addTransition(STOPPED,RESTART,RESTARTING);
381         builder = builder.addTransition(STOPPED,REBUILD,REBUILDING);
382         builder = builder.addTransition(STOPPED,CONFIG_MODIFY,CONFIGURING);
383         builder = builder.addTransition(STOPPED,CONFIG_SCALEOUT,CONFIGURING);
384         builder = builder.addTransition(STOPPED,CONFIG_RESTORE,CONFIGURING);
385         builder = builder.addTransition(STOPPED,HEALTHCHECK,TESTING);
386         builder = builder.addTransition(STOPPED,BACKUP,BACKING_UP);
387         builder = builder.addTransition(STOPPED,SNAPSHOT,SNAPSHOTTING);
388         builder = builder.addTransition(STOPPED,SOFTWARE_UPLOAD,SOFTWARE_UPLOADING);
389         builder = builder.addTransition(STOPPED,LIVE_UPGRADE,UPGRADING);
390         builder = builder.addTransition(STOPPED,ROLLBACK,ROLLBACKING);
391         builder = builder.addTransition(STOPPED,MIGRATE,MIGRATING);
392         builder = builder.addTransition(STOPPED,EVACUATE,EVACUATING);
393         builder = builder.addTransition(STOPPED,LOCK,STOPPED);
394         builder = builder.addTransition(STOPPED,UNLOCK,STOPPED);
395         builder = builder.addTransition(STOPPED,CHECKLOCK,STOPPED);
396
397         builder = builder.addTransition(CONFIGURING,SUCCESS,CONFIGURED);
398         builder = builder.addTransition(CONFIGURING,FAILURE,ERROR);
399
400         builder = builder.addTransition(TESTING,SUCCESS,TESTED);
401         builder = builder.addTransition(TESTING,FAILURE,ERROR);
402
403         builder = builder.addTransition(RESTARTING,SUCCESS,RUNNING);
404         builder = builder.addTransition(RESTARTING,FAILURE,ERROR);
405
406         builder = builder.addTransition(STARTING,SUCCESS,RUNNING);
407         builder = builder.addTransition(STARTING,FAILURE,ERROR);
408
409         builder = builder.addTransition(TERMINATING,SUCCESS,NOT_INSTANTIATED);
410         builder = builder.addTransition(TERMINATING,FAILURE,ERROR);
411
412         builder = builder.addTransition(REBUILDING,SUCCESS,RUNNING);
413         builder = builder.addTransition(REBUILDING,FAILURE,ERROR);
414
415         builder = builder.addTransition(STOPPING,SUCCESS,STOPPED);
416         builder = builder.addTransition(STOPPING,FAILURE,ERROR);
417
418         builder = builder.addTransition(BACKING_UP,SUCCESS,RUNNING);
419         builder = builder.addTransition(BACKING_UP,FAILURE,ERROR);
420
421         builder = builder.addTransition(SNAPSHOTTING,SUCCESS,RUNNING);
422         builder = builder.addTransition(SNAPSHOTTING,FAILURE,ERROR);
423
424         builder = builder.addTransition(SOFTWARE_UPLOADING,SUCCESS,RUNNING);
425         builder = builder.addTransition(SOFTWARE_UPLOADING,FAILURE,ERROR);
426
427         builder = builder.addTransition(UPGRADING,SUCCESS,RUNNING);
428         builder = builder.addTransition(UPGRADING,FAILURE,ERROR);
429
430         builder = builder.addTransition(ROLLBACKING,SUCCESS,RUNNING);
431         builder = builder.addTransition(ROLLBACKING,FAILURE,ERROR);
432
433         builder = builder.addTransition(MIGRATING,SUCCESS,RUNNING);
434         builder = builder.addTransition(MIGRATING,FAILURE,ERROR);
435
436         builder = builder.addTransition(EVACUATING,SUCCESS,RUNNING);
437         builder = builder.addTransition(EVACUATING,FAILURE,ERROR);
438
439         return builder.build();
440
441     }
442
443 }