Add documentation for ACM failure handling
[policy/parent.git] / docs / clamp / acm / api-protocol / system-level-dialogues.rst
index 4ffcbe6..6be26e1 100644 (file)
@@ -114,9 +114,18 @@ Note that this dialogue creates the Automation Composition Instance in the ACM d
 
 3.2 Delete an Automation Composition Instance
 ---------------------------------------------
+The user requests the AC Instance to be deleted using a REST endpoint. The ACM Runtime orders the AC Instance to be deleted.
 
 .. image:: ../images/system-dialogues/DeleteAcInstance.png
 
+Each participant deletes its AC Element Instances from the AC Instance
+
+.. image:: ../images/system-dialogues/DeleteInstanceElements.png
+
+The ACM Runtime receives and stores the responses, when all instances element are deleted, it delete the instance.
+
+.. image:: ../images/system-dialogues/DeleteResponseStored.png
+
 3.3 Deploy Automation Composition Instance
 ------------------------------------------
 The user requests the AC Instance to be deployed using a REST endpoint. The ACM Runtime orders the AC Instance to be deployed to Participants.
@@ -131,7 +140,21 @@ The ACM Runtime receives and stores the responses.
 
 .. image:: ../images/system-dialogues/DeployResponseStored.png
 
-3.4 Undeploy Automation Composition Instance
+3.4 Update Automation Composition Instance
+------------------------------------------
+The user requests the AC Instance to be updated using a REST endpoint. The ACM Runtime orders the AC Instance to be updated.
+
+.. image:: ../images/system-dialogues/UpdateAcInstance.png
+
+Each participant updates its AC Element from the AC Instance
+
+.. image:: ../images/system-dialogues/UpdateAcElements.png
+
+The ACM Runtime receives and stores the responses.
+
+.. image:: ../images/system-dialogues/UpdateAcElementsResponse.png
+
+3.5 Undeploy Automation Composition Instance
 --------------------------------------------
 The user requests the AC Instance to be undeployed using a REST endpoint. The ACM Runtime orders the AC Instance to be undeployed.
 
@@ -145,12 +168,12 @@ The ACM Runtime receives and stores the responses.
 
 .. image:: ../images/system-dialogues/UndeployResponseStored.png
 
-3.5 Read Automation Composition Instances
+3.6 Read Automation Composition Instances
 -----------------------------------------
 
 .. image:: ../images/system-dialogues/ReadAcInstances.png
 
-3.6 Unlock Automation Composition Instance
+3.7 Unlock Automation Composition Instance
 ------------------------------------------
 The user requests the AC Instance to be unlocked using a REST endpoint. The ACM Runtime orders the AC Instance to be unlocked on Participants.
 
@@ -164,7 +187,7 @@ The ACM Runtime receives and stores the responses.
 
 .. image:: ../images/system-dialogues/UnlockResponseStored.png
 
-3.7 Lock Automation Composition Instance
+3.8 Lock Automation Composition Instance
 ----------------------------------------
 The user requests the AC Instance to be locked using a REST endpoint. The ACM Runtime orders the AC Instance to be locked on Participants.
 
@@ -178,18 +201,58 @@ The ACM Runtime receives and stores the responses.
 
 .. image:: ../images/system-dialogues/LockResponseStored.png
 
-3.8 Update Operational State on Automation Composition Instance
+3.9 Update Operational State on Automation Composition Instance
 ---------------------------------------------------------------
 
 .. image:: ../images/system-dialogues/UpdateOperationalState.png
 
-3.9 Update Usage State on Automation Composition Instance
----------------------------------------------------------
+3.10 Update Usage State on Automation Composition Instance
+----------------------------------------------------------
 
 .. image:: ../images/system-dialogues/UpdateUsageState.png
 
-End of Document
+3.11 Failure handling in ACM
+----------------------------
+After any ACM operation is completed, one of the following result messages will be updated in the ACM. These result values are
+updated along with the overall state of the ACM instance.
 
+ - NO_ERROR
+ - TIMEOUT
+ - FAILED
+
+The enum result values 'NO_ERROR' and 'FAILED' have to be set by the participants while reporting the CompositionState back to the runtime.
+
+If the operation succeeds, the participant is required to update the result value with 'NO_ERROR' while reporting the composition state.
+
+.. image:: ../images/system-dialogues/SuccessAcmResult.png
+
+The result value should be updated as 'FAILED' by the participants when any failures occurred.
+Also in case of failures, the overall state of the composition remains in any of the transitioning states (DEPLOYING, UNDEPLOYING, PRIMING, UPDATING)
+with the appropriate result values updated by the participant.
+
+.. image:: ../images/system-dialogues/FailedAcmResult.png
+
+Runtime marks the operation result with the value 'TIMEOUT' when the participant gets disconnected from the ACM-R in the middle of any ACM operation.
+When the participant fails to report the periodic heartbeat during an ACM operation, the operation result is then marked as 'TIMEOUT' by the ACM-R after the configured waiting limit is
+reached.
+
+.. image:: ../images/system-dialogues/TimeoutAcmResult.png
+
+The following parameter is set in the application properties for the runtime to configure the 'TIMEOUT' value in milliseconds.
+
+.. code-block:: yaml
+
+        runtime:
+          participantParameters:
+            maxStatusWaitMs: 100000  --> Denotes the maximum wait time by the runtime to receive the periodic status update from the participants
+
+An ACM operation has to be completed and updated with any of the above specified result values in order to allow the user to trigger subsequent requests.
+The user cannot trigger any state change events before the operation gets completed. When an operation is marked 'TIMEOUT', the following scenarios are applicable.
+
+ - The participant might come back ONLINE and complete the operation to mark the result with 'NO_ERROR' or 'FAILED'
+ - The user can trigger another state change event to the ACM.
+
+End of Document