diff options
Diffstat (limited to 'docs/clamp/acm/plantuml')
28 files changed, 412 insertions, 108 deletions
diff --git a/docs/clamp/acm/plantuml/states/AcInstanceSubStates.puml b/docs/clamp/acm/plantuml/states/AcInstanceSubStates.puml new file mode 100644 index 00000000..918a03b3 --- /dev/null +++ b/docs/clamp/acm/plantuml/states/AcInstanceSubStates.puml @@ -0,0 +1,18 @@ +@startuml + +UNDEPLOYED --> DEPLOYING: Deploy +DEPLOYING --> DEPLOYED: AC Instance Elements\nall DEPLOYED + +state UNDEPLOYED { + NONE:UNDEPLOYED --> PREPARING: Prepare + PREPARING --> NONE:UNDEPLOYED: Completed +} + +state DEPLOYED { + NONE:DEPLOYED --> REVIEWING: Review + REVIEWING --> NONE:DEPLOYED: Completed + NONE:DEPLOYED --> MIGRATION_PRECHECKING: Migrate precheck + MIGRATION_PRECHECKING --> NONE:DEPLOYED: Completed +} + +@enduml diff --git a/docs/clamp/acm/plantuml/system-dialogues/DeleteResponseStored.puml b/docs/clamp/acm/plantuml/system-dialogues/DeleteResponseStored.puml new file mode 100644 index 00000000..91be80b0 --- /dev/null +++ b/docs/clamp/acm/plantuml/system-dialogues/DeleteResponseStored.puml @@ -0,0 +1,19 @@ +@startuml + +participant "ACM Runtime" +database "ACM Database" +participant "Participant Replica 1" +participant "Participant Replica 2" + +"ACM Runtime" <- "Participant Replica 1": [ASYNC] Delete Automation Composition Element \nInstance Response +"ACM Runtime" -> "ACM Database": Store Automation Composition Element Instance \nResponse Information + +alt Is AC Element Instance Deleted? + "ACM Runtime" -> "ACM Database": Set AC Element Instance State as DELETED + alt Are all the other AC Element Instances in this AC Instance in state DELETED? + "ACM Runtime" -> "ACM Database": Delete AC Instance + "ACM Runtime" -> "Participant Replica 2": [ASYNC] Send sync message + end +end + +@enduml diff --git a/docs/clamp/acm/plantuml/system-dialogues/DeployResponseStored.puml b/docs/clamp/acm/plantuml/system-dialogues/DeployResponseStored.puml index 939f87ce..cb40d355 100644 --- a/docs/clamp/acm/plantuml/system-dialogues/DeployResponseStored.puml +++ b/docs/clamp/acm/plantuml/system-dialogues/DeployResponseStored.puml @@ -1,16 +1,18 @@ @startuml -participant ACM_Runtime -participant Participant -database ACM_Database +participant "ACM Runtime" +database "ACM Database" +participant "Participant Replica 1" +participant "Participant Replica 2" -ACM_Runtime <- Participant: [ASYNC] Deploy Automation Composition Element Instance Response -ACM_Runtime -> ACM_Database: Store Automation Composition Element Instance Response Information +"ACM Runtime" <- "Participant Replica 1": [ASYNC] Deploy Automation Composition Element \nInstance Response +"ACM Runtime" -> "ACM Database": Store Automation Composition Element Instance \nResponse Information alt Is AC Element Instance Deployed? - ACM_Runtime -> ACM_Database: Set AC Element Instance State as DEPLOYED + "ACM Runtime" -> "ACM Database": Set AC Element Instance State as DEPLOYED alt Are all the other AC Element Instances in this AC Instance in state DEPLOYED? - ACM_Runtime -> ACM_Runtime: Set AC Instance state as DEPLOYED + "ACM Runtime" -> "ACM Database": Set AC Instance state as DEPLOYED + "ACM Runtime" -> "Participant Replica 2": [ASYNC] Send sync message end end diff --git a/docs/clamp/acm/plantuml/system-dialogues/DeregisterParticipant.puml b/docs/clamp/acm/plantuml/system-dialogues/DeregisterParticipant.puml index 061dbea1..78689689 100644 --- a/docs/clamp/acm/plantuml/system-dialogues/DeregisterParticipant.puml +++ b/docs/clamp/acm/plantuml/system-dialogues/DeregisterParticipant.puml @@ -1,20 +1,11 @@ @startuml participant Participant -participant ACM_Runtime -database ACM_Database - -Participant -> Participant: Uninitialize all ACM Element Instances running on Participant\n(See Instantiation Dialogues) -activate Participant -deactivate Participant - -Participant -> ACM_Runtime: [ASYNC] Deregister -ACM_Runtime -> ACM_Database: Delete Participant Registration -ACM_Runtime -> ACM_Database: Set Participant State as OFFLINE -Participant <- ACM_Runtime: [ASYNC] Deregistration Accepted - -ACM_Runtime -> ACM_Runtime: Mark all ACM Element Instances\nrunning on Participant as OFFLINE -activate ACM_Runtime -deactivate ACM_Runtime +participant "ACM Runtime" +database "ACM Database" +Participant -> "ACM Runtime": [ASYNC] Deregister +"ACM Runtime" -> "ACM Database": Set Participant Replica State as OFF_LINE +Participant <- "ACM Runtime": [ASYNC] Deregistration Accepted +Participant -> Participant: Shutdown Participant @enduml diff --git a/docs/clamp/acm/plantuml/system-dialogues/FailedAcmResult.puml b/docs/clamp/acm/plantuml/system-dialogues/FailedAcmResult.puml new file mode 100644 index 00000000..cb11012a --- /dev/null +++ b/docs/clamp/acm/plantuml/system-dialogues/FailedAcmResult.puml @@ -0,0 +1,21 @@ +@startuml +participant "ACM Runtime" +participant "Participant Replica 1" +participant "Participant API Replica 1" +participant "Participant Replica 2" + +"ACM Runtime" -> "Participant Replica 1": [ASYNC] Trigger an ACM operation for this AC Instance +alt Does the primed Participant ID on this AC Element Instance match my Participant ID? + alt Does this AC Element Instance exist? + "Participant Replica 1" -> "ACM Runtime": [ASYNC] AC Element does not exist + end + "Participant Replica 1" -> "Participant API Replica 1": Perform ACM operation + "Participant API Replica 1" -> "Participant Replica 1": ACM operation failed Response + "Participant Replica 1" -> "ACM Runtime": [ASYNC] INFO: ACM operation failed + note left of "Participant Replica 1" + This returns the response message with StateChangeResult 'FAILED' + end note +"ACM Runtime" -> "Participant Replica 2": [ASYNC] Send sync message +end + +@enduml diff --git a/docs/clamp/acm/plantuml/system-dialogues/LockResponseStored.puml b/docs/clamp/acm/plantuml/system-dialogues/LockResponseStored.puml index 0ffc51a6..111a5726 100644 --- a/docs/clamp/acm/plantuml/system-dialogues/LockResponseStored.puml +++ b/docs/clamp/acm/plantuml/system-dialogues/LockResponseStored.puml @@ -1,16 +1,18 @@ @startuml -participant ACM_Runtime -participant Participant -database ACM_Database +participant "ACM Runtime" +database "ACM Database" +participant "Participant Replica 1" +participant "Participant Replica 2" -ACM_Runtime <- Participant: [ASYNC] Lock Automation Composition Element Instance Response -ACM_Runtime -> ACM_Database: Store Automation Composition Element Instance Response Information +"ACM Runtime" <- "Participant Replica 1": [ASYNC] Lock Automation Composition Element \nInstance Response +"ACM Runtime" -> "ACM Database": Store Automation Composition Element Instance \nResponse Information alt Is AC Element Instance Locked? - ACM_Runtime -> ACM_Database: Set AC Element Instance administrative state as LOCKED + "ACM Runtime" -> "ACM Database": Set AC Element Instance administrative state as LOCKED alt Have all the other AC Element Instances in this AC Instance been LOCKED? - ACM_Runtime -> ACM_Runtime: Set AC Instance administrative state as LOCKED + "ACM Runtime" -> "ACM Database": Set AC Instance administrative state as LOCKED + "ACM Runtime" -> "Participant Replica 2": [ASYNC] Send sync message end end diff --git a/docs/clamp/acm/plantuml/system-dialogues/MigrateAcElementsResponse.puml b/docs/clamp/acm/plantuml/system-dialogues/MigrateAcElementsResponse.puml index 3ba0410f..80693aef 100755..100644 --- a/docs/clamp/acm/plantuml/system-dialogues/MigrateAcElementsResponse.puml +++ b/docs/clamp/acm/plantuml/system-dialogues/MigrateAcElementsResponse.puml @@ -1,10 +1,12 @@ @startuml
participant "ACM Runtime"
participant "ACM Database"
-participant Participant
+participant "Participant Replica 1"
+participant "Participant Replica 2"
alt "instance Id and Composition Ids exist"
- Participant -> "ACM Runtime" : [ASYNC] Migration completed
+ "Participant Replica 1" -> "ACM Runtime" : [ASYNC] Migration completed
"ACM Runtime" -> "ACM Database" : instance and AC Element will be set in a final state (DEPLOYED)\n and Comp Def IDs change for instance and AC Element
+ "ACM Runtime" -> "Participant Replica 2": [ASYNC] Send sync message
end
@enduml
diff --git a/docs/clamp/acm/plantuml/system-dialogues/MigrationPrecheckAcInstance.puml b/docs/clamp/acm/plantuml/system-dialogues/MigrationPrecheckAcInstance.puml new file mode 100644 index 00000000..14252f22 --- /dev/null +++ b/docs/clamp/acm/plantuml/system-dialogues/MigrationPrecheckAcInstance.puml @@ -0,0 +1,18 @@ +@startuml +participant REST +participant "ACM Runtime" +participant Participants +database "ACM Database" + +REST -> "ACM Runtime": Migration Precheck Automation Composition Instance +"ACM Runtime" -> "ACM Database": Read Automation Composition Instance Information + +alt Automation Composition Instance exists + "ACM Runtime" -> Participants: [ASYNC] Migration Precheck AC Element Instances for this AC Instance + "ACM Runtime" -> "ACM Database": Set AC Instance and its AC Element Instances to subState MIGRATION_PRECHECKING + "ACM Runtime" -> REST: Migration Precheck of Automation Composition Instance has been requested +else + "ACM Runtime" -> REST: Automation Composition instance does not exist +end + +@enduml diff --git a/docs/clamp/acm/plantuml/system-dialogues/MigrationPrecheckAcInstanceElements.puml b/docs/clamp/acm/plantuml/system-dialogues/MigrationPrecheckAcInstanceElements.puml new file mode 100644 index 00000000..39d71b69 --- /dev/null +++ b/docs/clamp/acm/plantuml/system-dialogues/MigrationPrecheckAcInstanceElements.puml @@ -0,0 +1,25 @@ +@startuml +participant "ACM Runtime" +participant Participant +participant "Participant API" + +"ACM Runtime" -> Participant: [ASYNC] Migration Precheck AC Element Instances for this AC Instance + +loop over AC Element Instances in AC Instance + alt Does the primed Participant ID on this AC Element Instance\nmatch my Participant ID? + Participant -> "Participant API": Migration Precheck AC Element Instance + activate "Participant API" + Participant <- "Participant API": AC Element Instance Migration Precheck Response + deactivate "Participant API" + alt AC Element Migration Precheck completed + Participant -> Participant: Set AC Element Instance administrative subState to NONE + "ACM Runtime" <- Participant: [ASYNC] INFO: Migration Precheck AC Element has been completed + end + else + note left of Participant + Ignore this AC Element instance as its for another participant + end note + end +end + +@enduml diff --git a/docs/clamp/acm/plantuml/system-dialogues/MigrationPrecheckResponseStored.puml b/docs/clamp/acm/plantuml/system-dialogues/MigrationPrecheckResponseStored.puml new file mode 100644 index 00000000..cc63e9dd --- /dev/null +++ b/docs/clamp/acm/plantuml/system-dialogues/MigrationPrecheckResponseStored.puml @@ -0,0 +1,19 @@ +@startuml + +participant "ACM Runtime" +database "ACM Database" +participant "Participant Replica 1" +participant "Participant Replica 2" + +"ACM Runtime" <- "Participant Replica 1": [ASYNC] Migration Precheck Automation Composition Element \nInstance Response +"ACM Runtime" -> "ACM Database": Store Automation Composition Element Instance \nResponse Information + +alt Is Migration Precheck AC Element Instance Completed? + "ACM Runtime" -> "ACM Database": Set AC Element Instance SubState as NONE + alt Are all the other AC Element Instances in this AC Instance in state NONE? + "ACM Runtime" -> "ACM Database": Set AC Instance SubState as NONE + "ACM Runtime" -> "Participant Replica 2": [ASYNC] Send sync message + end +end + +@enduml diff --git a/docs/clamp/acm/plantuml/system-dialogues/PrepareAcInstance.puml b/docs/clamp/acm/plantuml/system-dialogues/PrepareAcInstance.puml new file mode 100644 index 00000000..dd7cc7ee --- /dev/null +++ b/docs/clamp/acm/plantuml/system-dialogues/PrepareAcInstance.puml @@ -0,0 +1,18 @@ +@startuml +participant REST +participant "ACM Runtime" +participant Participants +database "ACM Database" + +REST -> "ACM Runtime": Prepare Automation Composition Instance +"ACM Runtime" -> "ACM Database": Read Automation Composition Instance Information + +alt Automation Composition Instance exists + "ACM Runtime" -> Participants: [ASYNC] Prepare AC Element Instances for this AC Instance + "ACM Runtime" -> "ACM Database": Set AC Instance and its AC Element Instances to subState PREPARING + "ACM Runtime" -> REST: Prepare of Automation Composition Instance has been requested +else + "ACM Runtime" -> REST: Automation Composition instance does not exist +end + +@enduml diff --git a/docs/clamp/acm/plantuml/system-dialogues/PrepareAcInstanceElements.puml b/docs/clamp/acm/plantuml/system-dialogues/PrepareAcInstanceElements.puml new file mode 100644 index 00000000..5c5fbcee --- /dev/null +++ b/docs/clamp/acm/plantuml/system-dialogues/PrepareAcInstanceElements.puml @@ -0,0 +1,25 @@ +@startuml +participant "ACM Runtime" +participant Participant +participant "Participant API" + +"ACM Runtime" -> Participant: [ASYNC] Prepare AC Element Instances for this AC Instance + +loop over AC Element Instances in AC Instance + alt Does the primed Participant ID on this AC Element Instance\nmatch my Participant ID? + Participant -> "Participant API": Prepare AC Element Instance + activate "Participant API" + Participant <- "Participant API": AC Element Instance Prepare Response + deactivate "Participant API" + alt AC Element Prepare completed + Participant -> Participant: Set AC Element Instance administrative subState to NONE + "ACM Runtime" <- Participant: [ASYNC] INFO: Prepare AC Element has been completed + end + else + note left of Participant + Ignore this AC Element instance as its for another participant + end note + end +end + +@enduml diff --git a/docs/clamp/acm/plantuml/system-dialogues/PrepareResponseStored.puml b/docs/clamp/acm/plantuml/system-dialogues/PrepareResponseStored.puml new file mode 100644 index 00000000..51ff03b1 --- /dev/null +++ b/docs/clamp/acm/plantuml/system-dialogues/PrepareResponseStored.puml @@ -0,0 +1,19 @@ +@startuml + +participant "ACM Runtime" +database "ACM Database" +participant "Participant Replica 1" +participant "Participant Replica 2" + +"ACM Runtime" <- "Participant Replica 1": [ASYNC] Prepare Automation Composition Element \nInstance Response +"ACM Runtime" -> "ACM Database": Store Automation Composition Element Instance \nResponse Information + +alt Is Prepare AC Element Instance Completed? + "ACM Runtime" -> "ACM Database": Set AC Element Instance SubState as NONE + alt Are all the other AC Element Instances in this AC Instance in state NONE? + "ACM Runtime" -> "ACM Database": Set AC Instance SubState as NONE + "ACM Runtime" -> "Participant Replica 2": [ASYNC] Send sync message + end +end + +@enduml diff --git a/docs/clamp/acm/plantuml/system-dialogues/PrimeAcTypeOnPpnts.puml b/docs/clamp/acm/plantuml/system-dialogues/PrimeAcTypeOnPpnts.puml index 0c36a18c..c7a8a5e9 100644 --- a/docs/clamp/acm/plantuml/system-dialogues/PrimeAcTypeOnPpnts.puml +++ b/docs/clamp/acm/plantuml/system-dialogues/PrimeAcTypeOnPpnts.puml @@ -1,28 +1,28 @@ @startuml participant REST -participant ACM_Runtime +participant "ACM Runtime" +database "ACM Database" participant Participant -database ACM_Database alt Automation Composition Type has Deployed Instances - REST <- ACM_Runtime: Priming of Automation Composition Type Failed, instances deployed + REST <- "ACM Runtime": Priming of Automation Composition Type Failed, \ninstances deployed else Automation Composition Type is in state COMMISSIONED or PRIMED - REST -> ACM_Runtime: Prime Automation Composition Type + REST -> "ACM Runtime": Prime Automation Composition Type - ACM_Runtime -> ACM_Database: Read Automation Composition Type - ACM_Runtime -> ACM_Database: Read Participants - ACM_Runtime -> ACM_Runtime: Set suitable participant ID on each AC Element Type + "ACM Runtime" -> "ACM Database": Read Automation Composition Type + "ACM Runtime" -> "ACM Database": Read Participants + "ACM Runtime" -> "ACM Runtime": Set suitable participant ID on each AC Element Type alt Was a sutable participant ID found for each AC Element Type? - ACM_Runtime -> Participant: [ASYNC] Send Priming Request to all Participants\nwith Automation Composition Type Definition - ACM_Runtime -> ACM_Database: Set Automation Composition Type State to PRIMING + "ACM Runtime" -> Participant: [ASYNC] Send Priming Request to all Participants\nwith Automation Composition Type Definition + "ACM Runtime" -> "ACM Database": Set Automation Composition Type State to PRIMING - REST <- ACM_Runtime: Priming of Automation Composition Type Ordered + REST <- "ACM Runtime": Priming of Automation Composition Type Ordered else - REST <- ACM_Runtime: Priming of Automation Composition Type Faield, no sutiable participant found + REST <- "ACM Runtime": Priming of Automation Composition Type Faield, \nno sutiable participant found end else - REST <- ACM_Runtime: Priming of Automation Composition Type Failed, invalid state + REST <- "ACM Runtime": Priming of Automation Composition Type Failed, \ninvalid state end @enduml diff --git a/docs/clamp/acm/plantuml/system-dialogues/PrimeInfoUpdatedInDb.puml b/docs/clamp/acm/plantuml/system-dialogues/PrimeInfoUpdatedInDb.puml index 4a9f7d17..27075ca9 100644 --- a/docs/clamp/acm/plantuml/system-dialogues/PrimeInfoUpdatedInDb.puml +++ b/docs/clamp/acm/plantuml/system-dialogues/PrimeInfoUpdatedInDb.puml @@ -1,14 +1,16 @@ @startuml -participant ACM_Runtime -participant Participant -database ACM_Database +participant "ACM Runtime" +database "ACM Database" +participant "Participant Replica 1" +participant "Participant Replica 2" -ACM_Runtime <- Participant: [ASYNC] Result of Priming of AC Element Type -ACM_Runtime -> ACM_Database: Record result of AC Element Type Priming +"ACM Runtime" <- "Participant Replica 1": [ASYNC] Result of Priming of AC Element Type +"ACM Runtime" -> "ACM Database": Record result of AC Element Type Priming alt Is AC Element Type Primed? alt Have all the other AC Element Types in this AC Type been Primed? - ACM_Runtime -> ACM_Runtime: Set AC Type state as PRIMED + "ACM Runtime" -> "ACM Database": Set AC Type state as PRIMED + "ACM Runtime" -> "Participant Replica 2": [ASYNC] Send sync message end end diff --git a/docs/clamp/acm/plantuml/system-dialogues/RegisterParticipant.puml b/docs/clamp/acm/plantuml/system-dialogues/RegisterParticipant.puml index 0cf091c0..54be2af4 100644 --- a/docs/clamp/acm/plantuml/system-dialogues/RegisterParticipant.puml +++ b/docs/clamp/acm/plantuml/system-dialogues/RegisterParticipant.puml @@ -1,16 +1,24 @@ @startuml participant Participant -participant ACM_Runtime -database ACM_Database - -Participant -> ACM_Runtime: [ASYNC] Register -ACM_Runtime -> ACM_Database: Create or Update Participant Registration\nand store supported ACM element types -ACM_Runtime -> ACM_Database: Set Participant State as ONLINE -Participant <- ACM_Runtime: Registration Accepted - -ACM_Runtime -> ACM_Runtime: Mark all ACM Element Instances\nrunning on Participant as ONLINE -activate ACM_Runtime -deactivate ACM_Runtime +participant "ACM Runtime" +database "ACM Database" +activate Participant + Participant -> "ACM Runtime": [ASYNC] Register +activate "ACM Runtime" +deactivate Participant + "ACM Runtime" -> "ACM Database": Create a Participant Replica Registration,\n store supported ACM element types \n and set Replica State as ON_LINE + loop ACM Definition + "ACM Runtime" -> Participant: [ASYNC] Sync message\n send Common Property Values\n and Instance Elements of this Participant +activate Participant + Participant -> Participant: Store Common Property Values and Instance Elements + end loop + alt + "ACM Runtime" -> Participant: [ASYNC] Registration Accepted +deactivate "ACM Runtime" +Participant -> Participant: set participant as registered +Participant -> "ACM Runtime": [ASYNC] Status message +deactivate Participant +end @enduml diff --git a/docs/clamp/acm/plantuml/system-dialogues/ReviewAcInstance.puml b/docs/clamp/acm/plantuml/system-dialogues/ReviewAcInstance.puml new file mode 100644 index 00000000..ce40a003 --- /dev/null +++ b/docs/clamp/acm/plantuml/system-dialogues/ReviewAcInstance.puml @@ -0,0 +1,18 @@ +@startuml +participant REST +participant "ACM Runtime" +participant Participants +database "ACM Database" + +REST -> "ACM Runtime": Review Automation Composition Instance +"ACM Runtime" -> "ACM Database": Read Automation Composition Instance Information + +alt Automation Composition Instance exists + "ACM Runtime" -> Participants: [ASYNC] Review AC Element Instances for this AC Instance + "ACM Runtime" -> "ACM Database": Set AC Instance and its AC Element Instances to subState REVIEWING + "ACM Runtime" -> REST: Review of Automation Composition Instance has been requested +else + "ACM Runtime" -> REST: Automation Composition instance does not exist +end + +@enduml diff --git a/docs/clamp/acm/plantuml/system-dialogues/ReviewAcInstanceElements.puml b/docs/clamp/acm/plantuml/system-dialogues/ReviewAcInstanceElements.puml new file mode 100644 index 00000000..45454e6a --- /dev/null +++ b/docs/clamp/acm/plantuml/system-dialogues/ReviewAcInstanceElements.puml @@ -0,0 +1,25 @@ +@startuml +participant "ACM Runtime" +participant Participant +participant "Participant API" + +"ACM Runtime" -> Participant: [ASYNC] Review AC Element Instances for this AC Instance + +loop over AC Element Instances in AC Instance + alt Does the primed Participant ID on this AC Element Instance\nmatch my Participant ID? + Participant -> "Participant API": Review AC Element Instance + activate "Participant API" + Participant <- "Participant API": AC Element Instance Review Response + deactivate "Participant API" + alt AC Element Review completed + Participant -> Participant: Set AC Element Instance administrative subState to NONE + "ACM Runtime" <- Participant: [ASYNC] INFO: Review AC Element has been completed + end + else + note left of Participant + Ignore this AC Element instance as its for another participant + end note + end +end + +@enduml diff --git a/docs/clamp/acm/plantuml/system-dialogues/ReviewResponseStored.puml b/docs/clamp/acm/plantuml/system-dialogues/ReviewResponseStored.puml new file mode 100644 index 00000000..13287e61 --- /dev/null +++ b/docs/clamp/acm/plantuml/system-dialogues/ReviewResponseStored.puml @@ -0,0 +1,19 @@ +@startuml + +participant "ACM Runtime" +database "ACM Database" +participant "Participant Replica 1" +participant "Participant Replica 2" + +"ACM Runtime" <- "Participant Replica 1": [ASYNC] Review Automation Composition Element \nInstance Response +"ACM Runtime" -> "ACM Database": Store Automation Composition Element Instance \nResponse Information + +alt Is Review AC Element Instance Completed? + "ACM Runtime" -> "ACM Database": Set AC Element Instance SubState as NONE + alt Are all the other AC Element Instances in this AC Instance in state NONE? + "ACM Runtime" -> "ACM Database": Set AC Instance SubState as NONE + "ACM Runtime" -> "Participant Replica 2": [ASYNC] Send sync message + end +end + +@enduml diff --git a/docs/clamp/acm/plantuml/system-dialogues/SuccessAcmResult.puml b/docs/clamp/acm/plantuml/system-dialogues/SuccessAcmResult.puml new file mode 100644 index 00000000..69fde3bb --- /dev/null +++ b/docs/clamp/acm/plantuml/system-dialogues/SuccessAcmResult.puml @@ -0,0 +1,21 @@ +@startuml +participant "ACM Runtime" +participant "Participant Replica 1" +participant "Participant API Replica 1" +participant "Participant Replica 2" + +"ACM Runtime" -> "Participant Replica 1": [ASYNC] Trigger an ACM operation for this AC Instance +alt Does the primed Participant ID on this AC Element Instance match my Participant ID? + alt Does this AC Element Instance exist? + "Participant Replica 1" -> "ACM Runtime": [ASYNC] AC Element does not exist + end + "Participant Replica 1" -> "Participant API Replica 1": Perform ACM operation + "Participant API Replica 1" -> "Participant Replica 1": ACM operation success Response + "Participant Replica 1" -> "ACM Runtime": [ASYNC] INFO: ACM operation completed successfully + note left of "Participant Replica 1" + This returns the response message with StateChangeResult 'NO_ERROR' + end note +"ACM Runtime" -> "Participant Replica 2": [ASYNC] Send sync message +end + +@enduml diff --git a/docs/clamp/acm/plantuml/system-dialogues/SuperviseParticipantsStatusOutPropertiesUpdate.puml b/docs/clamp/acm/plantuml/system-dialogues/SuperviseParticipantsStatusOutPropertiesUpdate.puml new file mode 100644 index 00000000..cc6a198d --- /dev/null +++ b/docs/clamp/acm/plantuml/system-dialogues/SuperviseParticipantsStatusOutPropertiesUpdate.puml @@ -0,0 +1,12 @@ +@startuml + +participant "Participant Replica 1" +participant "Participant Replica 2" +participant "ACM Runtime" +database "ACM Database" + +"Participant Replica 1" -> "ACM Runtime": [ASYNC] Status message including outProperties update +"ACM Runtime" -> "ACM Database": Update Participant Replica \nas 'ON_LINE' and outProperties +"ACM Runtime" -> "Participant Replica 2": [ASYNC] Send sync message +"Participant Replica 2" -> "Participant Replica 2": Update memory from sync message +@enduml diff --git a/docs/clamp/acm/plantuml/system-dialogues/SuperviseParticipantsStatusUpdate.puml b/docs/clamp/acm/plantuml/system-dialogues/SuperviseParticipantsStatusUpdate.puml index e5748e86..483692f0 100644 --- a/docs/clamp/acm/plantuml/system-dialogues/SuperviseParticipantsStatusUpdate.puml +++ b/docs/clamp/acm/plantuml/system-dialogues/SuperviseParticipantsStatusUpdate.puml @@ -1,17 +1,12 @@ @startuml participant Participant -participant ACM_Runtime -database ACM_Database +participant "ACM Runtime" +database "ACM Database" loop Every Participant Supervision Interval - Participant -> ACM_Runtime: [ASYNC] Heartbeat message including\nstatus and states of AC Element Instances on Participant - ACM_Runtime -> ACM_Database: Update Participant Heartbeat data - ACM_Runtime -> ACM_Database: Set Participant State as ONLINE - - loop Every AC Element Instance in Heartbeat Message - ACM_Runtime -> ACM_Database: Mark AC Element Instance as ONLINE\nand Update AC Element Instance status - end + Participant -> "ACM Runtime": [ASYNC] Heartbeat message including\nreplica ID and participant ID + "ACM Runtime" -> "ACM Database": Update Participant Replica as 'ON_LINE' end @enduml diff --git a/docs/clamp/acm/plantuml/system-dialogues/SuperviseParticipantsTimeout.puml b/docs/clamp/acm/plantuml/system-dialogues/SuperviseParticipantsTimeout.puml index 89a7d16a..0032b839 100644 --- a/docs/clamp/acm/plantuml/system-dialogues/SuperviseParticipantsTimeout.puml +++ b/docs/clamp/acm/plantuml/system-dialogues/SuperviseParticipantsTimeout.puml @@ -1,16 +1,13 @@ @startuml -participant ACM_Runtime -database ACM_Database +participant "ACM Runtime" +database "ACM Database" -loop Every ACM_Runtime Supervision Interval - loop Over all Participants - ACM_Runtime -> Database: Read Participant Heartbeat Information - alt Participant Heartbeat not received in Timeout Interval - ACM_Runtime -> ACM_Database: Set Participant State as OFFLINE - ACM_Runtime -> ACM_Runtime: Mark all ACM Element Instances\nrunning on Participant as OFFLINE - activate ACM_Runtime - deactivate ACM_Runtime +loop Every ACM Runtime Supervision Interval + loop Over all Participant replicas + "ACM Runtime" -> "ACM Database": Read Participant Replica Heartbeat Information + alt Participant Replica Heartbeat not received in Timeout Interval + "ACM Runtime" -> "ACM Database": Set Participant Replica State as OFFLINE end end end diff --git a/docs/clamp/acm/plantuml/system-dialogues/UndeployResponseStored.puml b/docs/clamp/acm/plantuml/system-dialogues/UndeployResponseStored.puml index e44183d4..7ab7e5f3 100644 --- a/docs/clamp/acm/plantuml/system-dialogues/UndeployResponseStored.puml +++ b/docs/clamp/acm/plantuml/system-dialogues/UndeployResponseStored.puml @@ -1,16 +1,18 @@ @startuml -participant ACM_Runtime -participant Participant -database ACM_Database +participant "ACM Runtime" +database "ACM Database" +participant "Participant Replica 1" +participant "Participant Replica 2" -ACM_Runtime <- Participant: [ASYNC] Undeploy Automation Composition Element Instance Response -ACM_Runtime -> ACM_Database: Store Automation Composition Element Instance Response Information +"ACM Runtime" <- "Participant Replica 1": [ASYNC] Undeploy Automation Composition Element \nInstance Response +"ACM Runtime" -> "ACM Database": Store Automation Composition Element Instance \nResponse Information alt Is AC Element Instance undeployed? - ACM_Runtime -> ACM_Database: Mark AC Element Instance as UNDEPLOYED + "ACM Runtime" -> "ACM Database": Mark AC Element Instance as UNDEPLOYED alt Are all the other AC Element Instances in this AC Instance in state UNDEPLOYED? - ACM_Runtime -> ACM_Runtime: Set AC Instance state as UNDEPLOYED + "ACM Runtime" -> "ACM Database": Set AC Instance state as UNDEPLOYED + "ACM Runtime" -> "Participant Replica 2": [ASYNC] Send sync message end end diff --git a/docs/clamp/acm/plantuml/system-dialogues/UnlockResponseStored.puml b/docs/clamp/acm/plantuml/system-dialogues/UnlockResponseStored.puml index 44e7e906..0f7ce94f 100644 --- a/docs/clamp/acm/plantuml/system-dialogues/UnlockResponseStored.puml +++ b/docs/clamp/acm/plantuml/system-dialogues/UnlockResponseStored.puml @@ -1,16 +1,18 @@ @startuml -participant ACM_Runtime -participant Participant -database ACM_Database +participant "ACM Runtime" +database "ACM Database" +participant "Participant Replica 1" +participant "Participant Replica 2" -ACM_Runtime <- Participant: [ASYNC] Unlock Automation Composition Element Instance Response -ACM_Runtime -> ACM_Database: Store Automation Composition Element Instance Response Information +"ACM Runtime" <- "Participant Replica 1": [ASYNC] Unlock Automation Composition Element \nInstance Response +"ACM Runtime" -> "ACM Database": Store Automation Composition Element Instance \nResponse Information alt Is AC Element Instance Unlocked? - ACM_Runtime -> ACM_Database: Set AC Element Instance administrative state as UNLOCKED + "ACM Runtime" -> "ACM Database": Set AC Element Instance administrative state as UNLOCKED alt Have all the other AC Element Instances in this AC Instance been UNLOCKED? - ACM_Runtime -> ACM_Runtime: Set AC Instance administrative state as UNLOCKED + "ACM Runtime" -> "ACM Database": Set AC Instance administrative state as UNLOCKED + "ACM Runtime" -> "Participant Replica 2": [ASYNC] Send sync message end end diff --git a/docs/clamp/acm/plantuml/system-dialogues/UpdateAcElementsResponse.puml b/docs/clamp/acm/plantuml/system-dialogues/UpdateAcElementsResponse.puml new file mode 100644 index 00000000..ed161745 --- /dev/null +++ b/docs/clamp/acm/plantuml/system-dialogues/UpdateAcElementsResponse.puml @@ -0,0 +1,19 @@ +@startuml
+
+participant "ACM Runtime"
+database "ACM Database"
+participant "Participant Replica 1"
+participant "Participant Replica 2"
+
+"ACM Runtime" <- "Participant Replica 1": [ASYNC] Update Automation Composition Element \nInstance Response
+"ACM Runtime" -> "ACM Database": Store Automation Composition Element Instance \nResponse Information
+
+alt Is AC Element Instance Updated?
+ "ACM Runtime" -> "ACM Database": Set AC Element Instance State as DEPLOYED
+ alt Are all the other AC Element Instances in this AC Instance in state DEPLOYED?
+ "ACM Runtime" -> "ACM Database": Set AC Instance state as DEPLOYED
+ "ACM Runtime" -> "Participant Replica 2": [ASYNC] Send sync message
+ end
+end
+
+@enduml
diff --git a/docs/clamp/acm/plantuml/system-dialogues/UpdateDeprimeInDb.puml b/docs/clamp/acm/plantuml/system-dialogues/UpdateDeprimeInDb.puml index b52dc817..a75908bb 100644 --- a/docs/clamp/acm/plantuml/system-dialogues/UpdateDeprimeInDb.puml +++ b/docs/clamp/acm/plantuml/system-dialogues/UpdateDeprimeInDb.puml @@ -1,14 +1,16 @@ @startuml -participant ACM_Runtime -participant Participant -database ACM_Database +participant "ACM Runtime" +database "ACM Database" +participant "Participant Replica 1" +participant "Participant Replica 2" -ACM_Runtime <- Participant: [ASYNC] Result of Depriming of AC Element Type -ACM_Runtime -> ACM_Database: Record result of AC Element Type Depriming +"ACM Runtime" <- "Participant Replica 1": [ASYNC] Result of Depriming of AC Element Type +"ACM Runtime" -> "ACM Database": Record result of AC Element Type Depriming alt Is AC Element Type Deprimed? alt Have all the other AC Element Types in this AC Type been Deprimed? - ACM_Runtime -> ACM_Runtime: Set AC Type state as COMMISSIONED + "ACM Runtime" -> "ACM Database": Set AC Type state as COMMISSIONED + "ACM Runtime" -> "Participant Replica 2": [ASYNC] Send sync message end end diff --git a/docs/clamp/acm/plantuml/system-dialogues/UpdateOperationalState.puml b/docs/clamp/acm/plantuml/system-dialogues/UpdateOperationalState.puml index 538242ae..47e0ea34 100644 --- a/docs/clamp/acm/plantuml/system-dialogues/UpdateOperationalState.puml +++ b/docs/clamp/acm/plantuml/system-dialogues/UpdateOperationalState.puml @@ -1,16 +1,19 @@ @startuml -participant Participant_API -participant Participant -participant ACM_Runtime +participant "Participant API Replica 1" +participant "Participant Replica 1" +participant "ACM Runtime" +participant "Participant Replica 2" -Participant_API -> Participant_API: Perform Operation that Updates Operational State -activate Participant_API -deactivate Participant_API +"Participant API Replica 1" -> "Participant API Replica 1": Perform Operation that Updates \nOperational State, Use State and outProperties +activate "Participant API Replica 1" +deactivate "Participant API Replica 1" -Participant_API -> Participant: Operational State has been updated -Participant -> Participant: Update Operational State in ACM Element Instance +"Participant API Replica 1" -> "Participant Replica 1": Operational State, Use State and outProperties \nhas been updated +"Participant Replica 1" -> "Participant Replica 1": Update Operational State, Use State and outProperties \nin ACM Element Instance +"Participant Replica 1" -> "ACM Runtime": [ASYNC] Send message including states and outProperties \nof AC Element Instances on Participant +"ACM Runtime" -> "Participant Replica 2": [ASYNC] Send sync message == Periodically with Heartbeat == -Participant -> ACM_Runtime: [ASYNC] Heartbeat message including\nstatus and states of AC Element Instances on Participant +"Participant Replica 1" -> "ACM Runtime": [ASYNC] Heartbeat message including status @enduml |