diff options
author | FrancescoFioraEst <francesco.fiora@est.tech> | 2023-04-14 14:05:31 +0100 |
---|---|---|
committer | FrancescoFioraEst <francesco.fiora@est.tech> | 2023-04-17 11:35:49 +0100 |
commit | ad9a1e88471b5073fe24399b0f51e8ae5bca3e05 (patch) | |
tree | 289f9945c064023c96a9972cdaa43ae915c6b5a1 /docs/development | |
parent | 3c9df4d7ec185580fe1591d7003a42237fb8f23f (diff) |
Update doc CLAMP Policy Participant Smoke Tests
Update "CLAMP Policy Participant Smoke Tests"
and "CLAMP Participant Protocol Smoke Tests" docs
Issue-ID: POLICY-4643
Change-Id: If6b29b2a7cae85aeefaa056431e12d78cc6c077e
Signed-off-by: FrancescoFioraEst <francesco.fiora@est.tech>
Diffstat (limited to 'docs/development')
22 files changed, 1429 insertions, 1292 deletions
diff --git a/docs/development/devtools/devtools.rst b/docs/development/devtools/devtools.rst index 1bb96a8d..f52a8c3f 100644 --- a/docs/development/devtools/devtools.rst +++ b/docs/development/devtools/devtools.rst @@ -306,8 +306,8 @@ familiar with the Policy Framework components and test any local changes. db-migrator-smoke.rst smoke/acm-participants-smoke.rst smoke/clamp-smoke.rst - clamp-cl-participant-protocol-smoke.rst - policy-participant-smoke.rst + smoke/clamp-ac-participant-protocol-smoke.rst + smoke/policy-participant-smoke.rst api-smoke.rst pap-smoke.rst apex-smoke.rst diff --git a/docs/development/devtools/images/pol-part-clampacm-creation-ver.png b/docs/development/devtools/images/pol-part-clampacm-creation-ver.png Binary files differdeleted file mode 100644 index 36fdfafa..00000000 --- a/docs/development/devtools/images/pol-part-clampacm-creation-ver.png +++ /dev/null diff --git a/docs/development/devtools/images/pol-part-clampacm-pmcontrol-deploy-ver.png b/docs/development/devtools/images/pol-part-clampacm-pmcontrol-deploy-ver.png Binary files differdeleted file mode 100644 index 10f3da77..00000000 --- a/docs/development/devtools/images/pol-part-clampacm-pmcontrol-deploy-ver.png +++ /dev/null diff --git a/docs/development/devtools/images/pol-part-clampacm-pmcontrol-nf.png b/docs/development/devtools/images/pol-part-clampacm-pmcontrol-nf.png Binary files differdeleted file mode 100644 index 1f10411e..00000000 --- a/docs/development/devtools/images/pol-part-clampacm-pmcontrol-nf.png +++ /dev/null diff --git a/docs/development/devtools/images/pol-part-clampacm-pmcontrol-undep-ver.png b/docs/development/devtools/images/pol-part-clampacm-pmcontrol-undep-ver.png Binary files differdeleted file mode 100644 index d023a83b..00000000 --- a/docs/development/devtools/images/pol-part-clampacm-pmcontrol-undep-ver.png +++ /dev/null diff --git a/docs/development/devtools/images/pol-part-clampacm-pmcontrol-ver.png b/docs/development/devtools/images/pol-part-clampacm-pmcontrol-ver.png Binary files differdeleted file mode 100644 index 0be48b17..00000000 --- a/docs/development/devtools/images/pol-part-clampacm-pmcontrol-ver.png +++ /dev/null diff --git a/docs/development/devtools/images/pol-part-clampacm-test-policy-nf.png b/docs/development/devtools/images/pol-part-clampacm-test-policy-nf.png Binary files differdeleted file mode 100644 index 293c7607..00000000 --- a/docs/development/devtools/images/pol-part-clampacm-test-policy-nf.png +++ /dev/null diff --git a/docs/development/devtools/images/pol-part-clampacm-test-policy-ver.png b/docs/development/devtools/images/pol-part-clampacm-test-policy-ver.png Binary files differdeleted file mode 100644 index dfa4a9d1..00000000 --- a/docs/development/devtools/images/pol-part-clampacm-test-policy-ver.png +++ /dev/null diff --git a/docs/development/devtools/policy-participant-smoke.rst b/docs/development/devtools/policy-participant-smoke.rst deleted file mode 100644 index 031c2cb3..00000000 --- a/docs/development/devtools/policy-participant-smoke.rst +++ /dev/null @@ -1,383 +0,0 @@ -.. This work is licensed under a -.. Creative Commons Attribution 4.0 International License. -.. http://creativecommons.org/licenses/by/4.0 - -CLAMP Policy Participant Smoke Tests ------------------------------------- - -1. Introduction -*************** - -The Smoke testing of the policy participant is executed in a local CLAMP/Policy environment. The CLAMP-ACM interfaces interact with the Policy Framework to perform actions based on the state of the policy participant. The goal of the Smoke tests is the ensure that CLAMP Policy Participant and Policy Framework work together as expected. - -2. Setup Guide -************** - -This section will show the developer how to set up their environment to start testing in GUI with some instruction on how to carry out the tests. There are several prerequisites. Note that this guide is written by a Linux user - although the majority of the steps show will be exactly the same in Windows or other systems. - -2.1 Prerequisites -================= - -- Java 11 -- Maven 3 -- Git -- Refer to this guide for basic environment setup `Setting up dev environment <https://wiki.onap.org/display/DW/Setting+Up+Your+Development+Environment>`_ - -2.2 Assumptions -=============== - -- You are accessing the policy repositories through gerrit -- You are using "git review". - -The following repositories are required for development in this project. These repositories should be present on your machine and you should run "mvn clean install" on all of them so that the packages are present in your .m2 repository. - -- policy/parent -- policy/common -- policy/models -- policy/clamp -- policy/docker -- policy/gui -- policy/api - -In this setup guide, we will be setting up all the components technically required for a working convenient dev environment. - -2.3 Setting up the components -============================= - -2.3.1 MariaDB Setup -^^^^^^^^^^^^^^^^^^^ - -We will be using Docker to run our mariadb instance. It will have a total of two databases running in it. - -- clampacm: the runtime-clampacm db -- policyadmin: the policy-api db - -The easiest way to do this is to perform a small alteration on an SQL script provided by the clamp backend in the file "runtime/extra/sql/bulkload/create-db.sql" - -.. code-block:: mysql - - CREATE DATABASE `clampacm`; - USE `clampacm`; - DROP USER 'policy'; - CREATE USER 'policy'; - GRANT ALL on clampacm.* to 'policy' identified by 'P01icY' with GRANT OPTION; - CREATE DATABASE `policyadmin`; - USE `policyadmin`; - DROP USER 'policy_user'; - CREATE USER 'policy_user'; - GRANT ALL on clampacm.* to 'policy_user' identified by 'policy_user' with GRANT OPTION; - FLUSH PRIVILEGES; - -Once this has been done, we can run the bash script provided here: "runtime/extra/bin-for-dev/start-db.sh" - -.. code-block:: bash - - ./start-db.sh - -This will setup the two databases needed. The database will be exposed locally on port 3306 and will be backed by an anonymous docker volume. - -2.3.2 DMAAP Simulator -^^^^^^^^^^^^^^^^^^^^^ - -For convenience, a dmaap simulator has been provided in the policy/models repository. To start the simulator, you can do the following: -1. Navigate to /models-sim/policy-models-simulators in the policy/models repository. -2. Add a configuration file to src/test/resources with the following contents: - -.. code-block:: json - - { - "dmaapProvider":{ - "name":"DMaaP simulator", - "topicSweepSec":900 - }, - "restServers":[ - { - "name":"DMaaP simulator", - "providerClass":"org.onap.policy.models.sim.dmaap.rest.DmaapSimRestControllerV1", - "host":"localhost", - "port":3904, - "https":false - } - ] - } - -3. You can then start dmaap with: - -.. code-block:: bash - - mvn exec:java -Dexec.mainClass=org.onap.policy.models.simulators.Main -Dexec.args="src/test/resources/YOUR_CONF_FILE.json" - -At this stage the dmaap simulator should be running on your local machine on port 3904. - -2.3.3 Policy API -^^^^^^^^^^^^^^^^ - -In the policy-api repo, you should find the file "src/main/resources/etc/defaultConfig.json". This file must be altered slightly - as below with the restServerParameters and databaseProviderParameters shown. Note how the database parameters match-up with what you setup in Mariadb: - -.. code-block:: yaml - - server: - port: 6969 - spring: - security.user: - name: policyadmin - password: zb!XztG34 - mvc.converters.preferred-json-mapper: gson - datasource: - url: jdbc:mariadb://mariadb:3306/policyadmin - driverClassName: org.mariadb.jdbc.Driver - username: policy_user - password: policy_user - jpa: - properties: - hibernate: - dialect: org.hibernate.dialect.MariaDB103Dialect - hibernate: - ddl-auto: none - naming: - physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl - implicit-strategy: org.onap.policy.common.spring.utils.CustomImplicitNamingStrategy - policy-api: - name: ApiGroup - aaf: false - database: - name: PolicyProviderParameterGroup - implementation: org.onap.policy.models.provider.impl.DatabasePolicyModelsProviderImpl - driver: org.mariadb.jdbc.Driver - url: jdbc:mariadb://mariadb:3306/policyadmin - user: policy_user - password: policy_user - persistenceUnit: PolicyDb - policy-preload: - policyTypes: - - policytypes/onap.policies.monitoring.tcagen2.yaml - - policytypes/onap.policies.monitoring.dcaegen2.collectors.datafile.datafile-app-server.yaml - - policytypes/onap.policies.monitoring.dcae-restconfcollector.yaml - - policytypes/onap.policies.monitoring.dcae-pm-subscription-handler.yaml - - policytypes/onap.policies.monitoring.dcae-pm-mapper.yaml - - policytypes/onap.policies.Optimization.yaml - - policytypes/onap.policies.optimization.Resource.yaml - - policytypes/onap.policies.controlloop.operational.common.Drools.yaml - policies: - - policies/sdnc.policy.naming.input.tosca.yaml - management: - endpoints: - web: - base-path: / - exposure: - include: health,metrics,prometheus - path-mapping.prometheus: metrics - -Next, navigate to the "/main" directory. You can then run the following command to start the policy api: - -.. code-block:: bash - - mvn exec:java -Dexec.mainClass=org.onap.policy.api.main.startstop.Main -Dexec.args=" -c ../packages/policy-api-tarball/src/main/resources/etc/defaultConfig.json" - -2.3.4 Policy PAP -^^^^^^^^^^^^^^^^ - -In the policy-pap repo, you should find the file 'main/src/test/resources/parameters/PapConfigParameters.json'. This file may need to be altered slightly as below: - -.. code-block:: yaml - - spring: - security: - user: - name: policyadmin - password: zb!XztG34 - http: - converters: - preferred-json-mapper: gson - datasource: - url: jdbc:mariadb://mariadb:3306/policyadmin - driverClassName: org.mariadb.jdbc.Driver - username: policy_user - password: policy_user - jpa: - properties: - hibernate: - dialect: org.hibernate.dialect.MySQL5InnoDBDialect - hibernate: - ddl-auto: none - naming: - physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl - implicit-strategy: org.onap.policy.pap.main.CustomImplicitNamingStrategy - server: - port: 6969 - pap: - name: PapGroup - pdpParameters: - heartBeatMs: 120000 - updateParameters: - maxRetryCount: 1 - -Next, navigate to the "/main" directory. You can then run the following command to start the policy pap - -.. code-block:: bash - - mvn -q -e clean compile exec:java -Dexec.mainClass="org.onap.policy.pap.main.startstop.Main" -Dexec.args="-c /src/test/resources/parameters/PapConfigParameters.json" - -2.3.5 ACM Runtime -^^^^^^^^^^^^^^^^^^^^^^^^^ - -To start the clampacm runtime we need to go the "runtime-clampacm" directory in the clamp repo. There is a config file that is used, by default, for the clampacm runtime. That config file is here: "src/main/resources/application.yaml". For development in your local environment, it shouldn't need any adjustment and we can just run the clampacm runtime with: - -.. code-block:: bash - - mvn spring-boot:run - -2.3.6 ACM Policy Participant -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -To start the policy participant we need to go to the "participant-impl/participant-impl-policy" directory in the clamp repo. There is a config file under "src/main/resources/config/application.yaml". For development in your local environment, we will need to adjust this file slightly: - -.. code-block:: yaml - - server: - port: 8082 - - participant: - pdpGroup: defaultGroup - pdpType: apex - policyApiParameters: - clientName: api - hostname: localhost - port: 6970 - userName: healthcheck - password: zb!XztG34 - https: true - allowSelfSignedCerts: true - policyPapParameters: - clientName: pap - hostname: localhost - port: 6968 - userName: healthcheck - password: zb!XztG34 - https: true - allowSelfSignedCerts: true - intermediaryParameters: - reportingTimeIntervalMs: 120000 - description: Participant Description - participantId: - name: org.onap.PM_Policy - version: 1.0.0 - participantType: - name: org.onap.policy.clampacm.PolicyControlLoopParticipant - version: 2.3.1 - clampControlLoopTopics: - topicSources: - - - topic: POLICY-CLRUNTIME-PARTICIPANT - servers: - - ${topicServer:localhost} - topicCommInfrastructure: dmaap - fetchTimeout: 15000 - topicSinks: - - - topic: POLICY-CLRUNTIME-PARTICIPANT - servers: - - ${topicServer:localhost} - topicCommInfrastructure: dmaap - -Navigate to the participant-impl/particpant-impl-policy/main directory. We can then run the policy-participant with the following command: - -.. code-block:: bash - - mvn spring-boot:run -Dspring-boot.run.arguments="--server.port=8082 --topicServer=localhost" - -3. Testing Procedure -==================== - -3.1 Testing Outline -^^^^^^^^^^^^^^^^^^^ - -To perform the Smoke testing of the policy-participant we will be verifying the behaviours of the participant when the control loop changes state. The scenarios are: - -- UNINITIALISED to PASSIVE: participant creates policies and policyTypes specified in the ToscaServiceTemplate using policy-api and deploys the policies using pap. -- PASSIVE to RUNNING: participant changes state to RUNNING. No operation performed. -- RUNNING to PASSIVE: participant changes state to PASSIVE. No operation performed. -- PASSIVE to UNINITIALISED: participant undeploys deployed policies and deletes policies and policyTypes which have been created. - -3.2 Testing Steps -^^^^^^^^^^^^^^^^^ - -Creation of ACM: -************************ - -An ACM is created by commissioning a Tosca template with ACM definitions and instantiating the ACM with the state "UNINITIALISED". -Using postman, commission a TOSCA template and instantiate using the following template: - -:download:`Tosca Service Template <tosca/tosca_service_template_pptnt_smoke.yaml>` - -:download:`Instantiate ACM <tosca/instantiation_pptnt_smoke.json>` - -To verify this, we check that the ACM has been created and is in state UNINITIALISED. - - .. image:: images/pol-part-clampacm-creation-ver.png - -Creation of policies and policyTypes: -************************************* - -The ACM STATE is changed from UNINITIALISED to PASSIVE using postman: - -.. code-block:: json - - { - "orderedState": "PASSIVE", - "controlLoopIdentifierList": [ - { - "name": "PMSHInstance0", - "version": "1.0.1" - } - ] - } - -This state change will trigger the creation of policies and policyTypes using the policy-api. To verify this we will check, using policy-api endpoints, that the "Test Policy" policyType, which is specified in the service template, has been created. - - .. image:: images/pol-part-clampacm-test-policy-ver.png - -We can also check that the pm-control policy has been created. - - .. image:: images/pol-part-clampacm-pmcontrol-ver.png - -Deployment of policies: -*********************** - -The ACM STATE is changed from UNINITIALISED to PASSIVE using postman: - -This state change will trigger the deployment of the policies specified in the ToscaServiceTemplate. To verify this, we will check that the apex pmcontrol policy has been deployed to the defaultGroup. We check this using pap: - - .. image:: images/pol-part-clampacm-pmcontrol-deploy-ver.png - -Undeployment of policies: -************************* - -The ACM STATE is changed from PASSIVE to UNINITIALISED using postman: - -.. code-block:: json - - { - "orderedState": "UNINITIALISED", - "controlLoopIdentifierList": [ - { - "name": "PMSHInstance0", - "version": "1.0.1" - } - ] - } - -This state change will trigger the undeployment of the pmcontrol policy which was deployed previously. To verify this we do a PdpGroup Query as before and check that the pmcontrol policy has been undeployed and removed from the defaultGroup: - - .. image:: images/pol-part-clampacm-pmcontrol-undep-ver.png - -Deletion of policies and policyTypes: -************************************* - -The ACM STATE is changed from PASSIVE to UNINITIALISED using postman: - -This state change will trigger the deletion of the previously created policies and policyTypes. To verify this, as before, we can check that the Test Policy policyType is not found this time and likewise for the pmcontrol policy: - - .. image:: images/pol-part-clampacm-test-policy-nf.png - - .. image:: images/pol-part-clampacm-pmcontrol-nf.png diff --git a/docs/development/devtools/clamp-cl-participant-protocol-smoke.rst b/docs/development/devtools/smoke/clamp-ac-participant-protocol-smoke.rst index 09ab453f..52275be5 100644 --- a/docs/development/devtools/clamp-cl-participant-protocol-smoke.rst +++ b/docs/development/devtools/smoke/clamp-ac-participant-protocol-smoke.rst @@ -33,7 +33,7 @@ Linux user - although the majority of the steps show will be exactly the same in ============================= - Automation Composition runtime component docker image is started and running. -- Participant docker images policy-clamp-cl-pf-ppnt, policy-clamp-cl-http-ppnt, policy-clamp-cl-k8s-ppnt are started and running. +- Participant docker images policy-clamp-ac-pf-ppnt, policy-clamp-ac-http-ppnt, policy-clamp-ac-k8s-ppnt are started and running. - Dmaap simulator for communication between components. - mariadb docker container for policy and clampacm database. - policy-api for communication between policy participant and policy-framework @@ -47,7 +47,7 @@ example. We will be using Docker to run our mariadb instance. It will have a total of two databases running in it. -- clampacm: the runtime-clampacm db +- clampacm: the policy-clamp-runtime-acm db - policyadmin: the policy-api db 3. Running Tests of protocol dialogues @@ -67,7 +67,7 @@ Test result: - Observe PARTICIPANT_REGISTER going from participant to runtime - Observe PARTICIPANT_REGISTER_ACK going from runtime to participant -- Observe PARTICIPANT_UPDATE going from runtime to participant +- Observe PARTICIPANT_PRIME going from runtime to participant 3.2 Participant Deregistration ============================== @@ -81,15 +81,15 @@ Test result: 3.3 Participant Priming ======================= -When an automation composition is primed, the portion of the Automation Composition Type Definition and Common Property values for the participants +When an automation composition definition is primed, the portion of the Automation Composition Type Definition and Common Property values for the participants of each participant type mentioned in the Automation Composition Definition are sent to the participants. Action: Invoke a REST API to prime acm type definitions and set values of common properties Test result: -- Observe PARTICIPANT_UPDATE going from runtime to participant with acm type definitions and common property values for participant types +- Observe PARTICIPANT_PRIME going from runtime to participant with acm type definitions and common property values for participant types - Observe that the acm type definitions and common property values for participant types are stored on ParticipantHandler -- Observe PARTICIPANT_UPDATE_ACK going from runtime to participant +- Observe PARTICIPANT_PRIME_ACK going from runtime to participant 3.4 Participant DePriming ========================= @@ -101,73 +101,68 @@ Action: Invoke a REST API to deprime acm type definitions Test result: - If acm instances exist in runtime database, return a response for the REST API with error response saying "Cannot decommission acm type definition" -- If no acm instances exist in runtime database, Observe PARTICIPANT_UPDATE going from runtime to participant with definitions as null +- If no acm instances exist in runtime database, Observe PARTICIPANT_PRIME going from runtime to participant with definitions as null - Observe that the acm type definitions and common property values for participant types are removed on ParticipantHandler -- Observe PARTICIPANT_UPDATE_ACK going from runtime to participant +- Observe PARTICIPANT_PRIME_ACK going from runtime to participant -3.5 Automation Composition Update -================================= +3.5 Automation Composition Instance +=================================== -Automation Composition Update handles creation, change, and deletion of automation compositions on participants. +Automation Composition Instance handles creation, change, and deletion of automation composition instances on participants. Action: Trigger acm instantiation from GUI Test result: -- Observe AUTOMATION_COMPOSITION_UPDATE going from runtime to participant -- Observe that the acm type instances and respective property values for participant types are stored on AutomationCompositionHandler -- Observe that the acm state is UNINITIALISED -- Observe AUTOMATION_COMPOSITION_UPDATE_ACK going from participant to runtime +- Observe that the acm instances and respective property values for participant are stored on AutomationCompositionHandler +- Observe that the acm deploy state is UNDEPLOYED -3.6 Automation Composition state change to PASSIVE -================================================== +3.6 Automation Composition deploy state change to DEPLOYED +========================================================== Automation Composition Update handles creation, change, and deletion of automation compositions on participants. -Action: Change state of the acm to PASSIVE +Action: Change deploy state of the acm to DEPLOYED Test result: -- Observe AUTOMATION_COMPOSITION_STATE_CHANGE going from runtime to participant -- Observe that the AutomationCompositionElements state is PASSIVE -- Observe that the acm state is PASSIVE -- Observe AUTOMATION_COMPOSITION_STATE_CHANGE_ACK going from participant to runtime +- Observe AUTOMATION_COMPOSITION_DEPLOY going from runtime to participant +- Observe that the AutomationCompositionElements deploy state is DEPLOYED +- Observe that the acm deploy state is DEPLOYED +- Observe AUTOMATION_COMPOSITION_DEPLOY_ACK going from participant to runtime -3.7 Automation Composition state change to RUNNING -================================================== +3.7 Automation Composition lock state change to UNLOCK +====================================================== -Automation Composition Update handles creation, change, and deletion of automation compositions on participants. -Action: Change state of the acm to RUNNING +Action: Change lock state of the acm to UNLOCK Test result: - Observe AUTOMATION_COMPOSITION_STATE_CHANGE going from runtime to participant -- Observe that the AutomationCompositionElements state is RUNNING -- Observe that the acm state is RUNNING +- Observe that the AutomationCompositionElements lock state is UNLOCK +- Observe that the acm state is UNLOCK - Observe AUTOMATION_COMPOSITION_STATE_CHANGE_ACK going from participant to runtime -3.8 Automation Composition state change to PASSIVE -================================================== +3.8 Automation Composition lock state change to LOCK +==================================================== -Automation Composition Update handles creation, change, and deletion of automation compositions on participants. -Action: Change state of the acm to PASSIVE +Action: Change lock state of the acm to LOCK Test result: - Observe AUTOMATION_COMPOSITION_STATE_CHANGE going from runtime to participant -- Observe that the AutomationCompositionElements state is PASSIVE -- Observe that the acm state is PASSIVE +- Observe that the AutomationCompositionElements lock state is LOCK +- Observe that the acm lock state is LOCK - Observe AUTOMATION_COMPOSITION_STATE_CHANGE_ACK going from participant to runtime -3.9 Automation Composition state change to UNINITIALISED -======================================================== +3.9 Automation Composition deploy state change to UNDEPLOYED +============================================================ -Automation Composition Update handles creation, change, and deletion of automation compositions on participants. -Action: Change state of the acm to UNINITIALISED +Action: Change deploy state of the acm to UNDEPLOYED Test result: - Observe AUTOMATION_COMPOSITION_STATE_CHANGE going from runtime to participant -- Observe that the AutomationCompositionElements state is UNINITIALISED -- Observe that the acm state is UNINITIALISED +- Observe that the AutomationCompositionElements deploy state is UNDEPLOYED +- Observe that the acm deploy state is UNDEPLOYED - Observe that the AutomationCompositionElements undeploy the instances from respective frameworks - Observe that the automation composition instances are removed from participants - Observe AUTOMATION_COMPOSITION_STATE_CHANGE_ACK going from participant to runtime diff --git a/docs/development/devtools/smoke/images/pol-part-clampacm-ac-deploy-ver.png b/docs/development/devtools/smoke/images/pol-part-clampacm-ac-deploy-ver.png Binary files differnew file mode 100644 index 00000000..4a3f5f38 --- /dev/null +++ b/docs/development/devtools/smoke/images/pol-part-clampacm-ac-deploy-ver.png diff --git a/docs/development/devtools/smoke/images/pol-part-clampacm-ac-policy-ver.png b/docs/development/devtools/smoke/images/pol-part-clampacm-ac-policy-ver.png Binary files differnew file mode 100644 index 00000000..cee5486a --- /dev/null +++ b/docs/development/devtools/smoke/images/pol-part-clampacm-ac-policy-ver.png diff --git a/docs/development/devtools/smoke/images/pol-part-clampacm-ac-undep-ver.png b/docs/development/devtools/smoke/images/pol-part-clampacm-ac-undep-ver.png Binary files differnew file mode 100644 index 00000000..2d7337ab --- /dev/null +++ b/docs/development/devtools/smoke/images/pol-part-clampacm-ac-undep-ver.png diff --git a/docs/development/devtools/smoke/images/pol-part-clampacm-creation-ver.png b/docs/development/devtools/smoke/images/pol-part-clampacm-creation-ver.png Binary files differnew file mode 100644 index 00000000..0b94ab88 --- /dev/null +++ b/docs/development/devtools/smoke/images/pol-part-clampacm-creation-ver.png diff --git a/docs/development/devtools/smoke/images/pol-part-clampacm-get-composition.png b/docs/development/devtools/smoke/images/pol-part-clampacm-get-composition.png Binary files differnew file mode 100644 index 00000000..358546ec --- /dev/null +++ b/docs/development/devtools/smoke/images/pol-part-clampacm-get-composition.png diff --git a/docs/development/devtools/smoke/images/pol-part-clampacm-get-primed-composition.png b/docs/development/devtools/smoke/images/pol-part-clampacm-get-primed-composition.png Binary files differnew file mode 100644 index 00000000..d02e821a --- /dev/null +++ b/docs/development/devtools/smoke/images/pol-part-clampacm-get-primed-composition.png diff --git a/docs/development/devtools/smoke/images/pol-part-clampacm-test-policy-nf.png b/docs/development/devtools/smoke/images/pol-part-clampacm-test-policy-nf.png Binary files differnew file mode 100644 index 00000000..90c4084c --- /dev/null +++ b/docs/development/devtools/smoke/images/pol-part-clampacm-test-policy-nf.png diff --git a/docs/development/devtools/smoke/json/instantiation_pptnt_smoke.json b/docs/development/devtools/smoke/json/instantiation_pptnt_smoke.json new file mode 100644 index 00000000..aa8ca23d --- /dev/null +++ b/docs/development/devtools/smoke/json/instantiation_pptnt_smoke.json @@ -0,0 +1,26 @@ +{ + "compositionId": "{{compositionId}}", + "name": "DemoInstance1", + "version": "1.0.1", + "description": "Demo automation composition instance 0", + "elements": { + "709c62b3-8918-41b9-a747-d21eb79c6c20": { + "id": "709c62b3-8918-41b9-a747-d21eb79c6c20", + "definition": { + "name": "onap.policy.clamp.ac.element.Policy_AutomationCompositionElement", + "version": "1.2.3" + }, + "participantId": "101c62b3-8918-41b9-a747-d21eb79c6c03", + "description": "Starter Automation Composition Element for the Demo", + "properties": { + "policy_type_id": { + "name": "onap.policies.operational.pm-subscription-handler", + "version": "1.0.0" + }, + "policy_id": { + "get_input": "acm_element_policy" + } + } + } + } +} diff --git a/docs/development/devtools/smoke/policy-participant-smoke.rst b/docs/development/devtools/smoke/policy-participant-smoke.rst new file mode 100644 index 00000000..58e34494 --- /dev/null +++ b/docs/development/devtools/smoke/policy-participant-smoke.rst @@ -0,0 +1,429 @@ +.. This work is licensed under a +.. Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 + +CLAMP Policy Participant Smoke Tests +------------------------------------ + +1. Introduction +*************** + +The Smoke testing of the policy participant is executed in a local CLAMP/Policy environment. The CLAMP-ACM interfaces interact with the Policy Framework to perform actions based on the state of the policy participant. The goal of the Smoke tests is the ensure that CLAMP Policy Participant and Policy Framework work together as expected. +All applications will be running by console, so they need to run with different ports. Configuration files should be changed accordingly. + ++------------------------------+------+ +| Application | port | ++==============================+======+ +| MariDB | 3306 | ++------------------------------+------+ +| DMaaP simulator | 3904 | ++------------------------------+------+ +| policy-api | 6968 | ++------------------------------+------+ +| policy-pap | 6970 | ++------------------------------+------+ +| policy-clamp-runtime-acm | 6969 | ++------------------------------+------+ +| onap/policy-clamp-ac-pf-ppnt | 8085 | ++------------------------------+------+ + + +2. Setup Guide +************** + +This section will show the developer how to set up their environment to start testing in GUI with some instruction on how to carry out the tests. There are several prerequisites. Note that this guide is written by a Linux user - although the majority of the steps show will be exactly the same in Windows or other systems. + +2.1 Prerequisites +================= + +- Java 11 +- Maven 3 +- Git +- Refer to this guide for basic environment setup `Setting up dev environment <https://wiki.onap.org/display/DW/Setting+Up+Your+Development+Environment>`_ + +2.2 Assumptions +=============== + +- You are accessing the policy repositories through gerrit +- You are using "git review". + +The following repositories are required for development in this project. These repositories should be present on your machine and you should run "mvn clean install" on all of them so that the packages are present in your .m2 repository. + +- policy/parent +- policy/common +- policy/models +- policy/clamp +- policy/api +- policy/pap + +In this setup guide, we will be setting up all the components technically required for a working convenient dev environment. + +2.3 Setting up the components +============================= + +2.3.1 MariaDB Setup +^^^^^^^^^^^^^^^^^^^ + +We will be using Docker to run our mariadb instance. It will have a total of two databases running in it. + +- clampacm: the policy-clamp-runtime-acm db +- policyadmin: the policy-api db + +A sql such as the one below can be used to build the SQL initialization. Create the *mariadb.sql* file in a directory *PATH_DIRECTORY*. + + .. code-block:: SQL + + create database clampacm; + CREATE USER 'policy'@'%' IDENTIFIED BY 'P01icY'; + GRANT ALL PRIVILEGES ON clampacm.* TO 'policy'@'%'; + CREATE DATABASE `policyadmin`; + CREATE USER 'policy_user'@'%' IDENTIFIED BY 'policy_user'; + GRANT ALL PRIVILEGES ON policyadmin.* to 'policy_user'@'%'; + FLUSH PRIVILEGES; + + +Execution of the command above results in the creation and start of the *mariadb-smoke-test* container. + + .. code-block:: bash + + docker run --name mariadb-smoke-test \ + -p 3306:3306 \ + -e MYSQL_ROOT_PASSWORD=my-secret-pw \ + --mount type=bind,source=PATH_DIRECTORY/mariadb.sql,target=/docker-entrypoint-initdb.d/data.sql \ + -d mariadb:10.10.2 \ + --lower-case-table-names=1 + +This will setup the two databases needed. The database will be exposed locally on port 3306. + +2.3.2 DMAAP Simulator +^^^^^^^^^^^^^^^^^^^^^ + +For convenience, a dmaap simulator has been provided in the policy/models repository. To start the simulator, you can do the following: + +#. Navigate to models-sim/policy-models-simulators in the policy/models repository. +#. Add a configuration file to src/test/resources with the following contents: + +.. code-block:: json + + { + "dmaapProvider":{ + "name":"DMaaP simulator", + "topicSweepSec":900 + }, + "restServers":[ + { + "name":"DMaaP simulator", + "providerClass":"org.onap.policy.models.sim.dmaap.rest.DmaapSimRestControllerV1", + "host":"localhost", + "port":3904, + "https":false + } + ] + } + +3. You can then start dmaap with: + +.. code-block:: bash + + mvn exec:java -Dexec.mainClass=org.onap.policy.models.simulators.Main -Dexec.args="src/test/resources/YOUR_CONF_FILE.json" + +At this stage the dmaap simulator should be running on your local machine on port 3904. + +2.3.3 Policy API +^^^^^^^^^^^^^^^^ + +Navigate to the "/main" directory. You can then run the following command to start the policy api: + +.. code-block:: bash + + java -jar target/api-main-2.8.2-SNAPSHOT.jar --spring.datasource.url=jdbc:mariadb://localhost:3306/policyadmin --spring.jpa.hibernate.ddl-auto=update --server.port=6968 + + +2.3.4 Policy PAP +^^^^^^^^^^^^^^^^ + +In the policy-pap repo, you should find the file 'main\src\main\resources\application.yaml'. This file may need to be altered slightly as below: + +.. code-block:: yaml + + spring: + security: + user: + name: policyadmin + password: zb!XztG34 + http: + converters: + preferred-json-mapper: gson + datasource: + url: jdbc:mariadb://localhost:3306/policyadmin + driverClassName: org.mariadb.jdbc.Driver + username: policy_user + password: policy_user + jpa: + properties: + hibernate: + dialect: org.hibernate.dialect.MariaDB103Dialect + hibernate: + ddl-auto: update + naming: + physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl + implicit-strategy: org.onap.policy.common.spring.utils.CustomImplicitNamingStrategy + + server: + port: 6970 + servlet: + context-path: /policy/pap/v1 + pap: + name: PapGroup + aaf: false + topic: + pdp-pap.name: POLICY-PDP-PAP + notification.name: POLICY-NOTIFICATION + heartbeat.name: POLICY-HEARTBEAT + pdpParameters: + heartBeatMs: 120000 + updateParameters: + maxRetryCount: 1 + maxWaitMs: 30000 + stateChangeParameters: + maxRetryCount: 1 + maxWaitMs: 30000 + savePdpStatisticsInDb: true + topicParameterGroup: + topicSources: + - topic: ${pap.topic.pdp-pap.name} + servers: + - localhost + topicCommInfrastructure: dmaap + fetchTimeout: 15000 + - topic: ${pap.topic.heartbeat.name} + effectiveTopic: ${pap.topic.pdp-pap.name} + consumerGroup: policy-pap + servers: + - localhost + topicCommInfrastructure: dmaap + fetchTimeout: 15000 + topicSinks: + - topic: ${pap.topic.pdp-pap.name} + servers: + - localhost + topicCommInfrastructure: dmaap + - topic: ${pap.topic.notification.name} + servers: + - localhost + topicCommInfrastructure: dmaap + healthCheckRestClientParameters: + - clientName: api + hostname: localhost + port: 6968 + userName: policyadmin + password: zb!XztG34 + useHttps: false + basePath: policy/api/v1/healthcheck + - clientName: distribution + hostname: policy-distribution + port: 6969 + userName: healthcheck + password: zb!XztG34 + useHttps: false + basePath: healthcheck + - clientName: dmaap + hostname: localhost + port: 3904 + useHttps: false + basePath: topics + + management: + endpoints: + web: + base-path: / + exposure: + include: health, metrics, prometheus + path-mapping.metrics: plain-metrics + path-mapping.prometheus: metrics + +Next, navigate to the "/main" directory. You can then run the following command to start the policy pap + +.. code-block:: bash + + mvn spring-boot:run + +2.3.5 ACM Runtime +^^^^^^^^^^^^^^^^^ + +To start the clampacm runtime we need to go the "runtime-acm" directory in the clamp repo. There is a config file that is used, by default, for the clampacm runtime. That config file is here: "src/main/resources/application.yaml". For development in your local environment, it shouldn't need any adjustment and we can just run the clampacm runtime with: + +.. code-block:: bash + + mvn spring-boot:run + +2.3.6 ACM Policy Participant +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +To start the policy participant we need to go to the "participant/participant-impl/participant-impl-policy" directory in the clamp repo. There is a config file under "src/main/resources/config/application.yaml". For development in your local environment, we will need to adjust this file slightly: + +.. code-block:: yaml + + spring: + security: + user: + name: participantUser + password: zb!XztG34 + autoconfigure: + exclude: + - org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration + - org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration + - org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration + - org.springframework.boot.autoconfigure.data.web.SpringDataWebAutoConfiguration + + participant: + pdpGroup: defaultGroup + pdpType: apex + policyApiParameters: + clientName: api + hostname: localhost + port: 6968 + userName: policyadmin + password: zb!XztG34 + useHttps: false + allowSelfSignedCerts: true + policyPapParameters: + clientName: pap + hostname: localhost + port: 6970 + userName: policyadmin + password: zb!XztG34 + useHttps: false + allowSelfSignedCerts: true + intermediaryParameters: + reportingTimeIntervalMs: 120000 + description: Participant Description + participantId: 101c62b3-8918-41b9-a747-d21eb79c6c03 + clampAutomationCompositionTopics: + topicSources: + - + topic: POLICY-ACRUNTIME-PARTICIPANT + servers: + - ${topicServer:localhost} + topicCommInfrastructure: dmaap + fetchTimeout: 15000 + topicSinks: + - + topic: POLICY-ACRUNTIME-PARTICIPANT + servers: + - ${topicServer:localhost} + topicCommInfrastructure: dmaap + participantSupportedElementTypes: + - + typeName: org.onap.policy.clamp.acm.PolicyAutomationCompositionElement + typeVersion: 1.0.0 + + management: + endpoints: + web: + base-path: / + exposure: + include: health, metrics, prometheus + server: + port: 8085 + servlet: + context-path: /onap/policy/clamp/acm/policyparticipant + + +Navigate to the "participant/participant-impl/participant-impl-policy" directory. We can then run the policy-participant with the following command: + +.. code-block:: bash + + mvn spring-boot:run + +3. Testing Procedure +==================== + +3.1 Testing Outline +^^^^^^^^^^^^^^^^^^^ + +To perform the Smoke testing of the policy-participant we will be verifying the behaviours of the participant when the ACM changes state. The scenarios are: + +- UNDEPLOYED to DEPLOYED: participant creates policies and policyTypes specified in the ToscaServiceTemplate using policy-api and deploys the policies using pap. +- LOCK to UNLOCK: participant changes lock state to UNLOCK. No operation performed. +- UNLOCK to LOCK: participant changes lock state to LOCK. No operation performed. +- DEPLOYED to UNDEPLOYED: participant undeploys deployed policies and deletes policies and policyTypes which have been created. + +3.2 Testing Steps +^^^^^^^^^^^^^^^^^ + +Creation of AC Definition: +************************** +An AC Definition is created by commissioning a Tosca template. +Using postman, commission a TOSCA template using the following template: + +:download:`Tosca Service Template <tosca/tosca_service_template_pptnt_smoke.yaml>` + +To verify this, we check that the AC Definition has been created and is in state COMMISSIONED. + + .. image:: images/pol-part-clampacm-get-composition.png + +Priming AC Definition: +********************** +The AC Definition state is changed from COMMISSIONED to PRIMED using postman: + +.. code-block:: json + + { + "primeOrder": "PRIME" + } + + +To verify this, we check that the AC Definition has been primed. + + .. image:: images/pol-part-clampacm-get-primed-composition.png + + +Creation of AC Instance: +************************ +Using postman, instance the AC definition using the following template: + +:download:`Instantiate ACM <json/instantiation_pptnt_smoke.json>` + +To verify this, we check that the AC Instance has been created and is in state UNDEPLOYED. + + .. image:: images/pol-part-clampacm-creation-ver.png + +Creation and deploy of policies and policyTypes: +************************************************ +The AC Instance deploy state is changed from UNDEPLOYED to DEPLOYED using postman: + +.. code-block:: json + + { + "deployOrder": "DEPLOY" + } + +This state change will trigger the creation of policies and policyTypes using the policy-api and the deployment of the policies specified in the ToscaServiceTemplate. +To verify this we will check, using policy-api endpoints, that the onap.policies.native.apex.ac.element policy, which is specified in the service template, has been created. + + .. image:: images/pol-part-clampacm-ac-policy-ver.png + +And we will check that the apex onap.policies.native.apex.ac.element policy has been deployed to the defaultGroup. We check this using pap: + + .. image:: images/pol-part-clampacm-ac-deploy-ver.png + +Undeployment and deletion of policies and policyTypes: +****************************************************** +The ACM STATE is changed from DEPLOYED to UNDEPLOYED using postman: + +.. code-block:: json + + { + "deployOrder": "UNDEPLOY" + } + +This state change will trigger the undeployment of the onap.policies.native.apex.ac.element policy which was deployed previously and the deletion of the previously created policies and policyTypes. +To verify this we do a PdpGroup Query as before and check that the onap.policies.native.apex.ac.element policy has been undeployed and removed from the defaultGroup: + + .. image:: images/pol-part-clampacm-ac-undep-ver.png + + +As before, we can check that the Test Policy policyType is not found this time and likewise for the onap.policies.native.apex.ac.element policy: + + .. image:: images/pol-part-clampacm-test-policy-nf.png diff --git a/docs/development/devtools/tosca/tosca_service_template_pptnt_smoke.yaml b/docs/development/devtools/smoke/tosca/tosca-for-gui-smoke-tests.yaml index de6df367..ff160c98 100644 --- a/docs/development/devtools/tosca/tosca_service_template_pptnt_smoke.yaml +++ b/docs/development/devtools/smoke/tosca/tosca-for-gui-smoke-tests.yaml @@ -80,6 +80,7 @@ data_types: type: string onap.datatype.controlloop.Operation: derived_from: tosca.datatypes.Root + version: 1.0.0 description: An operation supported by an actor properties: id: @@ -146,7 +147,7 @@ policy_types: name: onap.policies.Sirisha onap.policies.controlloop.operational.Common: derived_from: tosca.policies.Root - version: 1.0.0 + version: 1.0.1 name: onap.policies.controlloop.operational.Common description: | Operational Policy for Control Loop execution. Originated in Frankfurt to support TOSCA Compliant @@ -177,6 +178,7 @@ policy_types: required: true entry_schema: type: onap.datatype.controlloop.Operation + type_version: 1.0.0 onap.policies.controlloop.operational.common.Apex: derived_from: onap.policies.controlloop.operational.Common type_version: 1.0.0 @@ -218,12 +220,6 @@ node_types: metadata: common: true description: Specifies the organization that provides the control loop element - participantType: - type: onap.datatypes.ToscaConceptIdentifier - required: true - metadata: - common: true - description: The identity of the participant type that hosts this type of Control Loop Element startPhase: type: integer required: false @@ -363,7 +359,6 @@ topology_template: description: Participant for DCAE microservices properties: provider: ONAP - org.onap.domain.pmsh.PMSH_MonitoringPolicyControlLoopElement: version: 1.2.3 type: org.onap.policy.clamp.controlloop.PolicyControlLoopElement @@ -371,9 +366,9 @@ topology_template: description: Control loop element for the monitoring policy for Performance Management Subscription Handling properties: provider: Ericsson - participantType: - name: org.onap.policy.controlloop.PolicyControlLoopParticipant - version: 2.3.1 + participant_id: + name: org.onap.PM_Policy + version: 1.0.0 policy_type_id: name: onap.policies.monitoring.pm-subscription-handler version: 1.0.0 @@ -386,9 +381,9 @@ topology_template: description: Control loop element for the operational policy for Performance Management Subscription Handling properties: provider: Ericsson - participantType: - name: org.onap.policy.controlloop.PolicyControlLoopParticipant - version: 2.3.1 + participant_id: + name: org.onap.PM_Policy + version: 1.0.0 policy_type_id: name: onap.policies.operational.pm-subscription-handler version: 1.0.0 @@ -402,8 +397,6 @@ topology_template: properties: provider: Ericsson elements: - - name: org.onap.domain.pmsh.PMSH_DCAEMicroservice - version: 1.2.3 - name: org.onap.domain.pmsh.PMSH_MonitoringPolicyControlLoopElement version: 1.2.3 - name: org.onap.domain.pmsh.PMSH_OperationalPolicyControlLoopElement diff --git a/docs/development/devtools/smoke/tosca/tosca_service_template_pptnt_smoke.yaml b/docs/development/devtools/smoke/tosca/tosca_service_template_pptnt_smoke.yaml new file mode 100644 index 00000000..a4e4fadf --- /dev/null +++ b/docs/development/devtools/smoke/tosca/tosca_service_template_pptnt_smoke.yaml @@ -0,0 +1,928 @@ +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 + + onap.datatypes.native.apex.EngineService: + derived_from: tosca.datatypes.Root + properties: + name: + type: string + description: Specifies the engine name + required: false + default: "ApexEngineService" + version: + type: string + description: Specifies the engine version in double dotted format + required: false + default: "1.0.0" + id: + type: integer + description: Specifies the engine id + required: true + instance_count: + type: integer + description: Specifies the number of engine threads that should be run + required: true + deployment_port: + type: integer + description: Specifies the port to connect to for engine administration + required: false + default: 1 + policy_model_file_name: + type: string + description: The name of the file from which to read the APEX policy model + required: false + policy_type_impl: + type: string + description: The policy type implementation from which to read the APEX policy model + required: false + periodic_event_period: + type: string + description: The time interval in milliseconds for the periodic scanning event, 0 means don't scan + required: false + engine: + type: onap.datatypes.native.apex.engineservice.Engine + description: The parameters for all engines in the APEX engine service + required: true + onap.datatypes.native.apex.EventHandler: + derived_from: tosca.datatypes.Root + properties: + name: + type: string + description: Specifies the event handler name, if not specified this is set to the key name + required: false + carrier_technology: + type: onap.datatypes.native.apex.CarrierTechnology + description: Specifies the carrier technology of the event handler (such as REST/Web Socket/Kafka) + required: true + event_protocol: + type: onap.datatypes.native.apex.EventProtocol + description: Specifies the event protocol of events for the event handler (such as Yaml/JSON/XML/POJO) + required: true + event_name: + type: string + description: Specifies the event name for events on this event handler, if not specified, the event name is read from or written to the event being received or sent + required: false + event_name_filter: + type: string + description: Specifies a filter as a regular expression, events that do not match the filter are dropped, the default is to let all events through + required: false + synchronous_mode: + type: boolean + description: Specifies the event handler is syncronous (receive event and send response) + required: false + default: false + synchronous_peer: + type: string + description: The peer event handler (output for input or input for output) of this event handler in synchronous mode, this parameter is mandatory if the event handler is in synchronous mode + required: false + synchronous_timeout: + type: integer + description: The timeout in milliseconds for responses to be issued by APEX torequests, this parameter is mandatory if the event handler is in synchronous mode + required: false + requestor_mode: + type: boolean + description: Specifies the event handler is in requestor mode (send event and wait for response mode) + required: false + default: false + requestor_peer: + type: string + description: The peer event handler (output for input or input for output) of this event handler in requestor mode, this parameter is mandatory if the event handler is in requestor mode + required: false + requestor_timeout: + type: integer + description: The timeout in milliseconds for wait for responses to requests, this parameter is mandatory if the event handler is in requestor mode + required: false + onap.datatypes.native.apex.CarrierTechnology: + derived_from: tosca.datatypes.Root + properties: + label: + type: string + description: The label (name) of the carrier technology (such as REST, Kafka, WebSocket) + required: true + plugin_parameter_class_name: + type: string + description: The class name of the class that overrides default handling of event input or output for this carrier technology, defaults to the supplied input or output class + required: false + onap.datatypes.native.apex.EventProtocol: + derived_from: tosca.datatypes.Root + properties: + label: + type: string + description: The label (name) of the event protocol (such as Yaml, JSON, XML, or POJO) + required: true + event_protocol_plugin_class: + type: string + description: The class name of the class that overrides default handling of the event protocol for this carrier technology, defaults to the supplied event protocol class + required: false + onap.datatypes.native.apex.Environment: + derived_from: tosca.datatypes.Root + properties: + name: + type: string + description: The name of the environment variable + required: true + value: + type: string + description: The value of the environment variable + required: true + onap.datatypes.native.apex.engineservice.Engine: + derived_from: tosca.datatypes.Root + properties: + context: + type: onap.datatypes.native.apex.engineservice.engine.Context + description: The properties for handling context in APEX engines, defaults to using Java maps for context + required: false + executors: + type: map + description: The plugins for policy executors used in engines such as javascript, MVEL, Jython + required: true + entry_schema: + description: The plugin class path for this policy executor + type: string + onap.datatypes.native.apex.engineservice.engine.Context: + derived_from: tosca.datatypes.Root + properties: + distributor: + type: onap.datatypes.native.apex.Plugin + description: The plugin to be used for distributing context between APEX PDPs at runtime + required: false + schemas: + type: map + description: The plugins for context schemas available in APEX PDPs such as Java and Avro + required: false + entry_schema: + type: onap.datatypes.native.apex.Plugin + locking: + type: onap.datatypes.native.apex.Plugin + description: The plugin to be used for locking context in and between APEX PDPs at runtime + required: false + persistence: + type: onap.datatypes.native.apex.Plugin + description: The plugin to be used for persisting context for APEX PDPs at runtime + required: false + onap.datatypes.native.apex.Plugin: + derived_from: tosca.datatypes.Root + properties: + name: + type: string + description: The name of the executor such as Javascript, Jython or MVEL + required: true + plugin_class_name: + type: string + description: The class path of the plugin class for this executor + +policy_types: + onap.policies.Native: + derived_from: tosca.policies.Root + description: a base policy type for all native PDP policies + version: 1.0.0 + name: onap.policies.Native + onap.policies.native.Apex: + derived_from: onap.policies.Native + description: a policy type for native apex policies + version: 1.0.0 + name: onap.policies.native.Apex + properties: + engine_service: + type: onap.datatypes.native.apex.EngineService + description: APEX Engine Service Parameters + inputs: + type: map + description: Inputs for handling events coming into the APEX engine + entry_schema: + type: onap.datatypes.native.apex.EventHandler + outputs: + type: map + description: Outputs for handling events going out of the APEX engine + entry_schema: + type: onap.datatypes.native.apex.EventHandler + environment: + type: list + description: Envioronmental parameters for the APEX engine + entry_schema: + type: onap.datatypes.native.apex.Environment + + +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 + metadata: + common: true + description: Specifies the organization that provides the automation composition element + 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 + uninitializedToPassiveTimeout: + type: integer + required: false + constraints: + - greater_or_equal: 0 + default: 60 + metadata: + common: true + description: The maximum time in seconds to wait for a state chage from uninitialized to passive + passiveToRunningTimeout: + type: integer + required: false + constraints: + - greater_or_equal: 0 + default: 60 + metadata: + common: true + description: The maximum time in seconds to wait for a state chage from passive to running + runningToPassiveTimeout: + type: integer + required: false + constraints: + - greater_or_equal: 0 + default: 60 + metadata: + common: true + description: The maximum time in seconds to wait for a state chage from running to passive + passiveToUninitializedTimeout: + type: integer + required: false + constraints: + - greater_or_equal: 0 + default: 60 + metadata: + common: true + description: The maximum time in seconds to wait for a state chage from passive to uninitialized + org.onap.policy.clamp.acm.AutomationComposition: + version: 1.0.1 + derived_from: tosca.nodetypes.Root + properties: + provider: + type: string + required: false + metadata: + common: true + description: Specifies the organization that provides the automation composition element + elements: + type: list + required: true + metadata: + common: true + entry_schema: + type: onap.datatypes.ToscaConceptIdentifier + description: Specifies a list of automation composition element definitions that make up this automation composition definition + org.onap.policy.clamp.acm.PolicyAutomationCompositionElement: + version: 1.0.0 + derived_from: org.onap.policy.clamp.acm.AutomationCompositionElement + properties: + policy_type_id: + type: onap.datatypes.ToscaConceptIdentifier + required: true + policy_id: + type: onap.datatypes.ToscaConceptIdentifier + required: false + + +topology_template: + inputs: + acm_element_policy: + type: onap.datatypes.ToscaConceptIdentifier + description: The ID of the operational policy to use + default: + name: onap.policies.native.apex.ac.element + version: 1.0.0 + node_templates: + org.onap.policy.clamp.acm.PolicyParticipant: + version: 2.3.1 + type: org.onap.policy.clamp.acm.Participant + type_version: 1.0.1 + description: Participant for Policy microservices + properties: + provider: ONAP + onap.policy.clamp.ac.element.Policy_AutomationCompositionElement: + version: 1.2.3 + type: org.onap.policy.clamp.acm.PolicyAutomationCompositionElement + type_version: 1.0.0 + description: Automation composition element for the operational policy for Performance Management Subscription Handling + properties: + provider: Ericsson + policy_type_id: + name: onap.policies.operational.pm-subscription-handler + version: 1.0.0 + startPhase: 0 + policy_id: + get_input: acm_element_policy + + onap.policy.clamp.ac.element.AutomationCompositionDefinition: + version: 1.2.3 + type: org.onap.policy.clamp.acm.AutomationComposition + type_version: 1.0.1 + description: Automation composition for Demp + properties: + provider: ONAP + elements: + - name: onap.policy.clamp.ac.element.Policy_AutomationCompositionElement + version: 1.2.3 + + policies: + - onap.policies.native.apex.ac.element: + type: onap.policies.native.Apex + type_version: 1.0.0 + properties: + engineServiceParameters: + name: MyApexEngine + version: 0.0.1 + id: 45 + instanceCount: 2 + deploymentPort: 12561 + engineParameters: + executorParameters: + JAVASCRIPT: + parameterClassName: org.onap.policy.apex.plugins.executor.javascript.JavascriptExecutorParameters + contextParameters: + parameterClassName: org.onap.policy.apex.context.parameters.ContextParameters + schemaParameters: + Json: + parameterClassName: org.onap.policy.apex.plugins.context.schema.json.JsonSchemaHelperParameters + policy_type_impl: + policies: + key: + name: APEXacElementPolicy_Policies + version: 0.0.1 + policyMap: + entry: + - key: + name: ReceiveEventPolicy + version: 0.0.1 + value: + policyKey: + name: ReceiveEventPolicy + version: 0.0.1 + template: Freestyle + state: + entry: + - key: DecideForwardingState + value: + stateKey: + parentKeyName: ReceiveEventPolicy + parentKeyVersion: 0.0.1 + parentLocalName: 'NULL' + localName: DecideForwardingState + trigger: + name: AcElementEvent + version: 0.0.1 + stateOutputs: + entry: + - key: CreateForwardPayload + value: + key: + parentKeyName: ReceiveEventPolicy + parentKeyVersion: 0.0.1 + parentLocalName: DecideForwardingState + localName: CreateForwardPayload + outgoingEvent: + name: DmaapResponseStatusEvent + version: 0.0.1 + outgoingEventReference: + - name: DmaapResponseStatusEvent + version: 0.0.1 + nextState: + parentKeyName: 'NULL' + parentKeyVersion: 0.0.0 + parentLocalName: 'NULL' + localName: 'NULL' + contextAlbumReference: [] + taskSelectionLogic: + key: + parentKeyName: 'NULL' + parentKeyVersion: 0.0.0 + parentLocalName: 'NULL' + localName: 'NULL' + logicFlavour: UNDEFINED + logic: '' + stateFinalizerLogicMap: + entry: [] + defaultTask: + name: ForwardPayloadTask + version: 0.0.1 + taskReferences: + entry: + - key: + name: ForwardPayloadTask + version: 0.0.1 + value: + key: + parentKeyName: ReceiveEventPolicy + parentKeyVersion: 0.0.1 + parentLocalName: DecideForwardingState + localName: ReceiveEventPolicy + outputType: DIRECT + output: + parentKeyName: ReceiveEventPolicy + parentKeyVersion: 0.0.1 + parentLocalName: DecideForwardingState + localName: CreateForwardPayload + firstState: DecideForwardingState + tasks: + key: + name: APEXacElementPolicy_Tasks + version: 0.0.1 + taskMap: + entry: + - key: + name: ForwardPayloadTask + version: 0.0.1 + value: + key: + name: ForwardPayloadTask + version: 0.0.1 + inputEvent: + key: + name: AcElementEvent + version: 0.0.1 + nameSpace: org.onap.policy.apex.ac.element + source: Dmaap + target: APEX + parameter: + entry: + - key: DmaapResponseEvent + value: + key: + parentKeyName: AcElementEvent + parentKeyVersion: 0.0.1 + parentLocalName: 'NULL' + localName: DmaapResponseEvent + fieldSchemaKey: + name: ACEventType + version: 0.0.1 + optional: false + toscaPolicyState: ENTRY + outputEvents: + entry: + - key: DmaapResponseStatusEvent + value: + key: + name: DmaapResponseStatusEvent + version: 0.0.1 + nameSpace: org.onap.policy.apex.ac.element + source: APEX + target: Dmaap + parameter: + entry: + - key: DmaapResponseStatusEvent + value: + key: + parentKeyName: DmaapResponseStatusEvent + parentKeyVersion: 0.0.1 + parentLocalName: 'NULL' + localName: DmaapResponseStatusEvent + fieldSchemaKey: + name: ACEventType + version: 0.0.1 + optional: false + toscaPolicyState: '' + taskParameters: + entry: [] + contextAlbumReference: + - name: ACElementAlbum + version: 0.0.1 + taskLogic: + key: + parentKeyName: ForwardPayloadTask + parentKeyVersion: 0.0.1 + parentLocalName: 'NULL' + localName: TaskLogic + logicFlavour: JAVASCRIPT + logic: "/*\n * ============LICENSE_START=======================================================\n\ + \ * Copyright (C) 2022 Nordix. All rights reserved.\n * ================================================================================\n\ + \ * Licensed under the Apache License, Version 2.0 (the 'License');\n\ + \ * you may not use this file except in compliance with the\ + \ License.\n * You may obtain a copy of the License at\n *\n\ + \ * http://www.apache.org/licenses/LICENSE-2.0\n *\n\ + \ * Unless required by applicable law or agreed to in writing,\ + \ software\n * distributed under the License is distributed\ + \ on an 'AS IS' BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS\ + \ OF ANY KIND, either express or implied.\n * See the License\ + \ for the specific language governing permissions and\n *\ + \ limitations under the License.\n *\n * SPDX-License-Identifier:\ + \ Apache-2.0\n * ============LICENSE_END=========================================================\n\ + \ */\n\nexecutor.logger.info(executor.subject.id);\nexecutor.logger.info(executor.inFields);\n\ + \nvar msgResponse = executor.inFields.get('DmaapResponseEvent');\n\ + executor.logger.info('Task in progress with mesages: ' + msgResponse);\n\ + \nvar elementId = msgResponse.get('elementId').get('name');\n\ + \nif (msgResponse.get('messageType') == 'STATUS' &&\n (elementId\ + \ == 'onap.policy.clamp.ac.startertobridge'\n || elementId\ + \ == 'onap.policy.clamp.ac.bridgetosink')) {\n\n var receiverId\ + \ = '';\n if (elementId == 'onap.policy.clamp.ac.startertobridge')\ + \ {\n receiverId = 'onap.policy.clamp.ac.bridge';\n\ + \ } else {\n receiverId = 'onap.policy.clamp.ac.sink';\n\ + \ }\n\n var elementIdResponse = new java.util.HashMap();\n\ + \ elementIdResponse.put('name', receiverId);\n elementIdResponse.put('version',\ + \ msgResponse.get('elementId').get('version'));\n\n var\ + \ dmaapResponse = new java.util.HashMap();\n dmaapResponse.put('elementId',\ + \ elementIdResponse);\n\n var message = msgResponse.get('message')\ + \ + ' trace added from policy';\n dmaapResponse.put('message',\ + \ message);\n dmaapResponse.put('messageType', 'STATUS');\n\ + \ dmaapResponse.put('messageId', msgResponse.get('messageId'));\n\ + \ dmaapResponse.put('timestamp', msgResponse.get('timestamp'));\n\ + \n executor.logger.info('Sending forwarding Event to Ac\ + \ element: ' + dmaapResponse);\n\n executor.outFields.put('DmaapResponseStatusEvent',\ + \ dmaapResponse);\n}\n\ntrue;" + events: + key: + name: APEXacElementPolicy_Events + version: 0.0.1 + eventMap: + entry: + - key: + name: AcElementEvent + version: 0.0.1 + value: + key: + name: AcElementEvent + version: 0.0.1 + nameSpace: org.onap.policy.apex.ac.element + source: Dmaap + target: APEX + parameter: + entry: + - key: DmaapResponseEvent + value: + key: + parentKeyName: AcElementEvent + parentKeyVersion: 0.0.1 + parentLocalName: 'NULL' + localName: DmaapResponseEvent + fieldSchemaKey: + name: ACEventType + version: 0.0.1 + optional: false + toscaPolicyState: ENTRY + - key: + name: DmaapResponseStatusEvent + version: 0.0.1 + value: + key: + name: DmaapResponseStatusEvent + version: 0.0.1 + nameSpace: org.onap.policy.apex.ac.element + source: APEX + target: Dmaap + parameter: + entry: + - key: DmaapResponseStatusEvent + value: + key: + parentKeyName: DmaapResponseStatusEvent + parentKeyVersion: 0.0.1 + parentLocalName: 'NULL' + localName: DmaapResponseStatusEvent + fieldSchemaKey: + name: ACEventType + version: 0.0.1 + optional: false + toscaPolicyState: '' + - key: + name: LogEvent + version: 0.0.1 + value: + key: + name: LogEvent + version: 0.0.1 + nameSpace: org.onap.policy.apex.ac.element + source: APEX + target: file + parameter: + entry: + - key: final_status + value: + key: + parentKeyName: LogEvent + parentKeyVersion: 0.0.1 + parentLocalName: 'NULL' + localName: final_status + fieldSchemaKey: + name: SimpleStringType + version: 0.0.1 + optional: false + - key: message + value: + key: + parentKeyName: LogEvent + parentKeyVersion: 0.0.1 + parentLocalName: 'NULL' + localName: message + fieldSchemaKey: + name: SimpleStringType + version: 0.0.1 + optional: false + toscaPolicyState: '' + albums: + key: + name: APEXacElementPolicy_Albums + version: 0.0.1 + albums: + entry: + - key: + name: ACElementAlbum + version: 0.0.1 + value: + key: + name: ACElementAlbum + version: 0.0.1 + scope: policy + isWritable: true + itemSchema: + name: ACEventType + version: 0.0.1 + schemas: + key: + name: APEXacElementPolicy_Schemas + version: 0.0.1 + schemas: + entry: + - key: + name: ACEventType + version: 0.0.1 + value: + key: + name: ACEventType + version: 0.0.1 + schemaFlavour: Json + schemaDefinition: "{\n \"$schema\": \"http://json-schema.org/draft-04/schema#\"\ + ,\n \"type\": \"object\",\n \"properties\": {\n \ + \ \"elementId\": {\n \"type\": \"object\",\n \ + \ \"properties\": {\n \"name\": {\n \ + \ \"type\": \"string\"\n },\n\ + \ \"version\": {\n \"type\"\ + : \"string\"\n }\n },\n \ + \ \"required\": [\n \"name\",\n \ + \ \"version\"\n ]\n },\n \"message\"\ + : {\n \"type\": \"string\"\n },\n \"\ + messageType\": {\n \"type\": \"string\"\n \ + \ }\n },\n \"required\": [\n \"elementId\",\n \ + \ \"message\",\n \"messageType\"\n ]\n}" + - key: + name: SimpleIntType + version: 0.0.1 + value: + key: + name: SimpleIntType + version: 0.0.1 + schemaFlavour: Java + schemaDefinition: java.lang.Integer + - key: + name: SimpleStringType + version: 0.0.1 + value: + key: + name: SimpleStringType + version: 0.0.1 + schemaFlavour: Java + schemaDefinition: java.lang.String + - key: + name: UUIDType + version: 0.0.1 + value: + key: + name: UUIDType + version: 0.0.1 + schemaFlavour: Java + schemaDefinition: java.util.UUID + key: + name: APEXacElementPolicy + version: 0.0.1 + keyInformation: + key: + name: APEXacElementPolicy_KeyInfo + version: 0.0.1 + keyInfoMap: + entry: + - key: + name: ACElementAlbum + version: 0.0.1 + value: + key: + name: ACElementAlbum + version: 0.0.1 + UUID: 7cddfab8-6d3f-3f7f-8ac3-e2eb5979c900 + description: Generated description for concept referred to by + key "ACElementAlbum:0.0.1" + - key: + name: ACEventType + version: 0.0.1 + value: + key: + name: ACEventType + version: 0.0.1 + UUID: dab78794-b666-3929-a75b-70d634b04fe5 + description: Generated description for concept referred to by + key "ACEventType:0.0.1" + - key: + name: APEXacElementPolicy + version: 0.0.1 + value: + key: + name: APEXacElementPolicy + version: 0.0.1 + UUID: da478611-7d77-3c46-b4be-be968769ba4e + description: Generated description for concept referred to by + key "APEXacElementPolicy:0.0.1" + - key: + name: APEXacElementPolicy_Albums + version: 0.0.1 + value: + key: + name: APEXacElementPolicy_Albums + version: 0.0.1 + UUID: fa8dc15e-8c8d-3de3-a0f8-585b76511175 + description: Generated description for concept referred to by + key "APEXacElementPolicy_Albums:0.0.1" + - key: + name: APEXacElementPolicy_Events + version: 0.0.1 + value: + key: + name: APEXacElementPolicy_Events + version: 0.0.1 + UUID: 8508cd65-8dd2-342d-a5c6-1570810dbe2b + description: Generated description for concept referred to by + key "APEXacElementPolicy_Events:0.0.1" + - key: + name: APEXacElementPolicy_KeyInfo + version: 0.0.1 + value: + key: + name: APEXacElementPolicy_KeyInfo + version: 0.0.1 + UUID: 09e6927d-c5ac-3779-919f-9333994eed22 + description: Generated description for concept referred to by + key "APEXacElementPolicy_KeyInfo:0.0.1" + - key: + name: APEXacElementPolicy_Policies + version: 0.0.1 + value: + key: + name: APEXacElementPolicy_Policies + version: 0.0.1 + UUID: cade3c9a-1600-3642-a6f4-315612187f46 + description: Generated description for concept referred to by + key "APEXacElementPolicy_Policies:0.0.1" + - key: + name: APEXacElementPolicy_Schemas + version: 0.0.1 + value: + key: + name: APEXacElementPolicy_Schemas + version: 0.0.1 + UUID: 5bb4a8e9-35fa-37db-9a49-48ef036a7ba9 + description: Generated description for concept referred to by + key "APEXacElementPolicy_Schemas:0.0.1" + - key: + name: APEXacElementPolicy_Tasks + version: 0.0.1 + value: + key: + name: APEXacElementPolicy_Tasks + version: 0.0.1 + UUID: 2527eeec-0d1f-3094-ad3f-212622b12836 + description: Generated description for concept referred to by + key "APEXacElementPolicy_Tasks:0.0.1" + - key: + name: AcElementEvent + version: 0.0.1 + value: + key: + name: AcElementEvent + version: 0.0.1 + UUID: 32c013e2-2740-3986-a626-cbdf665b63e9 + description: Generated description for concept referred to by + key "AcElementEvent:0.0.1" + - key: + name: DmaapResponseStatusEvent + version: 0.0.1 + value: + key: + name: DmaapResponseStatusEvent + version: 0.0.1 + UUID: 2715cb6c-2778-3461-8b69-871e79f95935 + description: Generated description for concept referred to by + key "DmaapResponseStatusEvent:0.0.1" + - key: + name: ForwardPayloadTask + version: 0.0.1 + value: + key: + name: ForwardPayloadTask + version: 0.0.1 + UUID: 51defa03-1ecf-3314-bf34-2a652bce57fa + description: Generated description for concept referred to by + key "ForwardPayloadTask:0.0.1" + - key: + name: LogEvent + version: 0.0.1 + value: + key: + name: LogEvent + version: 0.0.1 + UUID: c540f048-96af-35e3-a36e-e9c29377cba7 + description: Generated description for concept referred to by + key "LogEvent:0.0.1" + - key: + name: ReceiveEventPolicy + version: 0.0.1 + value: + key: + name: ReceiveEventPolicy + version: 0.0.1 + UUID: 568b7345-9de1-36d3-b6a3-9b857e6809a1 + description: Generated description for concept referred to by + key "ReceiveEventPolicy:0.0.1" + - key: + name: SimpleIntType + version: 0.0.1 + value: + key: + name: SimpleIntType + version: 0.0.1 + UUID: 153791fd-ae0a-36a7-88a5-309a7936415d + description: Generated description for concept referred to by + key "SimpleIntType:0.0.1" + - key: + name: SimpleStringType + version: 0.0.1 + value: + key: + name: SimpleStringType + version: 0.0.1 + UUID: 8a4957cf-9493-3a76-8c22-a208e23259af + description: Generated description for concept referred to by + key "SimpleStringType:0.0.1" + - key: + name: UUIDType + version: 0.0.1 + value: + key: + name: UUIDType + version: 0.0.1 + UUID: 6a8cc68e-dfc8-3403-9c6d-071c886b319c + description: Generated description for concept referred to by + key "UUIDType:0.0.1" + eventInputParameters: + DmaapConsumer: + carrierTechnologyParameters: + carrierTechnology: RESTCLIENT + parameterClassName: org.onap.policy.apex.plugins.event.carrier.restclient.RestClientCarrierTechnologyParameters + parameters: + url: http://message-router:3904/events/AC_ELEMENT_MSG/APEX/1?timeout=30000 + eventProtocolParameters: + eventProtocol: JSON + parameters: + pojoField: DmaapResponseEvent + eventName: AcElementEvent + eventNameFilter: AcElementEvent + eventOutputParameters: + logOutputter: + carrierTechnologyParameters: + carrierTechnology: FILE + parameters: + fileName: outputevents.log + eventProtocolParameters: + eventProtocol: JSON + DmaapReplyProducer: + carrierTechnologyParameters: + carrierTechnology: RESTCLIENT + parameterClassName: org.onap.policy.apex.plugins.event.carrier.restclient.RestClientCarrierTechnologyParameters + parameters: + url: http://message-router:3904/events/POLICY_UPDATE_MSG + eventProtocolParameters: + eventProtocol: JSON + parameters: + pojoField: DmaapResponseStatusEvent + eventNameFilter: (LogEvent|DmaapResponseStatusEvent) + name: onap.policies.native.apex.ac.element + version: 1.0.0 diff --git a/docs/development/devtools/tosca/instantiation_pptnt_smoke.json b/docs/development/devtools/tosca/instantiation_pptnt_smoke.json deleted file mode 100644 index 3aa5381f..00000000 --- a/docs/development/devtools/tosca/instantiation_pptnt_smoke.json +++ /dev/null @@ -1,851 +0,0 @@ -{ - "controlLoopList": [ - { - "name": "PMSHInstance0", - "version": "1.0.1", - "definition": { - "name": "org.onap.domain.pmsh.PMSHControlLoopDefinition", - "version": "1.2.3" - }, - "state": "UNINITIALISED", - "orderedState": "UNINITIALISED", - "description": "PMSH control loop instance 0", - "elements": { - "709c62b3-8918-41b9-a747-d21eb79c6c21": { - "id": "709c62b3-8918-41b9-a747-d21eb79c6c21", - "definition": { - "name": "org.onap.domain.pmsh.PMSH_MonitoringPolicyControlLoopElement", - "version": "1.2.3" - }, - "participantType":{ - "name":"org.onap.policy.controlloop.PolicyControlLoopParticipant", - "version":"2.3.1" - }, - "participantId":{ - "name":"org.onap.PM_Policy", - "version":"1.0.0" - }, - "state":"UNINITIALISED", - "orderedState":"UNINITIALISED", - "toscaServiceTemplateFragment":{ - "data_types":{ - "onap.datatype.controlloop.Actor":{ - "constraints":[ - - ], - "properties":{ - "payload":{ - "name":"payload", - "type":"map", - "type_version":"0.0.0", - "description":"Name/value pairs of payload information passed by Policy to the actor", - "required":false, - "entry_schema":{ - "type":"string", - "type_version":"0.0.0" - }, - "metadata":{ - "clamp_possible_values":"ClampExecution:CDS/payload" - } - }, - "target":{ - "name":"target", - "type":"onap.datatype.controlloop.Target", - "type_version":"0.0.0", - "description":"The resource the operation should be performed on.", - "required":true - }, - "actor":{ - "name":"actor", - "type":"string", - "type_version":"0.0.0", - "description":"The actor performing the operation.", - "required":true, - "metadata":{ - "clamp_possible_values":"Dictionary:DefaultActors,ClampExecution:CDS/actor" - } - }, - "operation":{ - "name":"operation", - "type":"string", - "type_version":"0.0.0", - "description":"The operation the actor is performing.", - "required":true, - "metadata":{ - "clamp_possible_values":"Dictionary:DefaultOperations,ClampExecution:CDS/operation" - } - } - }, - "name":"onap.datatype.controlloop.Actor", - "version":"0.0.0", - "derived_from":"tosca.datatypes.Root", - "metadata":{ - - }, - "description":"An actor/operation/target definition" - }, - "onap.datatype.controlloop.Operation":{ - "constraints":[ - - ], - "properties":{ - "failure_retries":{ - "name":"failure_retries", - "type":"string", - "type_version":"0.0.0", - "description":"Points to the operation to invoke when the current operation has exceeded its max retries.", - "default":"final_failure_retries", - "required":false - }, - "id":{ - "name":"id", - "type":"string", - "type_version":"0.0.0", - "description":"Unique identifier for the operation", - "required":true - }, - "failure_timeout":{ - "name":"failure_timeout", - "type":"string", - "type_version":"0.0.0", - "description":"Points to the operation to invoke when the time out for the operation occurs.", - "default":"final_failure_timeout", - "required":false - }, - "failure":{ - "name":"failure", - "type":"string", - "type_version":"0.0.0", - "description":"Points to the operation to invoke on Actor operation failure.", - "default":"final_failure", - "required":false - }, - "operation":{ - "name":"operation", - "type":"onap.datatype.controlloop.Actor", - "type_version":"0.0.0", - "description":"The definition of the operation to be performed.", - "required":true - }, - "failure_guard":{ - "name":"failure_guard", - "type":"string", - "type_version":"0.0.0", - "description":"Points to the operation to invoke when the current operation is blocked due to guard policy enforcement.", - "default":"final_failure_guard", - "required":false - }, - "retries":{ - "name":"retries", - "type":"integer", - "type_version":"0.0.0", - "description":"The number of retries the actor should attempt to perform the operation.", - "default":0.0, - "required":true - }, - "timeout":{ - "name":"timeout", - "type":"integer", - "type_version":"0.0.0", - "description":"The amount of time for the actor to perform the operation.", - "required":true - }, - "failure_exception":{ - "name":"failure_exception", - "type":"string", - "type_version":"0.0.0", - "description":"Points to the operation to invoke when the current operation causes an exception.", - "default":"final_failure_exception", - "required":false - }, - "description":{ - "name":"description", - "type":"string", - "type_version":"0.0.0", - "description":"A user-friendly description of the intent for the operation", - "required":false - }, - "success":{ - "name":"success", - "type":"string", - "type_version":"0.0.0", - "description":"Points to the operation to invoke on success. A value of \"final_success\" indicates and end to the operation.", - "default":"final_success", - "required":false - } - }, - "name":"onap.datatype.controlloop.Operation", - "version":"0.0.0", - "derived_from":"tosca.datatypes.Root", - "metadata":{ - - }, - "description":"An operation supported by an actor" - }, - "onap.datatype.controlloop.Target":{ - "constraints":[ - - ], - "properties":{ - "entityIds":{ - "name":"entityIds", - "type":"map", - "type_version":"0.0.0", - "description":"Map of values that identify the resource. If none are provided, it is assumed that the\nentity that generated the ONSET event will be the target.\n", - "required":false, - "entry_schema":{ - "type":"string", - "type_version":"0.0.0" - }, - "metadata":{ - "clamp_possible_values":"ClampExecution:CSAR_RESOURCES" - } - }, - "targetType":{ - "name":"targetType", - "type":"string", - "type_version":"0.0.0", - "description":"Category for the target type", - "required":true, - "constraints":[ - { - "valid_values":[ - "VNF", - "VM", - "VFMODULE", - "PNF" - ] - } - ] - } - }, - "name":"onap.datatype.controlloop.Target", - "version":"0.0.0", - "derived_from":"tosca.datatypes.Root", - "metadata":{ - - }, - "description":"Definition for a entity in A&AI to perform a control loop operation on" - }, - "onap.datatypes.ToscaConceptIdentifier":{ - "constraints":[ - - ], - "properties":{ - "version":{ - "name":"version", - "type":"string", - "type_version":"0.0.0", - "required":true - }, - "name":{ - "name":"name", - "type":"string", - "type_version":"0.0.0", - "required":true - } - }, - "name":"onap.datatypes.ToscaConceptIdentifier", - "version":"0.0.0", - "derived_from":"tosca.datatypes.Root", - "metadata":{ - - } - }, - "onap.datatypes.monitoring.managedObjectDNsBasic":{ - "constraints":[ - - ], - "properties":{ - "DN":{ - "name":"DN", - "type":"string", - "type_version":"0.0.0", - "description":"Managed object distinguished name", - "required":true, - "constraints":[ - - ], - "metadata":{ - - } - } - }, - "name":"onap.datatypes.monitoring.managedObjectDNsBasic", - "version":"0.0.0", - "derived_from":"tosca.datatypes.Root", - "metadata":{ - - } - }, - "onap.datatypes.monitoring.managedObjectDNsBasics":{ - "constraints":[ - - ], - "properties":{ - "managedObjectDNsBasic":{ - "name":"managedObjectDNsBasic", - "type":"map", - "type_version":"0.0.0", - "description":"Managed object distinguished name object", - "required":true, - "constraints":[ - - ], - "entry_schema":{ - "type":"onap.datatypes.monitoring.managedObjectDNsBasic", - "type_version":"0.0.0", - "constraints":[ - - ] - }, - "metadata":{ - - } - } - }, - "name":"onap.datatypes.monitoring.managedObjectDNsBasics", - "version":"0.0.0", - "derived_from":"tosca.datatypes.Root", - "metadata":{ - - } - }, - "onap.datatypes.monitoring.measurementGroup":{ - "constraints":[ - - ], - "properties":{ - "measurementTypes":{ - "name":"measurementTypes", - "type":"list", - "type_version":"0.0.0", - "description":"List of measurement types", - "required":true, - "constraints":[ - - ], - "entry_schema":{ - "type":"onap.datatypes.monitoring.measurementTypes", - "type_version":"0.0.0", - "constraints":[ - - ] - }, - "metadata":{ - - } - }, - "managedObjectDNsBasic":{ - "name":"managedObjectDNsBasic", - "type":"list", - "type_version":"0.0.0", - "description":"List of managed object distinguished names", - "required":true, - "constraints":[ - - ], - "entry_schema":{ - "type":"onap.datatypes.monitoring.managedObjectDNsBasics", - "type_version":"0.0.0", - "constraints":[ - - ] - }, - "metadata":{ - - } - } - }, - "name":"onap.datatypes.monitoring.measurementGroup", - "version":"0.0.0", - "derived_from":"tosca.datatypes.Root", - "metadata":{ - - } - }, - "onap.datatypes.monitoring.measurementGroups":{ - "constraints":[ - - ], - "properties":{ - "measurementGroup":{ - "name":"measurementGroup", - "type":"map", - "type_version":"0.0.0", - "description":"Measurement Group", - "required":true, - "constraints":[ - - ], - "entry_schema":{ - "type":"onap.datatypes.monitoring.measurementGroup", - "type_version":"0.0.0", - "constraints":[ - - ] - }, - "metadata":{ - - } - } - }, - "name":"onap.datatypes.monitoring.measurementGroups", - "version":"0.0.0", - "derived_from":"tosca.datatypes.Root", - "metadata":{ - - } - }, - "onap.datatypes.monitoring.measurementType":{ - "constraints":[ - - ], - "properties":{ - "measurementType":{ - "name":"measurementType", - "type":"string", - "type_version":"0.0.0", - "description":"Measurement type", - "required":true, - "constraints":[ - - ], - "metadata":{ - - } - } - }, - "name":"onap.datatypes.monitoring.measurementType", - "version":"0.0.0", - "derived_from":"tosca.datatypes.Root", - "metadata":{ - - } - }, - "onap.datatypes.monitoring.measurementTypes":{ - "constraints":[ - - ], - "properties":{ - "measurementType":{ - "name":"measurementType", - "type":"map", - "type_version":"0.0.0", - "description":"Measurement type object", - "required":true, - "constraints":[ - - ], - "entry_schema":{ - "type":"onap.datatypes.monitoring.measurementType", - "type_version":"0.0.0", - "constraints":[ - - ] - }, - "metadata":{ - - } - } - }, - "name":"onap.datatypes.monitoring.measurementTypes", - "version":"0.0.0", - "derived_from":"tosca.datatypes.Root", - "metadata":{ - - } - }, - "onap.datatypes.monitoring.nfFilter":{ - "constraints":[ - - ], - "properties":{ - "modelVersionIDs":{ - "name":"modelVersionIDs", - "type":"list", - "type_version":"0.0.0", - "description":"List of model version IDs", - "required":true, - "constraints":[ - - ], - "entry_schema":{ - "type":"string", - "type_version":"0.0.0", - "constraints":[ - - ] - }, - "metadata":{ - - } - }, - "modelInvariantIDs":{ - "name":"modelInvariantIDs", - "type":"list", - "type_version":"0.0.0", - "description":"List of model invariant IDs", - "required":true, - "constraints":[ - - ], - "entry_schema":{ - "type":"string", - "type_version":"0.0.0", - "constraints":[ - - ] - }, - "metadata":{ - - } - }, - "modelNames":{ - "name":"modelNames", - "type":"list", - "type_version":"0.0.0", - "description":"List of model names", - "required":true, - "constraints":[ - - ], - "entry_schema":{ - "type":"string", - "type_version":"0.0.0", - "constraints":[ - - ] - }, - "metadata":{ - - } - }, - "nfNames":{ - "name":"nfNames", - "type":"list", - "type_version":"0.0.0", - "description":"List of network functions", - "required":true, - "constraints":[ - - ], - "entry_schema":{ - "type":"string", - "type_version":"0.0.0", - "constraints":[ - - ] - }, - "metadata":{ - - } - } - }, - "name":"onap.datatypes.monitoring.nfFilter", - "version":"0.0.0", - "derived_from":"tosca.datatypes.Root", - "metadata":{ - - } - }, - "onap.datatypes.monitoring.subscription":{ - "constraints":[ - - ], - "properties":{ - "measurementGroups":{ - "name":"measurementGroups", - "type":"list", - "type_version":"0.0.0", - "description":"Measurement Groups", - "required":true, - "constraints":[ - - ], - "entry_schema":{ - "type":"onap.datatypes.monitoring.measurementGroups", - "type_version":"0.0.0", - "constraints":[ - - ] - }, - "metadata":{ - - } - }, - "fileBasedGP":{ - "name":"fileBasedGP", - "type":"integer", - "type_version":"0.0.0", - "description":"File based granularity period", - "required":true, - "constraints":[ - - ], - "metadata":{ - - } - }, - "fileLocation":{ - "name":"fileLocation", - "type":"string", - "type_version":"0.0.0", - "description":"ROP file location", - "required":true, - "constraints":[ - - ], - "metadata":{ - - } - }, - "subscriptionName":{ - "name":"subscriptionName", - "type":"string", - "type_version":"0.0.0", - "description":"Name of the subscription", - "required":true, - "constraints":[ - - ], - "metadata":{ - - } - }, - "administrativeState":{ - "name":"administrativeState", - "type":"string", - "type_version":"0.0.0", - "description":"State of the subscription", - "required":true, - "constraints":[ - { - "valid_values":[ - "LOCKED", - "UNLOCKED" - ] - } - ], - "metadata":{ - - } - }, - "nfFilter":{ - "name":"nfFilter", - "type":"map", - "type_version":"0.0.0", - "description":"Network function filter", - "required":true, - "constraints":[ - - ], - "entry_schema":{ - "type":"onap.datatypes.monitoring.nfFilter", - "type_version":"0.0.0", - "constraints":[ - - ] - }, - "metadata":{ - - } - } - }, - "name":"onap.datatypes.monitoring.subscription", - "version":"0.0.0", - "derived_from":"tosca.datatypes.Root", - "metadata":{ - - } - } - }, - "policy_types":{ - "onap.policies.Monitoring":{ - "properties":{ - - }, - "name":"onap.policies.Monitoring", - "version":"1.0.0", - "derived_from":"tosca.policies.Root", - "metadata":{ - - }, - "description":"a base policy type for all policies that govern monitoring provisioning" - }, - "onap.policies.Sirisha":{ - "properties":{ - - }, - "name":"onap.policies.Sirisha", - "version":"1.0.0", - "derived_from":"tosca.policies.Root", - "metadata":{ - - }, - "description":"a base policy type for all policies that govern monitoring provisioning" - }, - "onap.policies.controlloop.operational.Common":{ - "properties":{ - "abatement":{ - "name":"abatement", - "type":"boolean", - "type_version":"0.0.0", - "description":"Whether an abatement event message will be expected for the control loop from DCAE.", - "default":false, - "required":true - }, - "operations":{ - "name":"operations", - "type":"list", - "type_version":"0.0.0", - "description":"List of operations to be performed when Control Loop is triggered.", - "required":true, - "entry_schema":{ - "type":"onap.datatype.controlloop.Operation", - "type_version":"0.0.0" - } - }, - "trigger":{ - "name":"trigger", - "type":"string", - "type_version":"0.0.0", - "description":"Initial operation to execute upon receiving an Onset event message for the Control Loop.", - "required":true - }, - "timeout":{ - "name":"timeout", - "type":"integer", - "type_version":"0.0.0", - "description":"Overall timeout for executing all the operations. This timeout should equal or exceed the total\ntimeout for each operation listed.\n", - "required":true - }, - "id":{ - "name":"id", - "type":"string", - "type_version":"0.0.0", - "description":"The unique control loop id.", - "required":true - } - }, - "name":"onap.policies.controlloop.operational.Common", - "version":"1.0.0", - "derived_from":"tosca.policies.Root", - "metadata":{ - - }, - "description":"Operational Policy for Control Loop execution. Originated in Frankfurt to support TOSCA Compliant\nPolicy Types. This does NOT support the legacy Policy YAML policy type.\n" - }, - "onap.policies.controlloop.operational.common.Apex":{ - "properties":{ - "engineServiceParameters":{ - "name":"engineServiceParameters", - "type":"string", - "type_version":"0.0.0", - "description":"The engine parameters like name, instanceCount, policy implementation, parameters etc.", - "required":true - }, - "eventOutputParameters":{ - "name":"eventOutputParameters", - "type":"string", - "type_version":"0.0.0", - "description":"The event output parameters.", - "required":true - }, - "javaProperties":{ - "name":"javaProperties", - "type":"string", - "type_version":"0.0.0", - "description":"Name/value pairs of properties to be set for APEX if needed.", - "required":false - }, - "eventInputParameters":{ - "name":"eventInputParameters", - "type":"string", - "type_version":"0.0.0", - "description":"The event input parameters.", - "required":true - } - }, - "name":"onap.policies.controlloop.operational.common.Apex", - "version":"1.0.0", - "derived_from":"onap.policies.controlloop.operational.Common", - "metadata":{ - - }, - "description":"Operational policies for Apex PDP" - }, - "onap.policies.monitoring.dcae-pm-subscription-handler":{ - "properties":{ - "pmsh_policy":{ - "name":"pmsh_policy", - "type":"onap.datatypes.monitoring.subscription", - "type_version":"0.0.0", - "description":"PMSH Policy JSON", - "required":false, - "constraints":[ - - ], - "metadata":{ - - } - } - }, - "name":"onap.policies.monitoring.dcae-pm-subscription-handler", - "version":"1.0.0", - "derived_from":"onap.policies.Monitoring", - "metadata":{ - - } - } - }, - "topology_template":{ - - }, - "name":"NULL", - "version":"0.0.0" - }, - "propertiesMap": { - "provider_instance": { - "name": "provider_instance", - "version": "1.2.3", - "type": "org.onap.datatypes.policy.clamp.controlloop.policControlLoopElement.Chart", - "typeVersion": "1.0.0", - "description": "The helm chart for the microservice", - "required": true - } - }, - "description": "Monitoring Policy Control Loop Element for the PMSH instance 0 control loop" - }, - "709c62b3-8918-41b9-a747-d21eb79c6c22": { - "id": "709c62b3-8918-41b9-a747-d21eb79c6c22", - "definition": { - "name": "org.onap.domain.pmsh.PMSH_OperationalPolicyControlLoopElement", - "version": "1.2.3" - }, - "participantType":{ - "name":"org.onap.policy.controlloop.PolicyControlLoopParticipant", - "version":"2.3.1" - }, - "participantId":{ - "name":"org.onap.PM_Policy", - "version":"1.0.0" - }, - "state":"UNINITIALISED", - "orderedState":"UNINITIALISED", - "propertiesMap": { - "provider_instance": { - "name": "provider_instance", - "version": "1.2.3", - "type": "org.onap.datatypes.policy.clamp.controlloop.policControlLoopElement.Chart", - "typeVersion": "1.0.0", - "description": "The helm chart for the microservice", - "required": true - } - }, - "description": "Operational Policy Control Loop Element for the PMSH instance 0 control loop" - } - } - } - ] -}
\ No newline at end of file |