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