[APPC-44] revert license line ending changes
[appc.git] / appc-lifecycle-management / state-machine-lib / src / main / java / org / openecomp / appc / statemachine / impl / readers / VnfMetaDataReader.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.statemachine.impl.readers;
26
27 import org.openecomp.appc.statemachine.StateMetaDataReader;
28 import org.openecomp.appc.lifecyclemanager.objects.VNFOperationOutcome;
29 import org.openecomp.appc.statemachine.objects.Event;
30 import org.openecomp.appc.statemachine.objects.State;
31 import org.openecomp.appc.statemachine.objects.StateMachineMetadata;
32
33 public class VnfMetaDataReader implements StateMetaDataReader {
34
35     public enum VNFOperation {
36
37         Configure, Test, HealthCheck, Start, Terminate, Restart, Rebuild, Stop, ConfigModify,
38         ConfigScaleOut,ConfigRestore,Backup, Snapshot,
39         SoftwareUpload, LiveUpgrade, Rollback, Sync, Audit, Test_lic, Migrate, Evacuate,
40         ConfigBackup, ConfigBackupDelete, ConfigExport,
41         Lock(true), Unlock(true), CheckLock(true), StartApplication,StopApplication;
42
43         private boolean builtIn;
44
45         VNFOperation(boolean builtIn) {
46             this.builtIn = builtIn;
47         }
48
49         VNFOperation() {
50             this(false);
51         }
52     }
53
54     private enum VNFStates {
55         Not_Instantiated, Instantiated, Configuring, Configured, Testing, Tested, Rebuilding, Restarting, Starting,
56         Error, Running, Unknown, Terminating, Stopping, Stopped,
57         Backing_Up, Snapshotting, Software_Uploading, Upgrading, Rollbacking, Licensing, Migrating, Evacuating,
58         NOT_ORCHESTRATED("NOT ORCHESTRATED"), Created;
59
60         String stateName;
61
62         VNFStates(String name) {
63             this.stateName = name;
64         }
65
66         VNFStates() {
67             this.stateName = name();
68         }
69
70         @Override
71         public String toString() {
72             return this.stateName;
73         }
74     }
75
76     public StateMachineMetadata readMetadata() {
77         {
78             State NOT_INSTANTIATED = new State(VNFStates.Not_Instantiated.toString());
79             State INSTANTIATED = new State(VNFStates.Instantiated.toString());
80             State CONFIGURING = new State(VNFStates.Configuring.toString());
81             State CONFIGURED = new State(VNFStates.Configured.toString());
82             State TESTING = new State(VNFStates.Testing.toString());
83             State TESTED = new State(VNFStates.Tested.toString());
84             State REBUILDING = new State(VNFStates.Rebuilding.toString());
85             State RESTARTING = new State(VNFStates.Restarting.toString());
86             State STARTING = new State(VNFStates.Starting.toString());
87             State ERROR = new State(VNFStates.Error.toString());
88             State RUNNING = new State(VNFStates.Running.toString());
89             State UNKNOWN = new State(VNFStates.Unknown.toString());
90             State TERMINATING = new State(VNFStates.Terminating.toString());
91             State STOPPING = new State(VNFStates.Stopping.toString());
92             State STOPPED = new State(VNFStates.Stopped.toString());
93             State NOT_ORCHESTRATED = new State(VNFStates.NOT_ORCHESTRATED.toString());
94
95             State BACKING_UP = new State(VNFStates.Backing_Up.toString());
96             State SNAPSHOTTING = new State(VNFStates.Snapshotting.toString());
97             State SOFTWARE_UPLOADING = new State(VNFStates.Software_Uploading.toString());
98             State UPGRADING = new State(VNFStates.Upgrading.toString());
99             State ROLLBACKING = new State(VNFStates.Rollbacking.toString());
100
101             State MIGRATING = new State(VNFStates.Migrating.toString());
102             State EVACUATING = new State(VNFStates.Evacuating.toString());
103             State CREATED= new State(VNFStates.Created.toString());
104
105             Event START_APPLICATION = new Event(VNFOperation.StartApplication.toString());
106             Event CONFIGURE = new Event(VNFOperation.Configure.toString());
107             Event HEALTHCHECK = new Event(VNFOperation.HealthCheck.toString());
108             Event TEST = new Event(VNFOperation.Test.toString());
109             Event START = new Event(VNFOperation.Start.toString());
110             Event TERMINATE = new Event(VNFOperation.Terminate.toString());
111             Event RESTART = new Event(VNFOperation.Restart.toString());
112             Event REBUILD = new Event(VNFOperation.Rebuild.toString());
113             Event STOP = new Event(VNFOperation.Stop.toString());
114             Event CONFIG_MODIFY = new Event(VNFOperation.ConfigModify.toString());
115             Event CONFIG_SCALEOUT = new Event(VNFOperation.ConfigScaleOut.toString());
116             Event CONFIG_RESTORE = new Event(VNFOperation.ConfigRestore.toString());
117             Event BACKUP = new Event(VNFOperation.Backup.toString());
118             Event SNAPSHOT = new Event(VNFOperation.Snapshot.toString());
119             Event SOFTWARE_UPLOAD = new Event(VNFOperation.SoftwareUpload.toString());
120             Event LIVE_UPGRADE = new Event(VNFOperation.LiveUpgrade.toString());
121             Event ROLLBACK = new Event(VNFOperation.Rollback.toString());
122             Event SYNC = new Event(VNFOperation.Sync.toString());
123             Event AUDIT = new Event(VNFOperation.Audit.toString());
124             Event MIGRATE = new Event(VNFOperation.Migrate.toString());
125             Event EVACUATE = new Event(VNFOperation.Evacuate.toString());
126             Event CONFIG_BACKUP = new Event(VNFOperation.ConfigBackup.toString());
127             Event CONFIG_BACKUP_DELETE = new Event(VNFOperation.ConfigBackupDelete.toString());
128             Event CONFIG_EXPORT = new Event(VNFOperation.ConfigExport.toString());
129             Event STOP_APPLICATION= new Event(VNFOperation.StopApplication.toString());
130
131             Event LOCK = new Event(VNFOperation.Lock.toString());
132             Event UNLOCK = new Event(VNFOperation.Unlock.toString());
133             Event CHECKLOCK = new Event(VNFOperation.CheckLock.toString());
134
135             Event SUCCESS = new Event(VNFOperationOutcome.SUCCESS.toString());
136             Event FAILURE = new Event(VNFOperationOutcome.FAILURE.toString());
137
138
139             StateMachineMetadata.StateMachineMetadataBuilder builder = new StateMachineMetadata.StateMachineMetadataBuilder();
140
141             builder = builder.addState(NOT_INSTANTIATED);
142             builder = builder.addState(INSTANTIATED);
143             builder = builder.addState(CONFIGURING);
144             builder = builder.addState(CONFIGURED);
145             builder = builder.addState(TESTING);
146             builder = builder.addState(TESTED);
147             builder = builder.addState(REBUILDING);
148             builder = builder.addState(RESTARTING);
149             builder = builder.addState(STARTING);
150             builder = builder.addState(ERROR);
151             builder = builder.addState(RUNNING);
152             builder = builder.addState(UNKNOWN);
153             builder = builder.addState(TERMINATING);
154             builder = builder.addState(STOPPING);
155             builder = builder.addState(STOPPED);
156
157             builder = builder.addState(BACKING_UP);
158             builder = builder.addState(SNAPSHOTTING);
159             builder = builder.addState(SOFTWARE_UPLOADING);
160             builder = builder.addState(UPGRADING);
161             builder = builder.addState(ROLLBACKING);
162             builder = builder.addState(MIGRATING);
163             builder = builder.addState(EVACUATING);
164             builder = builder.addState(NOT_ORCHESTRATED);
165             builder = builder.addState(CREATED);
166             builder = builder.addEvent(START_APPLICATION);
167             builder = builder.addEvent(CONFIGURE);
168             builder = builder.addEvent(TEST);
169             builder = builder.addEvent(START);
170             builder = builder.addEvent(TERMINATE);
171             builder = builder.addEvent(RESTART);
172             builder = builder.addEvent(REBUILD);
173             builder = builder.addEvent(SUCCESS);
174             builder = builder.addEvent(FAILURE);
175             builder = builder.addEvent(STOP);
176             builder = builder.addEvent(CONFIG_MODIFY);
177             builder = builder.addEvent(CONFIG_SCALEOUT);
178             builder = builder.addEvent(CONFIG_RESTORE);
179             builder = builder.addEvent(HEALTHCHECK);
180             builder = builder.addEvent(BACKUP);
181             builder = builder.addEvent(SNAPSHOT);
182             builder = builder.addEvent(SOFTWARE_UPLOAD);
183             builder = builder.addEvent(LIVE_UPGRADE);
184             builder = builder.addEvent(ROLLBACK);
185             builder = builder.addEvent(SYNC);
186             builder = builder.addEvent(AUDIT);
187             builder = builder.addEvent(MIGRATE);
188             builder = builder.addEvent(EVACUATE);
189             builder = builder.addEvent(LOCK);
190             builder = builder.addEvent(UNLOCK);
191             builder = builder.addEvent(CHECKLOCK);
192             builder = builder.addEvent(CONFIG_BACKUP);
193             builder = builder.addEvent(CONFIG_BACKUP_DELETE);
194             builder = builder.addEvent(CONFIG_EXPORT);
195             builder = builder.addEvent(STOP_APPLICATION);
196
197             builder = builder.addTransition(NOT_ORCHESTRATED,CONFIGURE,CONFIGURING);
198             builder = builder.addTransition(NOT_ORCHESTRATED,TEST,TESTING);
199             builder = builder.addTransition(NOT_ORCHESTRATED,START,STARTING);
200             builder = builder.addTransition(NOT_ORCHESTRATED,TERMINATE,TERMINATING);
201             builder = builder.addTransition(NOT_ORCHESTRATED,RESTART,RESTARTING);
202             builder = builder.addTransition(NOT_ORCHESTRATED,REBUILD,REBUILDING);
203             builder = builder.addTransition(NOT_ORCHESTRATED,STOP,STOPPING);
204             builder = builder.addTransition(NOT_ORCHESTRATED,CONFIG_MODIFY,CONFIGURING);
205             builder = builder.addTransition(NOT_ORCHESTRATED,CONFIG_SCALEOUT,CONFIGURING);
206             builder = builder.addTransition(NOT_ORCHESTRATED,CONFIG_RESTORE,CONFIGURING);
207             builder = builder.addTransition(NOT_ORCHESTRATED,HEALTHCHECK,TESTING);
208             builder = builder.addTransition(NOT_ORCHESTRATED,BACKUP,BACKING_UP);
209             builder = builder.addTransition(NOT_ORCHESTRATED,SNAPSHOT,SNAPSHOTTING);
210             builder = builder.addTransition(NOT_ORCHESTRATED,SOFTWARE_UPLOAD,SOFTWARE_UPLOADING);
211             builder = builder.addTransition(NOT_ORCHESTRATED,LIVE_UPGRADE,UPGRADING);
212             builder = builder.addTransition(NOT_ORCHESTRATED,ROLLBACK,ROLLBACKING);
213             builder = builder.addTransition(NOT_ORCHESTRATED,MIGRATE,MIGRATING);
214             builder = builder.addTransition(NOT_ORCHESTRATED,EVACUATE,EVACUATING);
215             builder = builder.addTransition(NOT_ORCHESTRATED,LOCK,NOT_ORCHESTRATED);
216             builder = builder.addTransition(NOT_ORCHESTRATED,UNLOCK,NOT_ORCHESTRATED);
217             builder = builder.addTransition(NOT_ORCHESTRATED,CHECKLOCK,NOT_ORCHESTRATED);
218             builder = builder.addTransition(NOT_ORCHESTRATED,START_APPLICATION,STARTING);
219             builder = builder.addTransition(NOT_ORCHESTRATED,STOP_APPLICATION,STOPPING);
220             builder = builder.addTransition(NOT_ORCHESTRATED,CONFIG_BACKUP,NOT_ORCHESTRATED);
221
222             builder = builder.addTransition(CREATED,CONFIGURE,CONFIGURING);
223             builder = builder.addTransition(CREATED,TEST,TESTING);
224             builder = builder.addTransition(CREATED,START,STARTING);
225             builder = builder.addTransition(CREATED,TERMINATE,TERMINATING);
226             builder = builder.addTransition(CREATED,RESTART,RESTARTING);
227             builder = builder.addTransition(CREATED,REBUILD,REBUILDING);
228             builder = builder.addTransition(CREATED,STOP,STOPPING);
229             builder = builder.addTransition(CREATED,CONFIG_MODIFY,CONFIGURING);
230             builder = builder.addTransition(CREATED,CONFIG_SCALEOUT,CONFIGURING);
231             builder = builder.addTransition(CREATED,CONFIG_RESTORE,CONFIGURING);
232             builder = builder.addTransition(CREATED,HEALTHCHECK,TESTING);
233             builder = builder.addTransition(CREATED,BACKUP,BACKING_UP);
234             builder = builder.addTransition(CREATED,SNAPSHOT,SNAPSHOTTING);
235             builder = builder.addTransition(CREATED,SOFTWARE_UPLOAD,SOFTWARE_UPLOADING);
236             builder = builder.addTransition(CREATED,LIVE_UPGRADE,UPGRADING);
237             builder = builder.addTransition(CREATED,ROLLBACK,ROLLBACKING);
238             builder = builder.addTransition(CREATED,MIGRATE,MIGRATING);
239             builder = builder.addTransition(CREATED,EVACUATE,EVACUATING);
240             builder = builder.addTransition(CREATED,LOCK,CREATED);
241             builder = builder.addTransition(CREATED,UNLOCK,CREATED);
242             builder = builder.addTransition(CREATED,CHECKLOCK,CREATED);
243             builder = builder.addTransition(CREATED,START_APPLICATION,STARTING);
244             builder = builder.addTransition(CREATED,STOP_APPLICATION,STOPPING);
245             builder = builder.addTransition(CREATED,CONFIG_BACKUP,CREATED);
246
247             builder = builder.addTransition(INSTANTIATED,CONFIGURE,CONFIGURING);
248             builder = builder.addTransition(INSTANTIATED,TEST,TESTING);
249             builder = builder.addTransition(INSTANTIATED,START,STARTING);
250             builder = builder.addTransition(INSTANTIATED,TERMINATE,TERMINATING);
251             builder = builder.addTransition(INSTANTIATED,RESTART,RESTARTING);
252             builder = builder.addTransition(INSTANTIATED,REBUILD,REBUILDING);
253             builder = builder.addTransition(INSTANTIATED,STOP,STOPPING);
254             builder = builder.addTransition(INSTANTIATED,CONFIG_MODIFY,CONFIGURING);
255             builder = builder.addTransition(INSTANTIATED,CONFIG_SCALEOUT,CONFIGURING);
256             builder = builder.addTransition(INSTANTIATED,CONFIG_RESTORE,CONFIGURING);
257             builder = builder.addTransition(INSTANTIATED,HEALTHCHECK,TESTING);
258             builder = builder.addTransition(INSTANTIATED,BACKUP,BACKING_UP);
259             builder = builder.addTransition(INSTANTIATED,SNAPSHOT,SNAPSHOTTING);
260             builder = builder.addTransition(INSTANTIATED,SOFTWARE_UPLOAD,SOFTWARE_UPLOADING);
261             builder = builder.addTransition(INSTANTIATED,LIVE_UPGRADE,UPGRADING);
262             builder = builder.addTransition(INSTANTIATED,ROLLBACK,ROLLBACKING);
263             builder = builder.addTransition(INSTANTIATED,MIGRATE,MIGRATING);
264             builder = builder.addTransition(INSTANTIATED,EVACUATE,EVACUATING);
265             builder = builder.addTransition(INSTANTIATED,LOCK,INSTANTIATED);
266             builder = builder.addTransition(INSTANTIATED,UNLOCK,INSTANTIATED);
267             builder = builder.addTransition(INSTANTIATED,CHECKLOCK,INSTANTIATED);
268
269             builder = builder.addTransition(CONFIGURED,CONFIGURE,CONFIGURING);
270             builder = builder.addTransition(CONFIGURED,TEST,TESTING);
271             builder = builder.addTransition(CONFIGURED,START,STARTING);
272             builder = builder.addTransition(CONFIGURED,TERMINATE,TERMINATING);
273             builder = builder.addTransition(CONFIGURED,RESTART,RESTARTING);
274             builder = builder.addTransition(CONFIGURED,REBUILD,REBUILDING);
275             builder = builder.addTransition(CONFIGURED,STOP,STOPPING);
276             builder = builder.addTransition(CONFIGURED,CONFIG_MODIFY,CONFIGURING);
277             builder = builder.addTransition(CONFIGURED,CONFIG_SCALEOUT,CONFIGURING);
278             builder = builder.addTransition(CONFIGURED,CONFIG_RESTORE,CONFIGURING);
279             builder = builder.addTransition(CONFIGURED,HEALTHCHECK,TESTING);
280             builder = builder.addTransition(CONFIGURED,BACKUP,BACKING_UP);
281             builder = builder.addTransition(CONFIGURED,SNAPSHOT,SNAPSHOTTING);
282             builder = builder.addTransition(CONFIGURED,SOFTWARE_UPLOAD,SOFTWARE_UPLOADING);
283             builder = builder.addTransition(CONFIGURED,LIVE_UPGRADE,UPGRADING);
284             builder = builder.addTransition(CONFIGURED,ROLLBACK,ROLLBACKING);
285             builder = builder.addTransition(CONFIGURED,SYNC,CONFIGURED);
286             builder = builder.addTransition(CONFIGURED,AUDIT,CONFIGURED);
287             builder = builder.addTransition(CONFIGURED,MIGRATE,MIGRATING);
288             builder = builder.addTransition(CONFIGURED,EVACUATE,EVACUATING);
289             builder = builder.addTransition(CONFIGURED,LOCK,CONFIGURED);
290             builder = builder.addTransition(CONFIGURED,UNLOCK,CONFIGURED);
291             builder = builder.addTransition(CONFIGURED,CHECKLOCK,CONFIGURED);
292             builder = builder.addTransition(CONFIGURED,CONFIG_BACKUP,CONFIGURED);
293             builder = builder.addTransition(CONFIGURED,CONFIG_BACKUP_DELETE,CONFIGURED);
294             builder = builder.addTransition(CONFIGURED,CONFIG_EXPORT,CONFIGURED);
295             builder = builder.addTransition(CONFIGURED,STOP_APPLICATION,STOPPING);
296
297             builder = builder.addTransition(TESTED,CONFIGURE,CONFIGURING);
298             builder = builder.addTransition(TESTED,TEST,TESTING);
299             builder = builder.addTransition(TESTED,START,STARTING);
300             builder = builder.addTransition(TESTED,TERMINATE,TERMINATING);
301             builder = builder.addTransition(TESTED,RESTART,RESTARTING);
302             builder = builder.addTransition(TESTED,REBUILD,REBUILDING);
303             builder = builder.addTransition(TESTED,STOP,STOPPING);
304             builder = builder.addTransition(TESTED,CONFIG_MODIFY,CONFIGURING);
305             builder = builder.addTransition(TESTED,CONFIG_SCALEOUT,CONFIGURING);
306             builder = builder.addTransition(TESTED,CONFIG_RESTORE,CONFIGURING);
307             builder = builder.addTransition(TESTED,HEALTHCHECK,TESTING);
308             builder = builder.addTransition(TESTED,BACKUP,BACKING_UP);
309             builder = builder.addTransition(TESTED,SNAPSHOT,SNAPSHOTTING);
310             builder = builder.addTransition(TESTED,SOFTWARE_UPLOAD,SOFTWARE_UPLOADING);
311             builder = builder.addTransition(TESTED,LIVE_UPGRADE,UPGRADING);
312             builder = builder.addTransition(TESTED,ROLLBACK,ROLLBACKING);
313             builder = builder.addTransition(TESTED,SYNC,TESTED);
314             builder = builder.addTransition(TESTED,AUDIT,TESTED);
315             builder = builder.addTransition(TESTED,MIGRATE,MIGRATING);
316             builder = builder.addTransition(TESTED,EVACUATE,EVACUATING);
317             builder = builder.addTransition(TESTED,LOCK,TESTED);
318             builder = builder.addTransition(TESTED,UNLOCK,TESTED);
319             builder = builder.addTransition(TESTED,CHECKLOCK,TESTED);
320             builder = builder.addTransition(TESTED,CONFIG_BACKUP,TESTED);
321             builder = builder.addTransition(TESTED,CONFIG_BACKUP_DELETE,TESTED);
322             builder = builder.addTransition(TESTED,CONFIG_EXPORT,TESTED);
323             builder = builder.addTransition(TESTED,STOP_APPLICATION,STOPPING);
324
325             builder = builder.addTransition(RUNNING,CONFIGURE,CONFIGURING);
326             builder = builder.addTransition(RUNNING,TEST,TESTING);
327             builder = builder.addTransition(RUNNING,START,STARTING);
328             builder = builder.addTransition(RUNNING,TERMINATE,TERMINATING);
329             builder = builder.addTransition(RUNNING,RESTART,RESTARTING);
330             builder = builder.addTransition(RUNNING,REBUILD,REBUILDING);
331             builder = builder.addTransition(RUNNING,STOP,STOPPING);
332             builder = builder.addTransition(RUNNING,CONFIG_MODIFY,CONFIGURING);
333             builder = builder.addTransition(RUNNING,CONFIG_SCALEOUT,CONFIGURING);
334             builder = builder.addTransition(RUNNING,CONFIG_RESTORE,CONFIGURING);
335             builder = builder.addTransition(RUNNING,HEALTHCHECK,TESTING);
336             builder = builder.addTransition(RUNNING,BACKUP,BACKING_UP);
337             builder = builder.addTransition(RUNNING,SNAPSHOT,SNAPSHOTTING);
338             builder = builder.addTransition(RUNNING,SOFTWARE_UPLOAD,SOFTWARE_UPLOADING);
339             builder = builder.addTransition(RUNNING,LIVE_UPGRADE,UPGRADING);
340             builder = builder.addTransition(RUNNING,ROLLBACK,ROLLBACKING);
341             builder = builder.addTransition(RUNNING,SYNC,RUNNING);
342             builder = builder.addTransition(RUNNING,AUDIT,RUNNING);
343             builder = builder.addTransition(RUNNING,MIGRATE,MIGRATING);
344             builder = builder.addTransition(RUNNING,EVACUATE,EVACUATING);
345             builder = builder.addTransition(RUNNING,LOCK,RUNNING);
346             builder = builder.addTransition(RUNNING,UNLOCK,RUNNING);
347             builder = builder.addTransition(RUNNING,CHECKLOCK,RUNNING);
348             builder = builder.addTransition(RUNNING,CONFIG_BACKUP,RUNNING);
349             builder = builder.addTransition(RUNNING,CONFIG_BACKUP_DELETE,RUNNING);
350             builder = builder.addTransition(RUNNING,CONFIG_EXPORT,RUNNING);
351             builder = builder.addTransition(RUNNING,STOP_APPLICATION,STOPPING);
352
353             builder = builder.addTransition(ERROR,CONFIGURE,CONFIGURING);
354             builder = builder.addTransition(ERROR,TEST,TESTING);
355             builder = builder.addTransition(ERROR,START,STARTING);
356             builder = builder.addTransition(ERROR,TERMINATE,TERMINATING);
357             builder = builder.addTransition(ERROR,RESTART,RESTARTING);
358             builder = builder.addTransition(ERROR,REBUILD,REBUILDING);
359             builder = builder.addTransition(ERROR,STOP,STOPPING);
360             builder = builder.addTransition(ERROR,CONFIG_MODIFY,CONFIGURING);
361             builder = builder.addTransition(ERROR,CONFIG_SCALEOUT,CONFIGURING);
362             builder = builder.addTransition(ERROR,CONFIG_RESTORE,CONFIGURING);
363             builder = builder.addTransition(ERROR,HEALTHCHECK,TESTING);
364             builder = builder.addTransition(ERROR,BACKUP,BACKING_UP);
365             builder = builder.addTransition(ERROR,SNAPSHOT,SNAPSHOTTING);
366             builder = builder.addTransition(ERROR,SOFTWARE_UPLOAD,SOFTWARE_UPLOADING);
367             builder = builder.addTransition(ERROR,LIVE_UPGRADE,UPGRADING);
368             builder = builder.addTransition(ERROR,ROLLBACK,ROLLBACKING);
369             builder = builder.addTransition(ERROR,SYNC,ERROR);
370             builder = builder.addTransition(ERROR,AUDIT,ERROR);
371             builder = builder.addTransition(ERROR,MIGRATE,MIGRATING);
372             builder = builder.addTransition(ERROR,EVACUATE,EVACUATING);
373             builder = builder.addTransition(ERROR,LOCK,ERROR);
374             builder = builder.addTransition(ERROR,UNLOCK,ERROR);
375             builder = builder.addTransition(ERROR,CHECKLOCK,ERROR);
376             builder = builder.addTransition(ERROR,CONFIG_BACKUP,ERROR);
377             builder = builder.addTransition(ERROR,CONFIG_BACKUP_DELETE,ERROR);
378             builder = builder.addTransition(ERROR,CONFIG_EXPORT,ERROR);
379             builder = builder.addTransition(ERROR,STOP_APPLICATION,STOPPING);
380
381             builder = builder.addTransition(UNKNOWN,CONFIGURE,CONFIGURING);
382             builder = builder.addTransition(UNKNOWN,TEST,TESTING);
383             builder = builder.addTransition(UNKNOWN,START,STARTING);
384             builder = builder.addTransition(UNKNOWN,TERMINATE,TERMINATING);
385             builder = builder.addTransition(UNKNOWN,RESTART,RESTARTING);
386             builder = builder.addTransition(UNKNOWN,REBUILD,REBUILDING);
387             builder = builder.addTransition(UNKNOWN,STOP,STOPPING);
388             builder = builder.addTransition(UNKNOWN,CONFIG_MODIFY,CONFIGURING);
389             builder = builder.addTransition(UNKNOWN,CONFIG_SCALEOUT,CONFIGURING);
390             builder = builder.addTransition(UNKNOWN,CONFIG_RESTORE,CONFIGURING);
391             builder = builder.addTransition(UNKNOWN,HEALTHCHECK,TESTING);
392             builder = builder.addTransition(UNKNOWN,BACKUP,BACKING_UP);
393             builder = builder.addTransition(UNKNOWN,SNAPSHOT,SNAPSHOTTING);
394             builder = builder.addTransition(UNKNOWN,SOFTWARE_UPLOAD,SOFTWARE_UPLOADING);
395             builder = builder.addTransition(UNKNOWN,LIVE_UPGRADE,UPGRADING);
396             builder = builder.addTransition(UNKNOWN,ROLLBACK,ROLLBACKING);
397             builder = builder.addTransition(UNKNOWN,SYNC,UNKNOWN);
398             builder = builder.addTransition(UNKNOWN,AUDIT,UNKNOWN);
399             builder = builder.addTransition(UNKNOWN,MIGRATE,MIGRATING);
400             builder = builder.addTransition(UNKNOWN,EVACUATE,EVACUATING);
401             builder = builder.addTransition(UNKNOWN,LOCK,UNKNOWN);
402             builder = builder.addTransition(UNKNOWN,UNLOCK,UNKNOWN);
403             builder = builder.addTransition(UNKNOWN,CHECKLOCK,UNKNOWN);
404             builder = builder.addTransition(UNKNOWN,CONFIG_BACKUP,UNKNOWN);
405             builder = builder.addTransition(UNKNOWN,CONFIG_BACKUP_DELETE,UNKNOWN);
406             builder = builder.addTransition(UNKNOWN,CONFIG_EXPORT,UNKNOWN);
407             builder = builder.addTransition(UNKNOWN,STOP_APPLICATION,STOPPING);
408
409             builder = builder.addTransition(STOPPED,CONFIGURE,CONFIGURING);
410             builder = builder.addTransition(STOPPED,TEST,TESTING);
411             builder = builder.addTransition(STOPPED,START,STARTING);
412             builder = builder.addTransition(STOPPED,TERMINATE,TERMINATING);
413             builder = builder.addTransition(STOPPED,RESTART,RESTARTING);
414             builder = builder.addTransition(STOPPED,REBUILD,REBUILDING);
415             builder = builder.addTransition(STOPPED,CONFIG_MODIFY,CONFIGURING);
416             builder = builder.addTransition(STOPPED,CONFIG_SCALEOUT,CONFIGURING);
417             builder = builder.addTransition(STOPPED,CONFIG_RESTORE,CONFIGURING);
418             builder = builder.addTransition(STOPPED,HEALTHCHECK,TESTING);
419             builder = builder.addTransition(STOPPED,BACKUP,BACKING_UP);
420             builder = builder.addTransition(STOPPED,SNAPSHOT,SNAPSHOTTING);
421             builder = builder.addTransition(STOPPED,SOFTWARE_UPLOAD,SOFTWARE_UPLOADING);
422             builder = builder.addTransition(STOPPED,LIVE_UPGRADE,UPGRADING);
423             builder = builder.addTransition(STOPPED,ROLLBACK,ROLLBACKING);
424             builder = builder.addTransition(STOPPED,MIGRATE,MIGRATING);
425             builder = builder.addTransition(STOPPED,EVACUATE,EVACUATING);
426             builder = builder.addTransition(STOPPED,LOCK,STOPPED);
427             builder = builder.addTransition(STOPPED,UNLOCK,STOPPED);
428             builder = builder.addTransition(STOPPED,CHECKLOCK,STOPPED);
429
430             builder = builder.addTransition(CONFIGURING,SUCCESS,CONFIGURED);
431             builder = builder.addTransition(CONFIGURING,FAILURE,ERROR);
432
433             builder = builder.addTransition(TESTING,SUCCESS,TESTED);
434             builder = builder.addTransition(TESTING,FAILURE,ERROR);
435
436             builder = builder.addTransition(RESTARTING,SUCCESS,RUNNING);
437             builder = builder.addTransition(RESTARTING,FAILURE,ERROR);
438
439             builder = builder.addTransition(STARTING,SUCCESS,RUNNING);
440             builder = builder.addTransition(STARTING,FAILURE,ERROR);
441
442             builder = builder.addTransition(TERMINATING,SUCCESS,NOT_INSTANTIATED);
443             builder = builder.addTransition(TERMINATING,FAILURE,ERROR);
444
445             builder = builder.addTransition(REBUILDING,SUCCESS,RUNNING);
446             builder = builder.addTransition(REBUILDING,FAILURE,ERROR);
447
448             builder = builder.addTransition(STOPPING,SUCCESS,STOPPED);
449             builder = builder.addTransition(STOPPING,FAILURE,ERROR);
450
451             builder = builder.addTransition(BACKING_UP,SUCCESS,RUNNING);
452             builder = builder.addTransition(BACKING_UP,FAILURE,ERROR);
453
454             builder = builder.addTransition(SNAPSHOTTING,SUCCESS,RUNNING);
455             builder = builder.addTransition(SNAPSHOTTING,FAILURE,ERROR);
456
457             builder = builder.addTransition(SOFTWARE_UPLOADING,SUCCESS,RUNNING);
458             builder = builder.addTransition(SOFTWARE_UPLOADING,FAILURE,ERROR);
459
460             builder = builder.addTransition(UPGRADING,SUCCESS,RUNNING);
461             builder = builder.addTransition(UPGRADING,FAILURE,ERROR);
462
463             builder = builder.addTransition(ROLLBACKING,SUCCESS,RUNNING);
464             builder = builder.addTransition(ROLLBACKING,FAILURE,ERROR);
465
466             builder = builder.addTransition(MIGRATING,SUCCESS,RUNNING);
467             builder = builder.addTransition(MIGRATING,FAILURE,ERROR);
468
469             builder = builder.addTransition(EVACUATING,SUCCESS,RUNNING);
470             builder = builder.addTransition(EVACUATING,FAILURE,ERROR);
471
472
473             builder = builder.addTransition(CONFIGURED,START_APPLICATION,STARTING);
474             builder = builder.addTransition(TESTED,START_APPLICATION,STARTING);
475             builder = builder.addTransition(ERROR,START_APPLICATION,STARTING);
476             builder = builder.addTransition(UNKNOWN,START_APPLICATION,STARTING);
477             builder = builder.addTransition(RUNNING,START_APPLICATION,STARTING);
478
479             return builder.build();
480
481         }
482     }
483 }