Automation Composition Type State
=================================
-The states that an Automation Composition Type can have are shown in the diagram below.
+The states that an Automation Composition Type can have, are shown in the diagram below.
.. image:: images/acm-states/AcTypeStates.png
.. image:: images/acm-states/AcElementTypeStatesOnPpnt.png
+The states diagram below, shows the fail and timeout scenario.
+In that diagram the state is presented using this combination [ Composition Element Type State : Composition Type State : StateChangeResult ].
+
+.. image:: images/acm-states/AcTypeStatesFail.png
+
Automation Composition Instance State
=====================================
The states that an Automation Composition Instance can have are shown in the diagram below.
.. image:: images/acm-states/AcElementInstanceStatesOnPpnt.png
+Automation Composition State with fail and timeout
+==================================================
+The states that an Automation Composition Element Instance can have for each flow, are shown in the diagrams below.
+For each diagram the state is presented using this combination [ Instance Element State : Instance State : StateChangeResult ].
+
+Deploy
+------
+
+.. image:: images/acm-states/AcInstanceStatesDeploy.png
+
+Update
+------
+
+.. image:: images/acm-states/AcInstanceStatesUpdate.png
+
+Migrate
+-------
+
+.. image:: images/acm-states/AcInstanceStatesMigrate.png
+
+Delete
+------
+
+.. image:: images/acm-states/AcInstanceStatesDelete.png
+
End of Document
[*] --> UNDEPLOYED: Create
UNDEPLOYED --> [*]: Delete
UNDEPLOYED --> DEPLOYING: Deploy
-DEPLOYING --> DEPLOYED: AC Element\nInstance DEPLOYED
+DEPLOYING --> DEPLOYED: AC Instance\nElement DEPLOYED
DEPLOYING --> UNDEPLOYING: Undeploy
DEPLOYED --> UNDEPLOYING: Undeploy
-UNDEPLOYING --> UNDEPLOYED: AC Element\nInstance UNDEPLOYED
+DEPLOYED --> UPDATING: Update
+DEPLOYED --> MIGRATING: Migrate
+MIGRATING --> DEPLOYED: AC Instance\nElement MIGRATED
+UNDEPLOYING --> UNDEPLOYED: AC Instance\nElement UNDEPLOYED
+UNDEPLOYING --> UNDEPLOYED: AC Instance\nElement UNDEPLOYED
state DEPLOYED {
[*] --> LOCKED: Deploy
LOCKED --> [*]: Undeploy
LOCKED --> UNLOCKING: Unlock
- UNLOCKING --> UNLOCKED: AC Element\nInstance UNLOCKED
+ UNLOCKING --> UNLOCKED: AC Instance\nElement UNLOCKED
UNLOCKED --> LOCKING: Lock
UNLOCKING --> LOCKING: Lock
- LOCKING --> LOCKED: AC Element\nInstance LOCKED
+ LOCKING --> LOCKED: AC Instance\nElement LOCKED
}
@enduml
[*] --> UNDEPLOYED: Create
UNDEPLOYED --> [*]: Delete
UNDEPLOYED --> DEPLOYING: Deploy
-DEPLOYING --> DEPLOYED: AC Element Instances\nall DEPLOYED
+DEPLOYING --> DEPLOYED: AC Instance Elements\nall DEPLOYED
DEPLOYING --> UNDEPLOYING: Undeploy
DEPLOYED --> UNDEPLOYING: Undeploy
-UNDEPLOYING --> UNDEPLOYED: AC Element Types\nall UNDEPLOYED
-
+DEPLOYED --> UPDATING: Update
+DEPLOYED --> MIGRATING: Migrate
+UPDATING --> DEPLOYED: AC Instance Elements\nall UPDATED
+MIGRATING --> DEPLOYED: AC Instance Elements\nall MIGRATED
+UNDEPLOYING --> UNDEPLOYED: AC Instance Elements\nall UNDEPLOYED
state DEPLOYED {
[*] --> LOCKED: Deploy
LOCKED --> [*]: Undeploy
LOCKED --> UNLOCKING: Unlock
- UNLOCKING --> UNLOCKED: AC Element Types\nall UNLOCKED
+ UNLOCKING --> UNLOCKED: AC Instance Elements\nall UNLOCKED
UNLOCKED --> LOCKING: Lock
UNLOCKING --> LOCKING: Lock
- LOCKING --> LOCKED: AC Element Types\nall LOCKED
+ LOCKING --> LOCKED: AC Instance Elements\nall LOCKED
}
@enduml
--- /dev/null
+@startuml
+
+UNDEPLOYED:UNDEPLOYED:NO_ERROR --> DELETING:DELETING: Delete
+DELETING:DELETING --> UNDEPLOYED:DELETING:FAILED: Delete failed
+DELETING:DELETING --> DELETING:DELETING:TIMEOUT
+DELETING:DELETING --> [*]: Deleted
+UNDEPLOYED:DELETING:FAILED --> DELETING:DELETING: Delete
+DELETING:DELETING:TIMEOUT --> UNDEPLOYED:DELETING:FAILED: Delete failed
+DELETING:DELETING:TIMEOUT --> DELETING:DELETING: Delete
+DELETING:DELETING:TIMEOUT --> [*]: Deleted
+
+@enduml
--- /dev/null
+@startuml
+
+[*] --> UNDEPLOYED:UNDEPLOYED:NO_ERROR: Create
+UNDEPLOYED:UNDEPLOYED:NO_ERROR --> [*]: Delete
+UNDEPLOYED:UNDEPLOYED:NO_ERROR --> DEPLOYING:DEPLOYING: Deploy
+DEPLOYING:DEPLOYING --> DEPLOYED:DEPLOYED:NO_ERROR: Deployed
+DEPLOYING:DEPLOYING --> UNDEPLOYED:DEPLOYING:FAILED: Deploy failed
+DEPLOYING:DEPLOYING --> DEPLOYING:DEPLOYING:TIMEOUT: Deploy timeout
+DEPLOYING:DEPLOYING:TIMEOUT --> DEPLOYED:DEPLOYED:NO_ERROR: Deployed
+DEPLOYING:DEPLOYING:TIMEOUT --> UNDEPLOYED:DEPLOYING:FAILED: Deploy failed
+DEPLOYING:DEPLOYING:TIMEOUT --> DEPLOYING:DEPLOYING: Deploy
+UNDEPLOYED:DEPLOYING:FAILED --> DEPLOYING:DEPLOYING: Deploy
+UNDEPLOYED:DEPLOYING:FAILED --> UNDEPLOYING:UNDEPLOYING: Undeploy
+DEPLOYED:DEPLOYED:NO_ERROR --> UNDEPLOYING:UNDEPLOYING: Undeploy
+UNDEPLOYING:UNDEPLOYING --> UNDEPLOYED:UNDEPLOYED:NO_ERROR: Undeployed
+UNDEPLOYING:UNDEPLOYING --> DEPLOYED:UNDEPLOYING:FAILED: Undeploy failed
+UNDEPLOYING:UNDEPLOYING --> UNDEPLOYING:UNDEPLOYING:TIMEOUT: Undeploy timeout
+DEPLOYED:UNDEPLOYING:FAILED --> UNDEPLOYING:UNDEPLOYING: Undeploy
+DEPLOYED:UNDEPLOYING:FAILED --> DEPLOYING:DEPLOYING: Deploy
+UNDEPLOYING:UNDEPLOYING:TIMEOUT --> UNDEPLOYED:UNDEPLOYED:NO_ERROR: Undeployed
+UNDEPLOYING:UNDEPLOYING:TIMEOUT --> DEPLOYED:UNDEPLOYING:FAILED: Undeploy failed
+UNDEPLOYING:UNDEPLOYING:TIMEOUT --> UNDEPLOYING:UNDEPLOYING: Undeploy
+UNDEPLOYING:UNDEPLOYING:TIMEOUT --> DEPLOYING:DEPLOYING: Deploy
+
+@enduml
--- /dev/null
+@startuml
+
+DEPLOYED:DEPLOYED:NO_ERROR --> MIGRATING:MIGRATING: Migrate
+MIGRATING:MIGRATING --> DEPLOYED:DEPLOYED:NO_ERROR: Migrated
+MIGRATING:MIGRATING --> DEPLOYED:MIGRATING:FAILED: Migrate failed
+MIGRATING:MIGRATING --> MIGRATING:MIGRATING:TIMEOUT: Migrate timeout
+DEPLOYED:MIGRATING:FAILED --> UNDEPLOYING:UNDEPLOYING: Undeploy
+MIGRATING:MIGRATING:TIMEOUT --> DEPLOYED:MIGRATING:FAILED: Migrate failed
+MIGRATING:MIGRATING:TIMEOUT --> UNDEPLOYING:UNDEPLOYING: Undeploy
+MIGRATING:MIGRATING:TIMEOUT --> DEPLOYED:DEPLOYED:NO_ERROR: Migrated
+
+@enduml
--- /dev/null
+@startuml
+
+DEPLOYED:DEPLOYED:NO_ERROR --> UPDATING:UPDATING: Update
+UPDATING:UPDATING --> DEPLOYED:DEPLOYED:NO_ERROR: Updated
+UPDATING:UPDATING --> DEPLOYED:UPDATING:FAILED: Update failed
+UPDATING:UPDATING --> UPDATING:UPDATING:TIMEOUT: Update timeout
+DEPLOYED:UPDATING:FAILED --> UPDATING:UPDATING: Update
+DEPLOYED:UPDATING:FAILED --> UNDEPLOYING:UNDEPLOYING: Undeploy
+UPDATING:UPDATING:TIMEOUT --> UPDATING:UPDATING: Update
+UPDATING:UPDATING:TIMEOUT --> DEPLOYED:UPDATING:FAILED: Update failed
+UPDATING:UPDATING:TIMEOUT --> UNDEPLOYING:UNDEPLOYING: Undeploy
+UPDATING:UPDATING:TIMEOUT --> DEPLOYED:DEPLOYED:NO_ERROR: Updated
+
+@enduml
--- /dev/null
+@startuml
+
+COMMISSIONED:COMMISSIONED:NO_ERROR --> PRIMING:PRIMING: Prime
+
+PRIMING:PRIMING --> PRIMED:PRIMED:NO_ERROR: AC Element Types\nall PRIMED
+PRIMING:PRIMING --> COMMISSIONED:PRIMING:FAIL: Prime Failed
+PRIMING:PRIMING --> PRIMING:PRIMING:TIMEOUT: Prime Timeout
+
+COMMISSIONED:PRIMING:FAIL --> DEPRIMING:DEPRIMING: Deprime
+COMMISSIONED:PRIMING:FAIL --> PRIMING:PRIMING: Prime Again
+
+PRIMING:PRIMING:TIMEOUT --> DEPRIMING:DEPRIMING: Deprime
+PRIMING:PRIMING:TIMEOUT --> PRIMING:PRIMING: Prime Again
+PRIMING:PRIMING:TIMEOUT --> PRIMED:PRIMED:NO_ERROR: AC Element Types\nall PRIMED
+
+DEPRIMING:DEPRIMING --> COMMISSIONED:COMMISSIONED:NO_ERROR: AC Element Types\nall DEPRIMED
+DEPRIMING:DEPRIMING --> PRIMED:DEPRIMING:FAIL: Deprime Failed
+DEPRIMING:DEPRIMING --> DEPRIMING:DEPRIMING:TIMEOUT: Deprime Timeout
+
+PRIMED:DEPRIMING:FAIL --> DEPRIMING:DEPRIMING: Deprime Again
+PRIMED:DEPRIMING:FAIL --> PRIMING:PRIMING: Prime
+
+DEPRIMING:DEPRIMING:TIMEOUT --> DEPRIMING:DEPRIMING: Deprime Again
+DEPRIMING:DEPRIMING:TIMEOUT --> PRIMING:PRIMING: Prime
+DEPRIMING:DEPRIMING:TIMEOUT --> COMMISSIONED:COMMISSIONED:NO_ERROR: AC Element Types\nall DEPRIMED
+
+PRIMED:PRIMED:NO_ERROR --> DEPRIMING:DEPRIMING: Deprime
+
+@enduml