Add documentation for A1PMS participant 60/134260/2
authoraravind.est <aravindhan.a@est.tech>
Thu, 20 Apr 2023 12:43:19 +0000 (13:43 +0100)
committeraravind.est <aravindhan.a@est.tech>
Thu, 20 Apr 2023 13:43:02 +0000 (14:43 +0100)
Documentation added for A1PMS participant with tosca

Issue-ID: POLICY-4608
Signed-off-by: aravind.est <aravindhan.a@est.tech>
Change-Id: Idd6e9e27ac29172c37069cb6c49a720e600cdf9d

docs/clamp/acm/design-impl/participants/a1pms-participant.rst [new file with mode: 0644]
docs/clamp/acm/design-impl/participants/participants.rst
docs/clamp/acm/design-impl/participants/tosca/automation-composition-a1pms.yml [new file with mode: 0644]
docs/clamp/acm/design-impl/participants/tosca/tosca-a1pms-participant.yml [new file with mode: 0644]
docs/clamp/acm/images/participants/a1pms-participant.png [new file with mode: 0755]

diff --git a/docs/clamp/acm/design-impl/participants/a1pms-participant.rst b/docs/clamp/acm/design-impl/participants/a1pms-participant.rst
new file mode 100644 (file)
index 0000000..23e70b9
--- /dev/null
@@ -0,0 +1,93 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+
+.. _clamp-acm-a1pms-participant:
+
+A1PMS Participant
+######################
+
+The A1PMS participant receives A1 policy service information from the CLAMP runtime and creates the A1 policy service in A1PMS. The participant acts as a wrapper around the A1PMS and creates the policy service.
+
+Supported message Broker are DMaap and Strimzi-Kafka.
+
+.. image:: ../../images/participants/a1pms-participant.png
+
+When an automation composition is initialized, the A1PMS participant starts a A1PMS Automation Composition
+element for the automation composition. It reads the configuration information sent from the
+Automation Composition Runtime and runs a REST client to talk to the A1PMS endpoint receiving
+the REST requests.
+
+Prerequisites for using A1PMS participant:
+------------------------------------------
+
+- A running A1PMS. A1PMS base url should be configured in A1PMS participant to make REST calls.
+
+
+Supported Element Types
+-----------------------
+Supported Element Types for A1PMS participant will be used to define the A1PMS participant Element Definition Types in tosca template.
+Participant Supported Element Types is defined in A1PMS participant application.yaml.
+
+.. code-block:: YAML
+
+    participantSupportedElementTypes:
+      -
+        typeName: org.onap.policy.clamp.acm.A1PMSAutomationCompositionElement
+        typeVersion: 1.0.1
+
+Defining a TOSCA CL definition for A1PMS participant:
+-----------------------------------------------------
+
+A *Policy Service Entity* describes a A1PMS policy service that is managed by the A1PMS participant. A
+Policy Service Entity can be created, Read, and Deleted. The user defines
+the A1 Policy Service Entities that it wants its A1PMS Automation Composition Element to manage and
+provides the parameters to manage each A1 Policy Service Entity.
+
+Sample tosca template defining a participant and a AC element definition. :download:`click here <tosca/tosca-a1pms-participant.yml>`
+
+
+Configuring a Automation Composition Element on the A1PMS participant for a Automation Composition
+-------------------------------------------------------------------------------------------------------
+
+The user defines the following properties in the TOSCA template for the a1pms participant:
+
+.. list-table::
+   :widths: 15 10 50
+   :header-rows: 1
+
+   * - Property
+     - Type
+     - Description
+   * - a1PolicyServiceEntityId
+     - ToscaConceptIdentifier
+     - The name and version of the A1 Policy Service that needs to be managed by the A1PMS participant
+   * - clientId
+     - String
+     - The identity of the service
+   * - callbackUrl
+     - String
+     - The callback for notifying of Near-RT RIC state changes
+   * - keepAliveIntervalSeconds
+     - Integer
+     - Keep alive interval for the service. This is used to enable optional heartbeat supervision of the service. If set (> 0) the registered service should regularly invoke a 'keepalive' REST call. When a service fails to invoke this 'keepalive' call within the configured time, the service is considered unavailable. An unavailable service will be automatically deregistered and its policies will be deleted. Value 0 means timeout supervision is disabled.
+
+Sample Automation Composition instances.
+In that example the user fills the properties defined in the TOSCA for the A1PMS participant :download:`click here <tosca/automation-composition-a1pms.yml>`
+
+A1PMS participant Interactions:
+-------------------------------
+The A1PMS participant interacts with Automation Composition Runtime on the northbound via Message Broker. It interacts with the A1PMS on the southbound for performing A1PMS service relation operations.
+
+The communication for the Automation Composition updates and state change requests are sent from the Automation Composition Runtime to the participant via Message Broker.
+The participant performs appropriate operations on the A1PMS via REST based on the received messages from the Automation Composition Runtime.
+
+
+A1PMS participant Workflow:
+---------------------------
+Once the participant is started, it sends a "REGISTER" event to the Message Broker topic which is then consumed by the Automation Composition Runtime to register this participant on the runtime database.
+The user can commission the tosca definitions from the Policy Gui to the Automation Composition Runtime.
+Once the automation composition definitions are available in the runtime database, the user can prime them and further updates the participant with these definitions via Message Broker.
+After primed, the Automation Composition can be instantiated with the default state "UNDEPLOYED" from the Policy Gui.
+
+When the state of the Automation Composition is changed from "UNDEPLOYED" to "DEPLOYED" from the Policy Gui, the a1pms participant receives the automation composition state change event from the runtime and creates the A1 policy services associated with each Automation Composition Elements.
+
+When the state of the Automation Composition is changed from "DEPLOYED" to "UNDEPLOYED" back, the participant deletes the A1 policy services that are part of the Automation Composition Element.
index 67c966b..2a94835 100644 (file)
@@ -35,4 +35,5 @@ The detailed implementation of the CLAMP Participant ecosystem is described on t
    participant-intermediary
    http-participant
    k8s-participant
+   a1pms-participant
    policy-framework-participant
diff --git a/docs/clamp/acm/design-impl/participants/tosca/automation-composition-a1pms.yml b/docs/clamp/acm/design-impl/participants/tosca/automation-composition-a1pms.yml
new file mode 100644 (file)
index 0000000..5453d1e
--- /dev/null
@@ -0,0 +1,20 @@
+name: DemoInstance0
+version: 1.0.1
+compositionId: {{compositionId}}
+description: Demo automation composition instance 0
+elements:
+
+  709c62b3-8918-41b9-a747-d21eb79c6c25:
+    id: 709c62b3-8918-41b9-a747-d21eb79c6c25
+    definition:
+      name: onap.policy.clamp.ac.element.A1PMSAutomationCompositionElement
+      version: 1.2.3
+    description: Starter Automation Composition Element for the Demo
+    properties:
+      policyServiceEntities:
+        - a1PolicyServiceEntityId:
+            name: entity1
+            version: 1.0.1
+          clientId: a1policyservice
+          callbackUrl: http://a1policy.callback
+          keepAliveIntervalSeconds: 0
diff --git a/docs/clamp/acm/design-impl/participants/tosca/tosca-a1pms-participant.yml b/docs/clamp/acm/design-impl/participants/tosca/tosca-a1pms-participant.yml
new file mode 100644 (file)
index 0000000..576b5fc
--- /dev/null
@@ -0,0 +1,113 @@
+tosca_definitions_version: tosca_simple_yaml_1_3
+data_types:
+  onap.datatypes.ToscaConceptIdentifier:
+    derived_from: tosca.datatypes.Root
+    properties:
+      name:
+        type: string
+        required: true
+      version:
+        type: string
+        required: true
+  org.onap.datatypes.policy.clamp.acm.a1PmsAutomationCompositionElement.A1PolicyServiceEntity:
+    version: 1.0.0
+    derived_from: tosca.datatypes.Root
+    properties:
+      a1PolicyServiceEntityId:
+        type: onap.datatypes.ToscaConceptIdentifier
+        type_version: 1.0.0
+        required: true
+        description: The name and version of a Configuration Entity to be handled by the A1 PMS Automation Composition Element
+      clientId:
+        type: string
+        required: true
+        description: Client Id to be created
+      callbackUrl:
+        type: string
+        required: true
+        description: The callback URL to get registered
+      keepAliveIntervalSeconds:
+        type: integer
+        required: true
+        description: Keep alive interval time for the callback URL
+
+node_types:
+  org.onap.policy.clamp.acm.Participant:
+    version: 1.0.1
+    derived_from: tosca.nodetypes.Root
+    properties:
+      provider:
+        type: string
+        required: false
+  org.onap.policy.clamp.acm.AutomationCompositionElement:
+    version: 1.0.1
+    derived_from: tosca.nodetypes.Root
+    properties:
+      provider:
+        type: string
+        required: false
+      participantType:
+        type: onap.datatypes.ToscaConceptIdentifier
+        required: true
+      startPhase:
+        type: integer
+        required: false
+        constraints:
+        - greater-or-equal: 0
+        metadata:
+            common: true
+        description: A value indicating the start phase in which this automation composition element will be started, the
+                     first start phase is zero. Automation Composition Elements are started in their start_phase order and stopped
+                     in reverse start phase order. Automation Composition Elements with the same start phase are started and
+                     stopped simultaneously
+  org.onap.policy.clamp.acm.AutomationComposition:
+    version: 1.0.1
+    derived_from: tosca.nodetypes.Root
+    properties:
+      provider:
+        type: string
+        required: false
+      elements:
+        type: list
+        required: true
+        entry_schema:
+          type: onap.datatypes.ToscaConceptIdentifier
+  org.onap.policy.clamp.acm.A1PMSAutomationCompositionElement:
+    version: 1.0.1
+    derived_from: org.onap.policy.clamp.acm.AutomationCompositionElement
+    properties:
+      policyServiceEntities:
+        type: list
+        required: true
+        entry_schema:
+          type: org.onap.datatypes.policy.clamp.acm.a1pmsAutomationCompositionElement.A1PolicyServiceEntity
+          type_version: 1.0.0
+        description: The configuration entities of A1 policy services
+topology_template:
+  node_templates:
+    org.onap.policy.clamp.acm.A1PMSAutomationCompositionParticipant:
+      version: 2.3.4
+      type: org.onap.policy.clamp.acm.Participant
+      type_version: 1.0.1
+      description: Participant for A1 PMS requests
+      properties:
+        provider: ONAP
+
+    onap.policy.clamp.ac.element.A1PMSAutomationCompositionElement:
+      version: 1.2.3
+      type: org.onap.policy.clamp.acm.A1PMSAutomationCompositionElement
+      type_version: 1.0.1
+      description: Automation composition element for the A1 PMS Requests
+      properties:
+        provider: ONAP
+
+    org.onap.domain.sample.A1PMSAutomationCompositionDefinition:
+      version: 1.2.3
+      type: org.onap.policy.clamp.acm.AutomationComposition
+      type_version: 1.0.0
+      description: Automation composition for A1PMS request
+      properties:
+        provider: ONAP
+        elements:
+          - name: onap.policy.clamp.ac.element.A1PMSAutomationCompositionElement
+            version: 1.2.3
\ No newline at end of file
diff --git a/docs/clamp/acm/images/participants/a1pms-participant.png b/docs/clamp/acm/images/participants/a1pms-participant.png
new file mode 100755 (executable)
index 0000000..769cedf
Binary files /dev/null and b/docs/clamp/acm/images/participants/a1pms-participant.png differ