the ACM elements.
Here we are defining various timeout properties and startPhase parameter that are common for all the AC elements.
- Note: This node type value should not be changed as the ACM framework identifies the AC elements based on this type.
+ Note:
+ This node type value can be customised if the user wants to change the default name. Please refer the "Configure custom namings for TOSCA node types"
+ section of the Automation Composition Runtime design and implementation.
org.onap.policy.clamp.acm.K8SMicroserviceAutomationCompositionElement:
This node type is used to define AC elements that are associated with kubernetes operations. It is further derived from the
Primitive node type for defining Automation composition definitions that comprises one or more AC elements in it.
The AC definition of this type will be created under the Node templates.
- Note: This node type value should not be changed as the ACM framework identifies the AC definitions based on this type.
+ Note:
+ This node type value can be customised if the user wants to change the default name. Please refer the "Configure custom namings for TOSCA node types"
+ section of the Automation Composition Runtime design and implementation.
.. literalinclude:: files/acm-nodetypes.yaml
:language: yaml
Prerequisites:
- - ACM components including acm-runtime, required participants (http and kubernetes in this case) and Dmaap/kafka clients are deployed in docker or kubernetes environment.
+ - ACM components including acm-runtime, required participants (http and kubernetes in this case) and kafka clients are deployed in docker or kubernetes environment.
- Kubernetes and Helm are installed.
- Chartmuseum server is installed to host the acelement microservice helm chart. (`Procedure to install chartmuseum <https://wiki.onap.org/display/DW/Microk8s+and+helm+setup+in+Ubuntu>`_.)
- The helm chart for ACM test microservice is available in the policy/clamp repository that can be cloned locally and uploaded to the chartmuseum using helm push.(`AC element helm chart <https://github.com/onap/policy-clamp/tree/master/examples/src/main/resources/clamp/acm/acelement-helm>`_.)
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.
#. Set participantId and supportedElementType by properties file or by parameter environment.
#. Set a delay for each operation at runtime by Rest-Api.
#. Set success or fail for each operation at runtime by Rest-Api.
-#. update useState, operationalState and outPropeties and send to ACM-runtime by Rest-Api.
+#. update composition outProperties and send to ACM-runtime by Rest-Api.
+#. read all AC Definition inProperties/outProperties information by Rest-Api.
+#. update useState, operationalState and outProperties and send to ACM-runtime by Rest-Api.
#. read all AC instance elements information by Rest-Api.
+#. log of all information for each operation.
Mock a participant using docker-compose
---------------------------------------
"unlockSuccess": true,
"deleteSuccess": true,
"updateSuccess": true,
+ "migrateSuccess": true,
"primeSuccess": true,
"deprimeSuccess": true,
"deployTimerMs": 1000,
"undeployTimerMs": 1000,
+ "migrateTimerMs": 100,
"lockTimerMs": 100,
"unlockTimerMs": 100,
"updateTimerMs": 100,
"deprimeTimerMs": 100
}
-Update and send useState operationalState and outProperites
------------------------------------------------------------
+Update and send composition outProperites
+-----------------------------------------
+Data like useState operationalState and outProperites could be updated any time using the following endpoint:
+
+.. code-block:: bash
+
+ Invoke a PUT request 'http://participant_sim_ip:port/onap/policy/clamp/acm/simparticipant/v2/compositiondatas'
+
+The Json below is an example of update, where {{compositionId}} is the UUID of the AC Definition
+and ("onap.policy.clamp.ac.element.Http_BridgeAutomationCompositionElement", "1.2.3") is the ToscaConceptIdentifier of the AC Definition element:
+
+.. code-block:: json
+
+ {
+ "outProperties": {
+ "list": [
+ {"id": 10 },
+ {"id": 20 }
+ ]
+ },
+ "compositionId": "{{compositionId}}",
+ "compositionDefinitionElementId": {
+ "name": "onap.policy.clamp.ac.element.Http_BridgeAutomationCompositionElement",
+ "version": "1.2.3"
+ }
+ }
+
+Read all AC Definition elements information
+-------------------------------------------
+All AC Definition elements information like composition inProperties and outProperties
+could be read using the following endpoint:
+
+.. code-block:: bash
+
+ Invoke a GET request 'http://participant_sim_ip:port/onap/policy/clamp/acm/simparticipant/v2/compositiondatas'
+
+Update and send useState operationalState and instance outProperites
+--------------------------------------------------------------------
Data like useState operationalState and outProperites could be updated any time using the following endpoint:
.. code-block:: bash
.. code-block:: bash
Invoke a GET request 'http://participant_sim_ip:port/onap/policy/clamp/acm/simparticipant/v2/instances'
+
+Log of all information for each operation
+-----------------------------------------
+All information for each operation are logged, so the developer can monitoring what data are passed through the calls. Example of log during deploy.
+
+26-02-2024 09:55:38.547 [pool-4-thread-4] DEBUG o.o.p.c.a.p.s.m.h.AutomationCompositionElementHandler.deploy **- deploy call**
+**compositionElement: CompositionElementDto[** compositionId=6502ba5e-1939-42b0-8bd2-bf89f0d51be6, elementDefinitionId=onap.policy.clamp.ac.element.Http_StarterAutomationCompositionElement 1.2.3, inProperties={ ... }, outProperties={} **], instanceElement: InstanceElementDto[** instanceId=022b3dee-a878-4b32-8544-de86e67e7335, elementId=2d614898-4945-41c7-9127-947b401aa753, toscaServiceTemplateFragment=ToscaServiceTemplate( ... ), inProperties={ ... }, outProperties={} **]**