From fa75c54798e1320c1f3e33eb177fb9bd2ec3ac47 Mon Sep 17 00:00:00 2001 From: FrancescoFioraEst Date: Thu, 28 Sep 2023 11:00:38 +0100 Subject: [PATCH] Update Documentation for migration Issue-ID: POLICY-4812 Change-Id: I8adbb39765bba68d0ca33d048c4b96c991129669 Signed-off-by: FrancescoFioraEst --- docs/clamp/acm/acm-participant-guide.rst | 52 +++++++++++++++++++-- docs/clamp/acm/acm-user-guide.rst | 20 ++++++++ .../acm/api-protocol/system-level-dialogues.rst | 30 ++++++++---- docs/clamp/acm/design-impl/clamp-runtime-acm.rst | 13 +++++- .../participants/participant-intermediary.rst | 15 ++++-- docs/clamp/acm/files/AC-migrate.json | 16 +++++++ docs/clamp/acm/files/ACM-Message-Table.csv | 6 +++ .../images/system-dialogues/MigrateAcElements.png | Bin 0 -> 20880 bytes .../system-dialogues/MigrateAcElementsResponse.png | Bin 0 -> 15650 bytes .../images/system-dialogues/MigrateAcInstance.png | Bin 0 -> 47397 bytes .../system-dialogues/MigrateAcElements.puml | 15 ++++++ .../MigrateAcElementsResponse.puml | 10 ++++ .../system-dialogues/MigrateAcInstance.puml | 30 ++++++++++++ 13 files changed, 189 insertions(+), 18 deletions(-) mode change 100644 => 100755 docs/clamp/acm/design-impl/clamp-runtime-acm.rst create mode 100755 docs/clamp/acm/files/AC-migrate.json create mode 100755 docs/clamp/acm/images/system-dialogues/MigrateAcElements.png create mode 100755 docs/clamp/acm/images/system-dialogues/MigrateAcElementsResponse.png create mode 100755 docs/clamp/acm/images/system-dialogues/MigrateAcInstance.png create mode 100755 docs/clamp/acm/plantuml/system-dialogues/MigrateAcElements.puml create mode 100755 docs/clamp/acm/plantuml/system-dialogues/MigrateAcElementsResponse.puml create mode 100755 docs/clamp/acm/plantuml/system-dialogues/MigrateAcInstance.puml diff --git a/docs/clamp/acm/acm-participant-guide.rst b/docs/clamp/acm/acm-participant-guide.rst index b2ee244a..6102fc72 100755 --- a/docs/clamp/acm/acm-participant-guide.rst +++ b/docs/clamp/acm/acm-participant-guide.rst @@ -92,6 +92,7 @@ AutomationCompositionElementListener: 8. void deprime(UUID compositionId) throws PfModelException; 9. void handleRestartComposition(UUID compositionId, List elementDefinitionList, AcTypeState state) throws PfModelException; 10. void handleRestartInstance(UUID automationCompositionId, AcElementDeploy element, Map properties, DeployState deployState, LockState lockState) throws PfModelException; + 11. void migrate(UUID instanceId, AcElementDeploy element, UUID compositionTargetId, Map properties) throws PfModelException; These method from the interface are implemented independently as per the user requirement. These methods after handling the appropriate requests should also invoke the intermediary's publisher apis to notify the ACM-runtime with the acknowledgement events. @@ -133,13 +134,39 @@ This following method is invoked to update the AC element state after each opera In/Out composition Properties ----------------------------- - The 'Common Properties' could be created or updated by ACM-runtime. Participants will receive that Properties during priming events. +The 'Common Properties' could be created or updated by ACM-runtime. +Participants will receive that Properties during priming events. - The 'Out Properties' could be created or updated by participants. ACM-runtime will receive that Properties during ParticipantStatus event. - The participant can trigger this event using the method sendAcDefinitionInfo. +.. code-block:: java - Is allowed to the participant to read all In/Out Properties of all compositions handled by the participant using the method getAcElementsDefinitions. - The following code is an example how to update the property 'myProperty' and send to ACM-runtime: + @Override + public void prime(UUID compositionId, List elementDefinitionList) throws PfModelException { + for (var acElementDefinition : elementDefinitionList) { + var inProperties = acElementDefinition.getAutomationCompositionElementToscaNodeTemplate().getProperties(); + ....... + } + ....... + } + +The 'Common Properties' could be fetched during depriming events. + +.. code-block:: java + + @Override + public void deprime(UUID compositionId) throws PfModelException { + var elementDefinitionList = intermediaryApi.getAcElementsDefinitions(compositionId); + for (var acElementDefinition : elementDefinitionList.values()) { + var inProperties = acElementDefinition.getAutomationCompositionElementToscaNodeTemplate().getProperties(); + ....... + } + ....... + } + +The 'Out Properties' could be created or updated by participants. ACM-runtime will receive that Properties during ParticipantStatus event. +The participant can trigger this event using the method sendAcDefinitionInfo. + +Is allowed to the participant to read all In/Out Properties of all compositions handled by the participant using the method getAcElementsDefinitions. +The following code is an example how to update the property 'myProperty' and send to ACM-runtime: .. code-block:: java @@ -353,6 +380,21 @@ The following example shows the Handler implementation and how could be the impl } } + @Override + public void migrate(UUID automationCompositionId, AcElementDeploy element, UUID compositionTargetId, + Map properties) throws PfModelException { + + // TODO migrate process + + if (isMigrateSuccess()) { + intermediaryApi.updateAutomationCompositionElementState(automationCompositionId, element.getId(), + DeployState.DEPLOYED, null, StateChangeResult.NO_ERROR, "Migrated"); + } else { + intermediaryApi.updateAutomationCompositionElementState(automationCompositionId, element.getId(), + DeployState.DEPLOYED, null, StateChangeResult.FAILED, "Migrate failed!"); + } + } + @Override public void prime(UUID compositionId, List elementDefinitionList) throws PfModelException { diff --git a/docs/clamp/acm/acm-user-guide.rst b/docs/clamp/acm/acm-user-guide.rst index 0a033b50..6e247f7c 100755 --- a/docs/clamp/acm/acm-user-guide.rst +++ b/docs/clamp/acm/acm-user-guide.rst @@ -275,6 +275,24 @@ required operation. Note: Please refer the request payload section for updating the instance properties before deployment. +Migrate AC instance +------------------- +After the AC instance is deployed, the user can migrate it to other composition definition. +The target composition have to be primed and have to contain the same element definitions present in the source composition. +The user can update the instance property values if needed. + +.. code-block:: bash + + Invoke a POST request + 'http://policy_runtime_ip:port/onap/policy/clamp/acm/v2/compositions/${compositionId}/instances' + +Request Payload + +Example payload to migrate and update the base url of the http request + +.. literalinclude:: files/AC-migrate.json + :language: json + UnDeploy AutomationComposition ------------------------------ The AC instances can be undeployed from the system by the participants. @@ -378,10 +396,12 @@ The Json below is an example of configuration: "unlockSuccess": true, "deleteSuccess": true, "updateSuccess": true, + "migrateSuccess": true, "primeSuccess": true, "deprimeSuccess": true, "deployTimerMs": 1000, "undeployTimerMs": 1000, + "migrateTimerMs": 100, "lockTimerMs": 100, "unlockTimerMs": 100, "updateTimerMs": 100, diff --git a/docs/clamp/acm/api-protocol/system-level-dialogues.rst b/docs/clamp/acm/api-protocol/system-level-dialogues.rst index 49521882..a2efdc36 100755 --- a/docs/clamp/acm/api-protocol/system-level-dialogues.rst +++ b/docs/clamp/acm/api-protocol/system-level-dialogues.rst @@ -154,7 +154,21 @@ The ACM Runtime receives and stores the responses. .. image:: ../images/system-dialogues/UpdateAcElementsResponse.png -3.5 Undeploy Automation Composition Instance +3.5 Migrate Automation Composition Instance +------------------------------------------- +The user requests the AC Instance to be migrated using a REST endpoint. The ACM Runtime orders the AC Instance to be migrated. + +.. image:: ../images/system-dialogues/MigrateAcInstance.png + +Each participant migrated its AC Element from the AC Instance + +.. image:: ../images/system-dialogues/MigrateAcElements.png + +The ACM Runtime receives and stores the responses. + +.. image:: ../images/system-dialogues/MigrateAcElementsResponse.png + +3.6 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. @@ -168,12 +182,12 @@ The ACM Runtime receives and stores the responses. .. image:: ../images/system-dialogues/UndeployResponseStored.png -3.6 Read Automation Composition Instances +3.7 Read Automation Composition Instances ----------------------------------------- .. image:: ../images/system-dialogues/ReadAcInstances.png -3.7 Unlock Automation Composition Instance +3.8 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. @@ -187,7 +201,7 @@ The ACM Runtime receives and stores the responses. .. image:: ../images/system-dialogues/UnlockResponseStored.png -3.8 Lock Automation Composition Instance +3.9 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. @@ -201,17 +215,17 @@ The ACM Runtime receives and stores the responses. .. image:: ../images/system-dialogues/LockResponseStored.png -3.9 Update Operational State on Automation Composition Instance ---------------------------------------------------------------- +3.10 Update Operational State on Automation Composition Instance +---------------------------------------------------------------- .. image:: ../images/system-dialogues/UpdateOperationalState.png -3.10 Update Usage State on Automation Composition Instance +3.11 Update Usage State on Automation Composition Instance ---------------------------------------------------------- .. image:: ../images/system-dialogues/UpdateUsageState.png -3.11 Failure handling in ACM +3.12 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. diff --git a/docs/clamp/acm/design-impl/clamp-runtime-acm.rst b/docs/clamp/acm/design-impl/clamp-runtime-acm.rst old mode 100644 new mode 100755 index 0c54ecc1..215ddc59 --- a/docs/clamp/acm/design-impl/clamp-runtime-acm.rst +++ b/docs/clamp/acm/design-impl/clamp-runtime-acm.rst @@ -78,7 +78,18 @@ Update of a Automation Composition Instance - It checks that AC Instance is in UNDEPLOYED/DEPLOYED deployState - It updates the Automation Composition to DB - the Rest-Api call returns the instanceId and the list of AC Element Instance -- the runtime sends an update event to the participants which inturn performs the update operation on the deployed instances. +- the runtime sends an update event to the participants which performs the update operation on the deployed instances. + +Migrate of a Automation Composition Instance +++++++++++++++++++++++++++++++++++++++++++++ +- GUI has already a new composition definition primed +- GUI calls POST "/onap/policy/clamp/acm/v2/compositions/{compositionId}/instances" endpoint with a Automation Composition Instance as body. It have to contain the compositionId, the compositionTargetId and the instanceId +- runtime-ACM receives the call by Rest-Api (InstantiationController) +- It checks that AC Instance is in DEPLOYED deployState +- It checks that compositionTargetId is related to a primed composition definition +- It updates the Automation Composition to DB +- the Rest-Api call returns the instanceId and the list of AC Element Instance +- the runtime sends a migrate event to the participants which performs the migrate operation on the deployed instances. Issues AC instance to change status +++++++++++++++++++++++++++++++++++ diff --git a/docs/clamp/acm/design-impl/participants/participant-intermediary.rst b/docs/clamp/acm/design-impl/participants/participant-intermediary.rst index 36b13197..891f5771 100755 --- a/docs/clamp/acm/design-impl/participants/participant-intermediary.rst +++ b/docs/clamp/acm/design-impl/participants/participant-intermediary.rst @@ -27,6 +27,7 @@ Inbound messages to participants - PARTICIPANT_PRIME: a message received from clamp-acm runtime server for a participant update with tosca definitions of clamp-acm - PARTICIPANT_STATUS_REQ: A status request received from clamp-acm runtime server to send an immediate ParticipantStatus from all participants - PROPERTIES_UPDATE: a message received from clamp-acm runtime server for updating the Ac instance property values +- AUTOMATION_COMPOSITION_MIGRATION: a message received from clamp-acm runtime server for migrating the Ac instance from a composition definition to a composition definition target - PARTICIPANT_RESTART: a message received from clamp-acm runtime server with tosca definitions and the Ac instances to handle restarting Outbound messages @@ -60,13 +61,13 @@ Prime of an Automation Composition Definition Type - AC-runtime assigns the AC Definition to the participants based of Supported Element Definition Type by participant - it triggers the execution to send a broadcast PARTICIPANT_PRIME message - the message is built by ParticipantPrimePublisher using Tosca Service Template data (to fill the list of ParticipantDefinition) -- Participant-intermediary will receive a PARTICIPANT_PRIME message and stores the Tosca Service Template data on ParticipantHandler +- Participant-intermediary will receive a PARTICIPANT_PRIME message and stores the Tosca Service Template data on CacheProvider DePrime of an Automation Composition Definition Type ---------------------------------------------------- - AC-runtime triggers the execution to send a broadcast PARTICIPANT_PRIME message - the message is built by ParticipantPrimePublisher with an empty list of ParticipantDefinition -- Participant-intermediary will receive a PARTICIPANT_PRIME message and deletes the Tosca Service Template data on ParticipantHandler +- Participant-intermediary will receive a PARTICIPANT_PRIME message and deletes the Tosca Service Template data on CacheProvider Design of "issues automation composition commands to automation compositions" - case UNDEPLOYED to DEPLOYED ----------------------------------------------------------------------------------------------------------- @@ -82,13 +83,19 @@ Design of "issues automation composition commands to automation compositions" - - Participant-intermediary will receive AUTOMATION_COMPOSITION_STATE_CHANGE message and sends AC-element details to participants - Each participant performs its designated job of undeployment by interacting with respective frameworks - Update of an Automation Composition Instance -------------------------------------------- - AC-runtime updates the instance properties of the deployed Ac instances - it triggers the execution to send a broadcast PROPERTIES_UPDATE message - the message is built by AcElementPropertiesPublisher using the REST request payload (to fill the list of elements with the updated property values) -- Participant-intermediary will receive a PROPERTIES_UPDATE message and stores the updated values of the elements on ParticipantHandler +- Participant-intermediary will receive a PROPERTIES_UPDATE message and stores the updated values of the elements on CacheProvider + +Migrate of an Automation Composition Instance +--------------------------------------------- +- AC-runtime saves the compositionTargetId and updates the instance properties of the deployed Ac instances +- it triggers the execution to send a broadcast AUTOMATION_COMPOSITION_MIGRATION message +- the message is built by AutomationCompositionMigrationPublisher using the REST request payload (to fill the compositionTargetId and list of elements with the updated property values) +- Participant-intermediary will receive a AUTOMATION_COMPOSITION_MIGRATION message and stores the compositionTargetId and the updated values of the elements on CacheProvider Design of "issues automation composition commands to automation compositions" - case LOCKED to UNLOCKED ------------------------------------------------------------------------------------------------------- diff --git a/docs/clamp/acm/files/AC-migrate.json b/docs/clamp/acm/files/AC-migrate.json new file mode 100755 index 00000000..32b56fd4 --- /dev/null +++ b/docs/clamp/acm/files/AC-migrate.json @@ -0,0 +1,16 @@ +{ + "name": "DemoInstance0", + "version": "1.0.1", + "compositionId": "COMPOSITIONIDPLACEHOLDER", + "instanceId": "INSTANCEIDPLACEHOLDER", + "compositionTargetId": "COMPOSITIONIDTARGET", + "description": "Demo automation composition instance 0", + "elements": { + "709c62b3-8918-41b9-a747-d21eb79c6c21": { + "id": "709c62b3-8918-41b9-a747-d21eb79c6c21", + "properties": { + "baseUrl": "http://acm-starter-ac-element-impl_updated:8084" + } + } + } +} diff --git a/docs/clamp/acm/files/ACM-Message-Table.csv b/docs/clamp/acm/files/ACM-Message-Table.csv index 647c2f01..b706fe60 100755 --- a/docs/clamp/acm/files/ACM-Message-Table.csv +++ b/docs/clamp/acm/files/ACM-Message-Table.csv @@ -53,3 +53,9 @@ ParticipantRestart,ACM Runtime,Participant,Message to request update,participant ,,,,compositionId,The id of the AC Definition related to this message ,,,,participantDefinitionUpdates,Contains AC element definition values for a particular participant ,,,,messageType,Enum indicating the type of message PARTICIPANT_RESTART +AutomationCompositionMigration,ACM Runtime,Participant,Message to request update,participantUpdatesList,A list of ParticipantUpdates instances which carries details of an updated participant. +,,,,compositionId,The id of the AC Definition related to this message +,,,,compositionTargetId,The id of the AC Definition target +,,,,automationCompositionId,The id of the automation composition related to this message +,,,,participantId,UUID indicating the participant the message is intended for +,,,,messageType,Enum indicating the type of message PROPERTIES_UPDATE diff --git a/docs/clamp/acm/images/system-dialogues/MigrateAcElements.png b/docs/clamp/acm/images/system-dialogues/MigrateAcElements.png new file mode 100755 index 0000000000000000000000000000000000000000..478b3b35934f2a835806c5ab07417030704bd4c8 GIT binary patch literal 20880 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 literal 0 HcmV?d00001 diff --git a/docs/clamp/acm/images/system-dialogues/MigrateAcInstance.png b/docs/clamp/acm/images/system-dialogues/MigrateAcInstance.png new file mode 100755 index 0000000000000000000000000000000000000000..ccd2c53b9f5196c86d2cada815c90d8cf717e950 GIT binary patch literal 47397 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 a_GVT&EAOj`0MA}#VDNPHb6Mw<&;$UOuj~N; literal 0 HcmV?d00001 diff --git a/docs/clamp/acm/plantuml/system-dialogues/MigrateAcElements.puml b/docs/clamp/acm/plantuml/system-dialogues/MigrateAcElements.puml new file mode 100755 index 00000000..2f9523fc --- /dev/null +++ b/docs/clamp/acm/plantuml/system-dialogues/MigrateAcElements.puml @@ -0,0 +1,15 @@ +@startuml +participant "ACM Runtime" +participant Participant +participant "Participant Api" + +alt "instance Id and Composition Ids exist" + "ACM Runtime" -> Participant : [ASYNC] Migration message from source to target composition + Participant -> "Participant Api" : Migrate AC Element + "Participant Api" -> Participant : AC Element Migrated + Participant -> "ACM Runtime" : [ASYNC] Migration completed + note right + Returns AUTOMATION_COMPOSITION_STATE_CHANGE message. + end note +end +@enduml diff --git a/docs/clamp/acm/plantuml/system-dialogues/MigrateAcElementsResponse.puml b/docs/clamp/acm/plantuml/system-dialogues/MigrateAcElementsResponse.puml new file mode 100755 index 00000000..3ba0410f --- /dev/null +++ b/docs/clamp/acm/plantuml/system-dialogues/MigrateAcElementsResponse.puml @@ -0,0 +1,10 @@ +@startuml +participant "ACM Runtime" +participant "ACM Database" +participant Participant + +alt "instance Id and Composition Ids exist" + Participant -> "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 +end +@enduml diff --git a/docs/clamp/acm/plantuml/system-dialogues/MigrateAcInstance.puml b/docs/clamp/acm/plantuml/system-dialogues/MigrateAcInstance.puml new file mode 100755 index 00000000..184e872a --- /dev/null +++ b/docs/clamp/acm/plantuml/system-dialogues/MigrateAcInstance.puml @@ -0,0 +1,30 @@ +@startuml +participant Rest +participant "ACM Runtime" +participant "ACM Database" +participant Participants + +group Create New Composition type for Migration +Rest -> "ACM Runtime" : Composition Definitions +"ACM Runtime" -> "ACM Database" : Saved Definition +Rest -> "ACM Runtime" : Prime Definition +"ACM Runtime" -> Participants: [ASYNC] Prime Definition +end group + +group Migration per Instance +/'Instance migration from source to target composition type. '/ +Rest -> "ACM Runtime" : Migrate Instance\n(InstanceId, sourceCompId, targetCompId, instance properties) +note top +Instance migration from source to target +composition type. +end note +alt "instance Id and Composition Ids exist" + "ACM Runtime" -> "ACM Database" : Definition Validation + "ACM Runtime" -> "ACM Database" : instance and AC Element will be set\nin a transitional state (MIGRATING),\n new instance properties will be saved + "ACM Runtime" -> Participants : [ASYNC] Migration message from source to target composition + "ACM Runtime" -> Rest : Instance migration has been requested + else + "ACM Runtime" -> Rest : 400 Bad Reqest +end +end group +@enduml -- 2.16.6