aboutsummaryrefslogtreecommitdiffstats
path: root/docs/development/devtools
diff options
context:
space:
mode:
Diffstat (limited to 'docs/development/devtools')
-rw-r--r--docs/development/devtools/smoke/acm-participants-smoke.rst99
-rw-r--r--docs/development/devtools/smoke/distribution-smoke.rst141
-rw-r--r--docs/development/devtools/smoke/files/api-application.yaml23
-rw-r--r--docs/development/devtools/smoke/files/docker-compose-policy.yaml61
-rw-r--r--docs/development/devtools/smoke/files/pap-application.yaml91
-rw-r--r--docs/development/devtools/smoke/files/participant-http-application.yaml23
-rw-r--r--docs/development/devtools/smoke/files/participant-kubernetes-application.yaml26
-rw-r--r--docs/development/devtools/smoke/files/participant-policy-application.yaml41
-rw-r--r--docs/development/devtools/smoke/json/acm-instantiation.json4
-rw-r--r--docs/development/devtools/smoke/json/instantiation_pptnt_smoke.json1
-rw-r--r--docs/development/devtools/smoke/policy-participant-smoke.rst581
-rw-r--r--docs/development/devtools/smoke/xacml-smoke.rst20
-rw-r--r--docs/development/devtools/testing/s3p/apex-s3p-results/apex_performance_results.pngbin172847 -> 83623 bytes
-rw-r--r--docs/development/devtools/testing/s3p/apex-s3p-results/apex_stability_results.pngbin180140 -> 106062 bytes
-rw-r--r--docs/development/devtools/testing/s3p/apex-s3p.rst26
-rw-r--r--docs/development/devtools/testing/s3p/api-s3p-results/api-s3p-jm-1_J.pngbin140061 -> 207292 bytes
-rw-r--r--docs/development/devtools/testing/s3p/api-s3p-results/api-s3p-jm-2_J.pngbin186214 -> 230292 bytes
-rw-r--r--docs/development/devtools/testing/s3p/api-s3p.rst4
-rw-r--r--docs/development/devtools/testing/s3p/distribution-s3p-results/performance-monitor.pngbin199317 -> 173091 bytes
-rw-r--r--docs/development/devtools/testing/s3p/distribution-s3p-results/performance-statistics.pngbin79928 -> 56736 bytes
-rw-r--r--docs/development/devtools/testing/s3p/distribution-s3p-results/performance-threads.pngbin163004 -> 120014 bytes
-rw-r--r--docs/development/devtools/testing/s3p/distribution-s3p-results/performance-threshold.pngbin71656 -> 184094 bytes
-rw-r--r--docs/development/devtools/testing/s3p/distribution-s3p-results/stability-monitor.pngbin126910 -> 93084 bytes
-rw-r--r--docs/development/devtools/testing/s3p/distribution-s3p-results/stability-statistics.pngbin54210 -> 56211 bytes
-rw-r--r--docs/development/devtools/testing/s3p/distribution-s3p-results/stability-threads.pngbin167982 -> 124682 bytes
-rw-r--r--docs/development/devtools/testing/s3p/distribution-s3p-results/stability-threshold.pngbin72322 -> 202685 bytes
-rw-r--r--docs/development/devtools/testing/s3p/pap-s3p-results/pap_performance_jmeter_results.pngbin238867 -> 83914 bytes
-rw-r--r--docs/development/devtools/testing/s3p/pap-s3p-results/pap_stability_jmeter_results.pngbin285324 -> 272805 bytes
-rw-r--r--docs/development/devtools/testing/s3p/pap-s3p-results/pap_stats_after_72h.pngbin14816 -> 14546 bytes
-rw-r--r--docs/development/devtools/testing/s3p/pap-s3p-results/pap_stats_before_72h.pngbin5398 -> 5186 bytes
-rw-r--r--docs/development/devtools/testing/s3p/pap-s3p-results/pap_stats_during_72h.pngbin5613 -> 5182 bytes
-rw-r--r--docs/development/devtools/testing/s3p/pap-s3p.rst4
32 files changed, 694 insertions, 451 deletions
diff --git a/docs/development/devtools/smoke/acm-participants-smoke.rst b/docs/development/devtools/smoke/acm-participants-smoke.rst
index 0b8061e2..ad377768 100644
--- a/docs/development/devtools/smoke/acm-participants-smoke.rst
+++ b/docs/development/devtools/smoke/acm-participants-smoke.rst
@@ -26,92 +26,71 @@ The procedure documented in this article has been verified using Ubuntu 20.04 LT
2.1 Prerequisites
=================
-- Java 11
+- Java 17
- Docker
-- Maven 3
+- Maven 3.9
- Git
- helm3
- k8s cluster
- 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.
+2.2 Cloning CLAMP automation composition
+========================================
-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.
+Run a script such as the script below to clone the required modules from the `ONAP git repository <https://gerrit.onap.org/r/admin/repos/q/filter:policy>`_. This script clones CLAMP automation composition and all dependency.
-- policy/parent
-- policy/common
-- policy/models
-- policy/clamp
+.. code-block:: bash
-In this setup guide, we will be setting up all the components technically required for a working dev environment.
+ cd ~/git
+ git clone https://gerrit.onap.org/r/policy/clamp clamp
-2.3 Setting up the components
-=============================
-2.3.1 MariaDB Setup
-^^^^^^^^^^^^^^^^^^^
-We will be using Docker to run our mariadb instance. It will have the acm-runtime database running in it.
+Execution of the command above results in the following directory hierarchy in your *~/git* directory:
-- AutomationComposition: the runtime-acm db
+ * ~/git/clamp
-The easiest way to do this is to perform a SQL script. Create the *mariadb.sql* file in the directory *~/git*.
-.. code-block:: mysql
+2.3 Setting up the components
+=============================
- CREATE DATABASE `clampacm`;
- USE `clampacm`;
- CREATE USER 'policy';
- GRANT ALL on clampacm.* to 'policy' identified by 'P01icY' with GRANT OPTION;
+2.3.1 Running MariaDb and Kafka
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+We will be using Docker to run our mariadb instance and Kafka. It will have the acm-runtime database running in it.
+The easiest way to do this is to perform a SQL script. Create the *mariadb.sql* file in the directory *~/git*.
-Execution of the command above results in the creation and start of the *mariadb-smoke-test* container.
+.. literalinclude:: files/mariadb.sql
+ :language: SQL
- .. code-block:: bash
+Create the '*docker-compose.yaml*' using following code:
- cd ~/git
- docker run --name mariadb-smoke-test \
- -p 3306:3306 \
- -e MYSQL_ROOT_PASSWORD=my-secret-pw \
- --mount type=bind,source=$HOME/git/mariadb.sql,target=/docker-entrypoint-initdb.d/data.sql \
- -d mariadb:10.10.2 \
- --lower-case-table-names=1
+.. literalinclude:: files/docker-compose-local.yaml
+ :language: yaml
-The database will be exposed locally on port 3306 and will be backed by an anonymous docker volume.
+Run the docker composition:
-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:
+ .. code-block:: bash
-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:
+ cd ~/git/
+ docker compose up
-.. code-block:: json
+2.3.2 Setting topicParameterGroup for kafka localhost
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+It needs to set 'kafka' as topicCommInfrastructure and 'localhost:29092' as server.
+In the clamp repo, you should find the file 'runtime-acm/src/main/resources/application.yaml'. This file (in the 'runtime' parameters section) may need to be altered as below:
- {
- "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:
+.. literalinclude:: files/runtime-application.yaml
+ :language: yaml
-.. code-block:: bash
+Same changes (in the 'participant' parameters section)
+may need to be apply into the file 'participant/participant-impl/participant-impl-http/src/main/resources/config/application.yaml'.
- mvn exec:java -Dexec.mainClass=org.onap.policy.models.simulators.Main -Dexec.args="src/test/resources/YOUR_CONF_FILE.json"
+.. literalinclude:: files/participant-http-application.yaml
+ :language: yaml
-At this stage the dmaap simulator should be running on your local machine on port 3904.
+And into the file 'participant/participant-impl/participant-impl-kubernetes/src/main/resources/config/application.yaml'.
+.. literalinclude:: files/participant-kubernetes-application.yaml
+ :language: yaml
2.3.3 Automation composition Runtime
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -245,7 +224,7 @@ Verify automation composition state:
GET: https://<Runtime ACM IP> : <Port>/onap/policy/clamp/acm/v2/compositions/{compositionId}/instances/{instanceId}
-3.4 Automation Compositions can be "UNDEPLOYED" after deployment
+3.5 Automation Compositions can be "UNDEPLOYED" after deployment
================================================================
By changing the state to "UNDEPLOYED", all the helm deployments under the corresponding automation composition will be uninstalled from the cluster.
diff --git a/docs/development/devtools/smoke/distribution-smoke.rst b/docs/development/devtools/smoke/distribution-smoke.rst
index c0e3cb1d..ad57ee15 100644
--- a/docs/development/devtools/smoke/distribution-smoke.rst
+++ b/docs/development/devtools/smoke/distribution-smoke.rst
@@ -7,131 +7,72 @@
Policy Distribution Smoke Test
################################
-The policy-distribution smoke testing is executed against a custom ONAP docker installation as defined in the docker compose file in "policy/docker/csit/".
+The policy-distribution smoke testing is executed against a custom ONAP docker or Kubernetes installation as defined in the docker compose file in "policy/docker/csit/".
The policy-distribution configuration file is located in "docker/csit/config/distribution/".
-This test verifies the execution of the REST api's exposed by the component to make sure the CSAR Decoding and Forwarding works as expected.
+This test verifies the execution of the REST API's exposed by the component to make sure the CSAR Decoding and Forwarding works as expected.
+Also, the deployment of the policy is checked automatically. An event is then sent to the deployed policy, and thus, its correct operation is verified.
-General Setup
-*****************
-In policy/docker/csit/
-
-.. code-block:: bash
-
- ./start-grafana.sh distribution
-
-This script will compose the ONAP components used during the smoke tests are:
-
-- Policy API to perform CRUD of policies.
-- Policy DB to store the policies, and DB Migrator to start the db.
-- DMAAP Simulator for the communication between components.
-- Policy PAP to perform runtime administration (deploy/undeploy/status/statistics/etc).
-- Policy Apex-PDP to deploy & undeploy policies. And send heartbeats to PAP.
-- Policy Drools-PDP to deploy & undeploy policies. And send heartbeats to PAP.
-- Policy Xacml-PDP to deploy & undeploy policies. And send heartbeats to PAP.
-
-- Policy Distribution to test the Decoding and Forwarding functions.
-
-Use this script to easily bring down the containers :
-
-.. code-block:: bash
-
- ./stop-grafana.sh
-
-Testing procedure
-**********************
-
-The test set is focused on the following use cases:
-
-- Wait until Distribution starts and reach the built-in REST endpoints for fetching healthcheck & statistics.
-- Execute some of the REST api's exposed by policy-pap component.
-
-Starting Policy Distribution
-------------------------------------
-
-Check the docker logs to see when Distribution service is up and running.
-
-Get the ips of distribution and pap services:
+There are 2 alternative ways to carry out the tests. In Docker and in Kubernetes
-.. code::
- :number-lines:
+Docker Setup
+************
+In policy/docker/csit/
- ./get-instance-ip.sh policy-distribution
- ./get-instance-ip.sh policy-pap
+More detailed setup for docker CSIT is here
-Health check status & statistical data of running distribution system.
+`Policy CSIT Test Install Docker <https://docs.onap.org/projects/onap-policy-parent/en/latest/development/devtools/testing/csit.html>`_
.. code-block:: bash
- curl -u 'healthcheck:zb!XztG34' --basic http://{POLICY_DISTRIBUTION_IP}:6969/healthcheck
- curl -u 'healthcheck:zb!XztG34' --basic http://{POLICY_DISTRIBUTION_IP}:6969/statistics
-
-Expected result for healthcheck
-
-.. code-block:: json
-
- {"name":"Policy SSD","url":"policy-distribution","healthy":true,"code":200,"message":"alive"}
-
-Expected result for statistics
+ ./run-project-csit.sh distribution
-.. code-block:: json
+This script will do the following:
- {"code":200,"totalDistributionCount":0,"distributionSuccessCount":0,"distributionFailureCount":0,"totalDownloadCount":0,"downloadSuccessCount":0,"downloadFailureCount":0}
+- Deploys all required components - including api, pap and distribution
+- Runs distributions CSIT tests. These tests:
-Trigger Policy Distribution Core
-------------------------------------------
+ - Take a policy from a CSAR file in distribution.
+ - Distribution sends and deploys it in API and PAP.
+ - Send an event to the deployed policy - if the policy is NOT deployed successfully, this will FAIL with a 404.
-In order to test policy-distribution, we need to trigger the decoding copying a .csar in the mapped volume,
-defined in the docker-compose-distribution-smoke.yml as :
+- Takes down all the components.
+- Saves the results in a .html file in the csit/archives/distribution directory
+- Saves the docker compose logs in the same directory
-.. code-block:: yaml
-
- volumes:
- - ./distribution/config/temp/:/opt/app/policy/distribution/etc/temp/
-
-So now copy the "sample_csar_with_apex_policy.csar" from ./distribution/config/csar/ to ./distribution/config/temp/
-
-If the commissioning is successful we should see from the logs this message
+K8S Setup
+*********
+In policy/docker/csit/
-.. image:: images/message-commissioning-participant.png
+More detailed setup for K8S CSIT is here
-So if we check the distribution statistics again
+`Policy CSIT Test Install Kubernetes <https://docs.onap.org/projects/onap-policy-parent/en/latest/development/devtools/testing/csit.html>`_
.. code-block:: bash
- {"code":200,"totalDistributionCount":1,"distributionSuccessCount":1,"distributionFailureCount":0,"totalDownloadCount":1,"downloadSuccessCount":1,"downloadFailureCount":0}
+ ./run-k8s-csit.sh install distribution
-Execute policy-pap testing
-------------------------------------
-.. note::
- The user for pap is different.
+This script will do the following:
-Check the details of policies deployed
+- Installs microk8s and configures it.
+- Deploys all required components - including api, pap and distribution as helm charts
+- Waits for all the charts to come up
+- Runs distributions CSIT tests. These tests:
-.. code-block:: bash
-
- curl -k --user 'policyadmin:zb!XztG34' http://{POLICY_PAP_IP}:6969/policy/pap/v1/policies/status
-
-Expected SUCCESS result
-
-.. code-block:: json
+ - Take a policy from a CSAR file in distribution.
+ - Distribution sends and deploys it in API and PAP.
+ - Sends an event to the deployed policy - if the policy is NOT deployed successfully, this will FAIL with a 404.
- [{"pdpGroup":"defaultGroup","pdpType":"apex","pdpId":"apex-91fa25a1-0456-42fa-9556-6a4d2bd613fc","policy":{"name":"operational.apex.sampledomain","version":"1.0.0"},"policyType":{"name":"onap.policies.native.Apex","version":"1.0.0"},"deploy":true,"state":"SUCCESS"},{"pdpGroup":"defaultGroup","pdpType":"xacml","pdpId":"xacml-83e19452-0854-41dd-9f17-8b0a68f11813","policy":{"name":"SDNC_Policy.ONAP_NF_NAMING_TIMESTAMP","version":"1.0.0"},"policyType":{"name":"onap.policies.Naming","version":"1.0.0"},"deploy":true,"state":"SUCCESS"}]
+- Saves the results in a .html file in the csit/archives/distribution directory
+- The pods are not automatically taken down.
-Check number of policies deployed
+To uninstall policy helm deployment and/or the microk8s cluster, use `run-k8s-csit.sh`
.. code-block:: bash
- curl -k --user 'policyadmin:zb!XztG34' http://{POLICY_PAP_IP}:6969/policy/pap/v1/policies/deployed
-
-Expected success-count result
-
-.. code-block:: json
-
- [{"policy-type":"onap.policies.native.Apex","policy-type-version":"1.0.0","policy-id":"operational.apex.sampledomain","policy-version":"1.0.0","success-count":1,"failure-count":0,"incomplete-count":0},{"policy-type":"onap.policies.Naming","policy-type-version":"1.0.0","policy-id":"SDNC_Policy.ONAP_NF_NAMING_TIMESTAMP","policy-version":"1.0.0","success-count":1,"failure-count":0,"incomplete-count":0}]
-
-Or download & execute the steps in postman collection for verifying policy-pap component.
-The steps need to be performed sequentially one after another. And no input is required from user.
+ # to uninstall deployment
+ ./run-k8s-csit.sh uninstall
-`Policy Framework Administration API <https://github.com/onap/policy-pap/blob/master/postman/pap-api-collection.json>`_
+ # to remove cluster
+ ./run-k8s-csit.sh clean
-Make sure to execute the delete steps in order to clean the setup after testing.
+End of document \ No newline at end of file
diff --git a/docs/development/devtools/smoke/files/api-application.yaml b/docs/development/devtools/smoke/files/api-application.yaml
new file mode 100644
index 00000000..39f1de5d
--- /dev/null
+++ b/docs/development/devtools/smoke/files/api-application.yaml
@@ -0,0 +1,23 @@
+spring:
+ profiles:
+ active: default
+ security.user:
+ name: policyadmin
+ password: zb!XztG34
+ mvc.converters.preferred-json-mapper: gson
+ datasource:
+ url: jdbc:mariadb://localhost:3306/policyadmin
+ driverClassName: org.mariadb.jdbc.Driver
+ username: policy_user
+ password: policy_user
+ jpa:
+ hibernate:
+ ddl-auto: none
+ naming:
+ physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
+ implicit-strategy: org.onap.policy.common.spring.utils.CustomImplicitNamingStrategy
+
+server:
+ port: 6968
+ servlet:
+ context-path: /policy/api/v1
diff --git a/docs/development/devtools/smoke/files/docker-compose-policy.yaml b/docs/development/devtools/smoke/files/docker-compose-policy.yaml
new file mode 100644
index 00000000..cdb50ebb
--- /dev/null
+++ b/docs/development/devtools/smoke/files/docker-compose-policy.yaml
@@ -0,0 +1,61 @@
+services:
+ mariadb:
+ image: mariadb:10.10.2
+ command: ['mysqld', '--lower_case_table_names=1']
+ volumes:
+ - type: bind
+ source: ./mariadb.sql
+ target: /docker-entrypoint-initdb.d/data.sql
+ environment:
+ - MYSQL_ROOT_PASSWORD=my-secret-pw
+ ports:
+ - "3306:3306"
+
+ policy-db-migrator:
+ image: nexus3.onap.org:10001/onap/policy-db-migrator:3.1.3-SNAPSHOT
+ container_name: policy-db-migrator
+ hostname: policy-db-migrator
+ depends_on:
+ - mariadb
+ expose:
+ - 6824
+ environment:
+ SQL_DB: policyadmin
+ SQL_HOST: mariadb
+ MYSQL_ROOT_PASSWORD: my-secret-pw
+ MYSQL_USER: policy_user
+ MYSQL_PASSWORD: policy_user
+ MYSQL_CMD: mysql
+ volumes:
+ - ./init.sh:/opt/app/policy/bin/db_migrator_policy_init.sh:ro
+ - ./wait_for_port.sh:/opt/app/policy/bin/wait_for_port.sh:ro
+ entrypoint: /opt/app/policy/bin/wait_for_port.sh
+ command: [
+ '-c',
+ '/opt/app/policy/bin/db_migrator_policy_init.sh',
+ 'mariadb', '3306'
+ ]
+
+ zookeeper:
+ image: confluentinc/cp-zookeeper:latest
+ environment:
+ ZOOKEEPER_CLIENT_PORT: 2181
+ ZOOKEEPER_TICK_TIME: 2000
+ ports:
+ - 2181:2181
+
+ kafka:
+ image: confluentinc/cp-kafka:latest
+ container_name: kafka
+ depends_on:
+ - zookeeper
+ ports:
+ - 29092:29092
+ - 9092:9092
+ environment:
+ KAFKA_BROKER_ID: 1
+ KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
+ KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092,PLAINTEXT_HOST://localhost:29092
+ KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT
+ KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT
+ KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
diff --git a/docs/development/devtools/smoke/files/pap-application.yaml b/docs/development/devtools/smoke/files/pap-application.yaml
new file mode 100644
index 00000000..8a03b1dd
--- /dev/null
+++ b/docs/development/devtools/smoke/files/pap-application.yaml
@@ -0,0 +1,91 @@
+spring:
+ security:
+ user:
+ name: policyadmin
+ password: zb!XztG34
+ datasource:
+ url: jdbc:mariadb://localhost:3306/policyadmin
+ driverClassName: org.mariadb.jdbc.Driver
+ username: policy_user
+ password: policy_user
+ jpa:
+ hibernate:
+ ddl-auto: none
+ naming:
+ physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
+ implicit-strategy: org.onap.policy.common.spring.utils.CustomImplicitNamingStrategy
+ mvc:
+ converters:
+ preferred-json-mapper: gson
+
+server:
+ port: 6970
+ servlet:
+ context-path: /policy/pap/v1
+pap:
+ name: PapGroup
+ 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
+ topicParameterGroup:
+ topicSources:
+ - topic: ${pap.topic.pdp-pap.name}
+ servers:
+ - kafka
+ topicCommInfrastructure: NOOP
+ fetchTimeout: 15000
+ - topic: ${pap.topic.heartbeat.name}
+ effectiveTopic: ${pap.topic.pdp-pap.name}
+ consumerGroup: policy-pap
+ servers:
+ - kafka
+ topicCommInfrastructure: NOOP
+ fetchTimeout: 15000
+ topicSinks:
+ - topic: ${pap.topic.pdp-pap.name}
+ servers:
+ - kafka
+ topicCommInfrastructure: NOOP
+ - topic: ${pap.topic.notification.name}
+ servers:
+ - kafka
+ topicCommInfrastructure: NOOP
+ 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: true
+ basePath: healthcheck
+ - clientName: kafka
+ hostname: kafka
+ port: 3905
+ useHttps: true
+ basePath: topics
+
+management:
+ endpoints:
+ web:
+ base-path: /
+ exposure:
+ include: health, metrics, prometheus
+ path-mapping:
+ -metrics: plain-metrics
+ -prometheus: metrics
diff --git a/docs/development/devtools/smoke/files/participant-http-application.yaml b/docs/development/devtools/smoke/files/participant-http-application.yaml
new file mode 100644
index 00000000..142c24e5
--- /dev/null
+++ b/docs/development/devtools/smoke/files/participant-http-application.yaml
@@ -0,0 +1,23 @@
+
+participant:
+ intermediaryParameters:
+ reportingTimeIntervalMs: 120000
+ description: Participant Description
+ participantId: 101c62b3-8918-41b9-a747-d21eb79c6c01
+ clampAutomationCompositionTopics:
+ topicSources:
+ - topic: policy-acruntime-participant
+ servers:
+ - ${topicServer:localhost:29092}
+ topicCommInfrastructure: kafka
+ fetchTimeout: 15000
+ topicSinks:
+ - topic: policy-acruntime-participant
+ servers:
+ - ${topicServer:localhost:29092}
+ topicCommInfrastructure: kafka
+ participantSupportedElementTypes:
+ -
+ typeName: org.onap.policy.clamp.acm.HttpAutomationCompositionElement
+ typeVersion: 1.0.0
+
diff --git a/docs/development/devtools/smoke/files/participant-kubernetes-application.yaml b/docs/development/devtools/smoke/files/participant-kubernetes-application.yaml
new file mode 100644
index 00000000..9b25c615
--- /dev/null
+++ b/docs/development/devtools/smoke/files/participant-kubernetes-application.yaml
@@ -0,0 +1,26 @@
+
+participant:
+ localChartDirectory: /home/policy/local-charts
+ infoFileName: CHART_INFO.json
+ intermediaryParameters:
+ reportingTimeIntervalMs: 120000
+ description: Participant Description
+ participantId: 101c62b3-8918-41b9-a747-d21eb79c6c02
+ clampAutomationCompositionTopics:
+ topicSources:
+ -
+ topic: policy-acruntime-participant
+ servers:
+ - ${topicServer:localhost:29092}
+ topicCommInfrastructure: kafka
+ fetchTimeout: 15000
+ topicSinks:
+ -
+ topic: policy-acruntime-participant
+ servers:
+ - ${topicServer:localhost:29092}
+ topicCommInfrastructure: kafka
+ participantSupportedElementTypes:
+ -
+ typeName: org.onap.policy.clamp.acm.K8SMicroserviceAutomationCompositionElement
+ typeVersion: 1.0.0
diff --git a/docs/development/devtools/smoke/files/participant-policy-application.yaml b/docs/development/devtools/smoke/files/participant-policy-application.yaml
new file mode 100644
index 00000000..5b87d1b3
--- /dev/null
+++ b/docs/development/devtools/smoke/files/participant-policy-application.yaml
@@ -0,0 +1,41 @@
+participant:
+ pdpGroup: defaultGroup
+ pdpType: apex
+ policyApiParameters:
+ clientName: api
+ hostname: localhost
+ port: 6968
+ userName: policyadmin
+ password: zb!XztG34
+ useHttps: false
+ allowSelfSignedCerts: false
+ policyPapParameters:
+ clientName: pap
+ hostname: localhost
+ port: 6970
+ userName: policyadmin
+ password: zb!XztG34
+ useHttps: false
+ allowSelfSignedCerts: false
+ intermediaryParameters:
+ reportingTimeIntervalMs: 120000
+ description: Participant Description
+ participantId: 101c62b3-8918-41b9-a747-d21eb79c6c03
+ clampAutomationCompositionTopics:
+ topicSources:
+ -
+ topic: policy-acruntime-participant
+ servers:
+ - ${topicServer:localhost:29092}
+ topicCommInfrastructure: kafka
+ fetchTimeout: 15000
+ topicSinks:
+ -
+ topic: policy-acruntime-participant
+ servers:
+ - ${topicServer:localhost:29092}
+ topicCommInfrastructure: kafka
+ participantSupportedElementTypes:
+ -
+ typeName: org.onap.policy.clamp.acm.PolicyAutomationCompositionElement
+ typeVersion: 1.0.0
diff --git a/docs/development/devtools/smoke/json/acm-instantiation.json b/docs/development/devtools/smoke/json/acm-instantiation.json
index 28eef7da..2cf009cd 100644
--- a/docs/development/devtools/smoke/json/acm-instantiation.json
+++ b/docs/development/devtools/smoke/json/acm-instantiation.json
@@ -10,7 +10,6 @@
"name": "org.onap.policy.clamp.Local_K8SMicroserviceAutomationCompositionElement",
"version": "1.2.3"
},
- "participantId": "101c62b3-8918-41b9-a747-d21eb79c6c02",
"description": "K8s Automation composition Element for the nginx-ingress microservice",
"properties": {
"chart": {
@@ -29,7 +28,6 @@
"name": "org.onap.policy.clamp.Http_AutomationCompositionElement",
"version": "1.2.3"
},
- "participantId": "101c62b3-8918-41b9-a747-d21eb79c6c01",
"description": "Http Automation composition Element",
"properties": {
"baseUrl": "http://httpbin.org",
@@ -59,4 +57,4 @@
}
}
}
-} \ No newline at end of file
+}
diff --git a/docs/development/devtools/smoke/json/instantiation_pptnt_smoke.json b/docs/development/devtools/smoke/json/instantiation_pptnt_smoke.json
index aa8ca23d..6346d76b 100644
--- a/docs/development/devtools/smoke/json/instantiation_pptnt_smoke.json
+++ b/docs/development/devtools/smoke/json/instantiation_pptnt_smoke.json
@@ -10,7 +10,6 @@
"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": {
diff --git a/docs/development/devtools/smoke/policy-participant-smoke.rst b/docs/development/devtools/smoke/policy-participant-smoke.rst
index 58e34494..ba677e11 100644
--- a/docs/development/devtools/smoke/policy-participant-smoke.rst
+++ b/docs/development/devtools/smoke/policy-participant-smoke.rst
@@ -11,21 +11,23 @@ CLAMP Policy Participant Smoke Tests
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 |
-+------------------------------+------+
++------------------------------+-------+
+| Application | port |
++==============================+=======+
+| MariDB | 3306 |
++------------------------------+-------+
+| Zookeeper | 2181 |
++------------------------------+-------+
+| Kafka | 29092 |
++------------------------------+-------+
+| policy-api | 6968 |
++------------------------------+-------+
+| policy-pap | 6970 |
++------------------------------+-------+
+| policy-clamp-runtime-acm | 6969 |
++------------------------------+-------+
+| onap/policy-clamp-ac-pf-ppnt | 8085 |
++------------------------------+-------+
2. Setup Guide
@@ -36,301 +38,366 @@ This section will show the developer how to set up their environment to start te
2.1 Prerequisites
=================
-- Java 11
-- Maven 3
+- Java 17
+- Maven 3.9
- 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
-===============
+2.2 Cloning CLAMP automation composition and all dependency
+===========================================================
-- You are accessing the policy repositories through gerrit
-- You are using "git review".
+Run a script such as the script below to clone the required modules from the `ONAP git repository <https://gerrit.onap.org/r/admin/repos/q/filter:policy>`_. This script clones CLAMP automation composition and all dependency.
-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.
+.. code-block:: bash
+ :caption: Typical ONAP Policy Framework Clone Script
+ :linenos:
-- policy/parent
-- policy/common
-- policy/models
-- policy/clamp
-- policy/api
-- policy/pap
+ #!/usr/bin/env bash
-In this setup guide, we will be setting up all the components technically required for a working convenient dev environment.
+ ## script name for output
+ MOD_SCRIPT_NAME='basename $0'
-2.3 Setting up the components
-=============================
+ ## the ONAP clone directory, defaults to "onap"
+ clone_dir="onap"
-2.3.1 MariaDB Setup
-^^^^^^^^^^^^^^^^^^^
+ ## the ONAP repos to clone
+ onap_repos="\
+ policy/api \
+ policy/clamp \
+ policy/pap "
-We will be using Docker to run our mariadb instance. It will have a total of two databases running in it.
+ ##
+ ## Help screen and exit condition (i.e. too few arguments)
+ ##
+ Help()
+ {
+ echo ""
+ echo "$MOD_SCRIPT_NAME - clones all required ONAP git repositories"
+ echo ""
+ echo " Usage: $MOD_SCRIPT_NAME [-options]"
+ echo ""
+ echo " Options"
+ echo " -d - the ONAP clone directory, defaults to '.'"
+ echo " -h - this help screen"
+ echo ""
+ exit 255;
+ }
-- clampacm: the policy-clamp-runtime-acm db
-- policyadmin: the policy-api db
+ ##
+ ## read command line
+ ##
+ while [ $# -gt 0 ]
+ do
+ case $1 in
+ #-d ONAP clone directory
+ -d)
+ shift
+ if [ -z "$1" ]; then
+ echo "$MOD_SCRIPT_NAME: no clone directory"
+ exit 1
+ fi
+ clone_dir=$1
+ shift
+ ;;
-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*.
+ #-h prints help and exists
+ -h)
+ Help;exit 0;;
- .. code-block:: SQL
+ *) echo "$MOD_SCRIPT_NAME: undefined CLI option - $1"; exit 255;;
+ esac
+ done
+
+ if [ -f "$clone_dir" ]; then
+ echo "$MOD_SCRIPT_NAME: requested clone directory '$clone_dir' exists as file"
+ exit 2
+ fi
+ if [ -d "$clone_dir" ]; then
+ echo "$MOD_SCRIPT_NAME: requested clone directory '$clone_dir' exists as directory"
+ exit 2
+ fi
+
+ mkdir $clone_dir
+ if [ $? != 0 ]
+ then
+ echo cannot clone ONAP repositories, could not create directory '"'$clone_dir'"'
+ exit 3
+ fi
+
+ for repo in $onap_repos
+ do
+ repoDir=`dirname "$repo"`
+ repoName=`basename "$repo"`
+
+ if [ ! -z $dirName ]
+ then
+ mkdir "$clone_dir/$repoDir"
+ if [ $? != 0 ]
+ then
+ echo cannot clone ONAP repositories, could not create directory '"'$clone_dir/repoDir'"'
+ exit 4
+ fi
+ fi
+
+ git clone https://gerrit.onap.org/r/${repo} $clone_dir/$repo
+ done
+
+ echo ONAP has been cloned into '"'$clone_dir'"'
+
+
+Execution of the script above results in the following directory hierarchy in your *~/git* directory:
+
+ * ~/git/onap
+ * ~/git/onap/policy
+ * ~/git/onap/policy/api
+ * ~/git/onap/policy/clamp
+ * ~/git/onap/policy/pap
+
+
+2.3 Building CLAMP automation composition and all dependency
+============================================================
+
+**Step 1:** Setting topicParameterGroup for kafka localhost in clamp and policy-participant.
+It needs to set 'kafka' as topicCommInfrastructure and 'localhost:29092' as server.
+In the clamp repo, you should find the file 'runtime-acm/src/main/resources/application.yaml'. This file (in the 'runtime' parameters section) may need to be altered as below:
+
+.. literalinclude:: files/runtime-application.yaml
+ :language: yaml
+
+Setting topicParameterGroup for kafka localhost and api/pap http client (in the 'participant' parameters section) may need to be apply into the file 'participant/participant-impl/participant-impl-policy/src/main/resources/config/application.yaml'.
+
+.. literalinclude:: files/participant-policy-application.yaml
+ :language: yaml
+
+
+**Step 2:** Setting datasource.url, hibernate.ddl-auto and server.port in policy-api.
+In the api repo, you should find the file 'main/src/main/resources/application.yaml'. This file may need to be altered as below:
+
+.. literalinclude:: files/api-application.yaml
+ :language: yaml
- 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;
+**Step 3:** Setting datasource.url, server.port, and api http client in policy-pap.
+In the pap repo, you should find the file 'main/src/main/resources/application.yaml'. This file may need to be altered as below:
-Execution of the command above results in the creation and start of the *mariadb-smoke-test* container.
+.. literalinclude:: files/pap-application.yaml
+ :language: yaml
+
+
+**Step 4:** Optionally, for a completely clean build, remove the ONAP built modules from your local repository.
.. 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
+ rm -fr ~/.m2/repository/org/onap
-This will setup the two databases needed. The database will be exposed locally on port 3306.
-2.3.2 DMAAP Simulator
-^^^^^^^^^^^^^^^^^^^^^
+**Step 5:** A pom such as the one below can be used to build the ONAP Policy Framework modules. Create the *pom.xml* file in the directory *~/git/onap/policy*.
-For convenience, a dmaap simulator has been provided in the policy/models repository. To start the simulator, you can do the following:
+.. code-block:: xml
+ :caption: Typical pom.xml to build the ONAP Policy Framework
+ :linenos:
-#. Navigate to models-sim/policy-models-simulators in the policy/models repository.
-#. Add a configuration file to src/test/resources with the following contents:
+ <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.onap</groupId>
+ <artifactId>onap-policy</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ <packaging>pom</packaging>
+ <name>${project.artifactId}</name>
+ <inceptionYear>2024</inceptionYear>
+ <organization>
+ <name>ONAP</name>
+ </organization>
-.. code-block:: json
+ <modules>
+ <module>api</module>
+ <module>clamp</module>
+ <module>pap</module>
+ </modules>
+ </project>
- {
- "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:
+**Step 6:** You can now build the Policy framework.
-.. code-block:: bash
+Build java artifacts only:
+
+ .. code-block:: bash
+
+ cd ~/git/onap/policy
+ mvn clean install -DskipTests
+
+Build with docker images:
+
+ .. code-block:: bash
+
+ cd ~/git/onap/policy/clamp/packages/
+ mvn clean install -P docker
+
+ cd ~/git/onap/policy/api/packages/
+ mvn clean install -P docker
+
+ cd ~/git/onap/policy/pap/packages/
+ mvn clean install -P docker
+
+2.4 Setting up the components
+=============================
- mvn exec:java -Dexec.mainClass=org.onap.policy.models.simulators.Main -Dexec.args="src/test/resources/YOUR_CONF_FILE.json"
+2.4.1 MariaDB and Kafka Setup
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-At this stage the dmaap simulator should be running on your local machine on port 3904.
+We will be using Docker to run our mariadb instance`and Zookeeper/Kafka. It will have a total of two databases running in mariadb.
-2.3.3 Policy API
+- clampacm: the policy-clamp-runtime-acm db
+- policyadmin: the policy-api db
+
+**Step 1:** Create the *mariadb.sql* file in a directory *~/git*.
+
+ .. 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'@'%';
+ CREATE DATABASE `migration`;
+ GRANT ALL PRIVILEGES ON migration.* to 'policy_user'@'%';
+ FLUSH PRIVILEGES;
+
+
+**Step 2:** Create the *init.sh* file in a directory *~/git* with execution permission.
+
+ .. code-block:: sh
+
+ #!/bin/sh
+
+ export POLICY_HOME=/opt/app/policy
+ export SQL_USER=${MYSQL_USER}
+ export SQL_PASSWORD=${MYSQL_PASSWORD}
+ export SCRIPT_DIRECTORY=sql
+
+ /opt/app/policy/bin/prepare_upgrade.sh ${SQL_DB}
+ /opt/app/policy/bin/db-migrator -s ${SQL_DB} -o report
+ /opt/app/policy/bin/db-migrator -s ${SQL_DB} -o upgrade
+ rc=$?
+ /opt/app/policy/bin/db-migrator -s ${SQL_DB} -o report
+ nc -l -p 6824
+ exit $rc
+
+
+**Step 3:** Create the *wait_for_port.sh* file in a directory *~/git* with execution permission.
+
+ .. code-block:: sh
+
+ #!/bin/sh
+
+ usage() {
+ echo args: [-t timeout] [-c command] hostname1 port1 hostname2 port2 ... >&2
+ exit 1
+ }
+ tmout=300
+ cmd=
+ while getopts c:t: opt
+ do
+ case "$opt" in
+ c)
+ cmd="$OPTARG"
+ ;;
+ t)
+ tmout="$OPTARG"
+ ;;
+ *)
+ usage
+ ;;
+ esac
+ done
+ nargs=$((OPTIND-1))
+ shift "$nargs"
+ even_args=$(($#%2))
+ if [ $# -lt 2 ] || [ "$even_args" -ne 0 ]
+ then
+ usage
+ fi
+ while [ $# -ge 2 ]
+ do
+ export host="$1"
+ export port="$2"
+ shift
+ shift
+ echo "Waiting for $host port $port..."
+
+ while [ "$tmout" -gt 0 ]
+ do
+ if command -v docker > /dev/null 2>&1
+ then
+ docker ps --format "table {{ .Names }}\t{{ .Status }}"
+ fi
+ nc -vz "$host" "$port"
+ rc=$?
+ if [ $rc -eq 0 ]
+ then
+ break
+ else
+ tmout=$((tmout-1))
+ sleep 1
+ fi
+ done
+ if [ $rc -ne 0 ]
+ then
+ echo "$host port $port cannot be reached"
+ exit $rc
+ fi
+ done
+ $cmd
+ exit 0
+
+
+**Step 4:** Create the '*docker-compose.yaml*' using following code:
+
+.. literalinclude:: files/docker-compose-policy.yaml
+ :language: yaml
+
+
+**Step 5:** Run the docker composition:
+
+ .. code-block:: bash
+
+ cd ~/git/
+ docker compose up
+
+
+2.4.2 Policy API
^^^^^^^^^^^^^^^^
-Navigate to the "/main" directory. You can then run the following command to start the policy api:
+In the policy-api repo, 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
+ mvn spring-boot:run
-2.3.4 Policy PAP
+2.4.3 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
+In the policy-pap repo, 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
+2.4.4 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:
+To start the clampacm runtime we need to go the "runtime-acm" directory in the clamp repo. You can then run the following command to start the clampacm runtime:
.. code-block:: bash
mvn spring-boot:run
-2.3.6 ACM Policy Participant
+2.4.5 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:
+To start the policy participant we need to go to the "participant/participant-impl/participant-impl-policy" directory in the clamp repo. You can then run the following command to start the policy-participant:
.. code-block:: bash
diff --git a/docs/development/devtools/smoke/xacml-smoke.rst b/docs/development/devtools/smoke/xacml-smoke.rst
index 2a0be4b6..61f3551f 100644
--- a/docs/development/devtools/smoke/xacml-smoke.rst
+++ b/docs/development/devtools/smoke/xacml-smoke.rst
@@ -10,37 +10,33 @@
XACML PDP Smoke Test
~~~~~~~~~~~~~~~~~~~~
-The policy-xacml-pdp smoke testing can be executed against a kubernetes based ONAP installation,
+The policy-xacml-pdp smoke testing can be executed against a kubernetes based policy framework installation,
and/or a docker-compose set up similar to the one executed by CSIT tests.
General Setup
*************
-ONAP OOM kubernetes
--------------------
+PF kubernetes Install
+---------------------
For installation instructions, please refer to the following documentation:
-`OOM Documentation <https://docs.onap.org/projects/onap-oom/en/latest/>`_
+`Policy Framework K8S Install <https://docs.onap.org/projects/onap-policy-parent/en/latest/development/devtools/testing/csit.html>`_
-At a minimum policy needs the following components installed:
-
-- onap base charts
-- AAF for certificate generation
-- DMaaP message-router for communication among policy components.
+The script referred to in the above link should handle the install of the of microk8s, docker and other required components for the install of the policy framework and clamp components. The scripts are used by policy as a means to run the CSIT tests in Kubernetes.
docker-compose based
--------------------
-A smaller testing environment can be put together by replicating the CSIT test environment:
+A smaller testing environment can be put together by replicating the docker-based CSIT test environment. Details are on the same page as K8s setup:
-`Policy CSIT Test infrastructure <https://git.onap.org/policy/docker/tree/csit>`_
+`Policy CSIT Test Install Docker <https://docs.onap.org/projects/onap-policy-parent/en/latest/development/devtools/testing/csit.html>`_
Testing procedures
******************
The smoke tests should be focused on verifying the proper workings of the xacml
-PDP and dependent components. The following scenarios should be considered:
+PDP and dependent components. The following scenarios should be considered:
- PDP-X registration with PAP.
- PDP-X restarts and re-registration with PAP.
diff --git a/docs/development/devtools/testing/s3p/apex-s3p-results/apex_performance_results.png b/docs/development/devtools/testing/s3p/apex-s3p-results/apex_performance_results.png
index 67aa529f..7ddb0a67 100644
--- a/docs/development/devtools/testing/s3p/apex-s3p-results/apex_performance_results.png
+++ b/docs/development/devtools/testing/s3p/apex-s3p-results/apex_performance_results.png
Binary files differ
diff --git a/docs/development/devtools/testing/s3p/apex-s3p-results/apex_stability_results.png b/docs/development/devtools/testing/s3p/apex-s3p-results/apex_stability_results.png
index c849204f..8dddd470 100644
--- a/docs/development/devtools/testing/s3p/apex-s3p-results/apex_stability_results.png
+++ b/docs/development/devtools/testing/s3p/apex-s3p-results/apex_stability_results.png
Binary files differ
diff --git a/docs/development/devtools/testing/s3p/apex-s3p.rst b/docs/development/devtools/testing/s3p/apex-s3p.rst
index f756e4b5..0bbb0363 100644
--- a/docs/development/devtools/testing/s3p/apex-s3p.rst
+++ b/docs/development/devtools/testing/s3p/apex-s3p.rst
@@ -19,7 +19,7 @@ Deploying ONAP using OOM
------------------------
APEX-PDP along with all policy components are deployed as part of a full Policy Framework deployment.
-At a minimum, the following components are needed: policy, mariadb-galera, prometheus and dmaap.
+At a minimum, the following components are needed: policy, mariadb-galera, prometheus and kafka.
The S3P tests utilise the ./run-s3p-tests script in the apex component. This will setup the microk8s environment, deploy
policy and prometheus, expose the services so they can be reached by JMeter, install JMeter and run the tests based on
@@ -28,11 +28,11 @@ the arguments provided.
Set up policy-models-simulator
------------------------------
-Policy-models-simulator is deployed to use the DMaaP simulator during policy execution.
+Kafka is deployed and is used during policy execution.
Simulator configurations used are available in apex-pdp repository:
testsuites/apex-pdp-stability/src/main/resources/simulatorConfig/
-The published port 30904 is used in JMeter for the DMaaP simulator.
+The published port 29092 is used in JMeter for the Kafka.
JMeter Tests
------------
@@ -48,8 +48,8 @@ Both tests were run via jMeter.
.. Note::
Policy executions are validated in a stricter fashion during the tests.
- There are test cases where up to 80 events are expected on the DMaaP topic.
- DMaaP simulator is used to keep it simple and avoid any message pickup timing related issues.
+ There are test cases where up to 80 events are expected on the Kafka topic.
+ Kafka is used to keep it simple and avoid any message pickup timing related issues.
Stability Test of APEX-PDP
++++++++++++++++++++++++++
@@ -77,20 +77,18 @@ Once the policies are created and deployed to APEX-PDP by the setup thread, five
- **Healthcheck** - checks the health status of APEX-PDP
- **Prometheus Metrics** - checks that APEX-PDP is exposing prometheus metrics
-- **Test Simplecontrolloop policy success case** - Send a trigger event to *unauthenticated.DCAE_CL_OUTPUT* DMaaP topic.
+- **Test Simplecontrolloop policy success case** - Send a trigger event to *unauthenticated.DCAE_CL_OUTPUT* Kafka topic.
If the policy execution is successful, 3 different notification events are sent to *APEX-CL-MGT* topic by each one of the 5 threads.
So, it is checked if 15 notification messages are received in total on *APEX-CL-MGT* topic with the relevant messages.
-- **Test Simplecontrolloop policy failure case** - Send a trigger event with invalid pnfName to *unauthenticated.DCAE_CL_OUTPUT* DMaaP topic.
+- **Test Simplecontrolloop policy failure case** - Send a trigger event with invalid pnfName to *unauthenticated.DCAE_CL_OUTPUT* Kafka topic.
The policy execution is expected to fail due to AAI failure response. 2 notification events are expected on *APEX-CL-MGT* topic by a thread in this case.
It is checked if 10 notification messages are received in total on *APEX-CL-MGT* topic with the relevant messages.
-- **Test Example policy success case** - Send a trigger event to *unauthenticated.DCAE_POLICY_EXAMPLE_OUTPUT* DMaaP topic.
+- **Test Example policy success case** - Send a trigger event to *unauthenticated.DCAE_POLICY_EXAMPLE_OUTPUT* Kafka topic.
If the policy execution is successful, 4 different notification events are sent to *APEX-CL-MGT* topic by each one of the 5 threads.
So, it is checked if 20 notification messages are received in total on *APEX-CL-MGT* topic with the relevant messages.
-- **Test Example policy failure case** - Send a trigger event with invalid vnfName to *unauthenticated.DCAE_POLICY_EXAMPLE_OUTPUT* DMaaP topic.
+- **Test Example policy failure case** - Send a trigger event with invalid vnfName to *unauthenticated.DCAE_POLICY_EXAMPLE_OUTPUT* Kafka topic.
The policy execution is expected to fail due to AAI failure response. 2 notification events are expected on *APEX-CL-MGT* topic by a thread in this case.
So, it is checked if 10 notification messages are received in total on *APEX-CL-MGT* topic with the relevant messages.
-- **Clean up DMaaP notification topic** - DMaaP notification topic which is *APEX-CL-MGT* is cleaned up after each test to make sure that one failure doesn't lead to cascading errors.
-
Teardown Phase
""""""""""""""
@@ -119,7 +117,7 @@ The following steps can be used to configure the parameters of test plan.
API_PORT Port number of API for making REST API calls such as create/delete of policy
APEX_PORT Port number of APEX for making REST API calls such as healthcheck/metrics
SIM_HOST IP Address or hostname running policy-models-simulator
- DMAAP_PORT Port number of DMaaP simulator for making REST API calls such as reading notification events
+ KAFKA_PORT Port number of Kafka bootstrap server for sending message events
wait Wait time if required after a request (in milliseconds)
threads Number of threads to run test cases in parallel
threadsTimeOutInMs Synchronization timer for threads running in parallel (in milliseconds)
@@ -143,7 +141,7 @@ Stability test plan was triggered for 72 hours. There were no failures during th
======================= ================= ================== ==================================
**Total # of requests** **Success %** **Error %** **Average time taken per request**
======================= ================= ================== ==================================
-112245 99.47 % 0.53 % 2.309 sec.
+312366 100 % 0 % 4148ms
======================= ================= ================== ==================================
**JMeter Screenshot**
@@ -191,7 +189,7 @@ Test results are shown as below.
======================= ================= ================== ==================================
**Total # of requests** **Success %** **Error %** **Average time taken per request**
======================= ================= ================== ==================================
-12486 99.32 % 0.68 % 576.64 ms
+344624 100 % 0 % 4178 ms
======================= ================= ================== ==================================
**JMeter Screenshot**
diff --git a/docs/development/devtools/testing/s3p/api-s3p-results/api-s3p-jm-1_J.png b/docs/development/devtools/testing/s3p/api-s3p-results/api-s3p-jm-1_J.png
index 4edc144a..8dfbf55f 100644
--- a/docs/development/devtools/testing/s3p/api-s3p-results/api-s3p-jm-1_J.png
+++ b/docs/development/devtools/testing/s3p/api-s3p-results/api-s3p-jm-1_J.png
Binary files differ
diff --git a/docs/development/devtools/testing/s3p/api-s3p-results/api-s3p-jm-2_J.png b/docs/development/devtools/testing/s3p/api-s3p-results/api-s3p-jm-2_J.png
index 4314809c..68b654c2 100644
--- a/docs/development/devtools/testing/s3p/api-s3p-results/api-s3p-jm-2_J.png
+++ b/docs/development/devtools/testing/s3p/api-s3p-results/api-s3p-jm-2_J.png
Binary files differ
diff --git a/docs/development/devtools/testing/s3p/api-s3p.rst b/docs/development/devtools/testing/s3p/api-s3p.rst
index c34ec06e..c3bbc9e9 100644
--- a/docs/development/devtools/testing/s3p/api-s3p.rst
+++ b/docs/development/devtools/testing/s3p/api-s3p.rst
@@ -126,7 +126,7 @@ The load was performed against a non-tweaked Policy docker deployment.
======================= ============= =========== =============================== =============================== ===============================
**Total # of requests** **Success %** **TPS** **Avg. time taken per request** **Min. time taken per request** **Max. time taken per request**
======================= ============= =========== =============================== =============================== ===============================
- 730178 100% 2.8 1766 ms 127 ms 107029 ms
+ 214617 100% 2.8 6028 ms 206 ms 115153 ms
======================= ============= =========== =============================== =============================== ===============================
.. image:: api-s3p-results/api-s3p-jm-1_J.png
@@ -192,7 +192,7 @@ Running/Triggering performance test will be the same as stability test. That is,
======================= ============= =========== =============================== =============================== ===============================
**Total # of requests** **Success %** **TPS** **Avg. time taken per request** **Min. time taken per request** **Max. time taken per request**
======================= ============= =========== =============================== =============================== ===============================
- 56740 100% 6.3 6340 ms 72 ms 65557 ms
+ 1671 99.7% 6.3 108379 ms 223 ms 1921999 ms
======================= ============= =========== =============================== =============================== ===============================
.. image:: api-s3p-results/api-s3p-jm-2_J.png
diff --git a/docs/development/devtools/testing/s3p/distribution-s3p-results/performance-monitor.png b/docs/development/devtools/testing/s3p/distribution-s3p-results/performance-monitor.png
index 98760e09..d535c4aa 100644
--- a/docs/development/devtools/testing/s3p/distribution-s3p-results/performance-monitor.png
+++ b/docs/development/devtools/testing/s3p/distribution-s3p-results/performance-monitor.png
Binary files differ
diff --git a/docs/development/devtools/testing/s3p/distribution-s3p-results/performance-statistics.png b/docs/development/devtools/testing/s3p/distribution-s3p-results/performance-statistics.png
index 440a177a..a2caab4e 100644
--- a/docs/development/devtools/testing/s3p/distribution-s3p-results/performance-statistics.png
+++ b/docs/development/devtools/testing/s3p/distribution-s3p-results/performance-statistics.png
Binary files differ
diff --git a/docs/development/devtools/testing/s3p/distribution-s3p-results/performance-threads.png b/docs/development/devtools/testing/s3p/distribution-s3p-results/performance-threads.png
index a04d98bc..9b6c3d23 100644
--- a/docs/development/devtools/testing/s3p/distribution-s3p-results/performance-threads.png
+++ b/docs/development/devtools/testing/s3p/distribution-s3p-results/performance-threads.png
Binary files differ
diff --git a/docs/development/devtools/testing/s3p/distribution-s3p-results/performance-threshold.png b/docs/development/devtools/testing/s3p/distribution-s3p-results/performance-threshold.png
index bf20cf32..6a26a09e 100644
--- a/docs/development/devtools/testing/s3p/distribution-s3p-results/performance-threshold.png
+++ b/docs/development/devtools/testing/s3p/distribution-s3p-results/performance-threshold.png
Binary files differ
diff --git a/docs/development/devtools/testing/s3p/distribution-s3p-results/stability-monitor.png b/docs/development/devtools/testing/s3p/distribution-s3p-results/stability-monitor.png
index 23030a42..cbb675ba 100644
--- a/docs/development/devtools/testing/s3p/distribution-s3p-results/stability-monitor.png
+++ b/docs/development/devtools/testing/s3p/distribution-s3p-results/stability-monitor.png
Binary files differ
diff --git a/docs/development/devtools/testing/s3p/distribution-s3p-results/stability-statistics.png b/docs/development/devtools/testing/s3p/distribution-s3p-results/stability-statistics.png
index f184a596..ae1853f9 100644
--- a/docs/development/devtools/testing/s3p/distribution-s3p-results/stability-statistics.png
+++ b/docs/development/devtools/testing/s3p/distribution-s3p-results/stability-statistics.png
Binary files differ
diff --git a/docs/development/devtools/testing/s3p/distribution-s3p-results/stability-threads.png b/docs/development/devtools/testing/s3p/distribution-s3p-results/stability-threads.png
index c7279d9c..67da4a62 100644
--- a/docs/development/devtools/testing/s3p/distribution-s3p-results/stability-threads.png
+++ b/docs/development/devtools/testing/s3p/distribution-s3p-results/stability-threads.png
Binary files differ
diff --git a/docs/development/devtools/testing/s3p/distribution-s3p-results/stability-threshold.png b/docs/development/devtools/testing/s3p/distribution-s3p-results/stability-threshold.png
index 37ad5c41..5aa6cc64 100644
--- a/docs/development/devtools/testing/s3p/distribution-s3p-results/stability-threshold.png
+++ b/docs/development/devtools/testing/s3p/distribution-s3p-results/stability-threshold.png
Binary files differ
diff --git a/docs/development/devtools/testing/s3p/pap-s3p-results/pap_performance_jmeter_results.png b/docs/development/devtools/testing/s3p/pap-s3p-results/pap_performance_jmeter_results.png
index 57746d3b..e061ba47 100644
--- a/docs/development/devtools/testing/s3p/pap-s3p-results/pap_performance_jmeter_results.png
+++ b/docs/development/devtools/testing/s3p/pap-s3p-results/pap_performance_jmeter_results.png
Binary files differ
diff --git a/docs/development/devtools/testing/s3p/pap-s3p-results/pap_stability_jmeter_results.png b/docs/development/devtools/testing/s3p/pap-s3p-results/pap_stability_jmeter_results.png
index 53f95fb2..c1c04f92 100644
--- a/docs/development/devtools/testing/s3p/pap-s3p-results/pap_stability_jmeter_results.png
+++ b/docs/development/devtools/testing/s3p/pap-s3p-results/pap_stability_jmeter_results.png
Binary files differ
diff --git a/docs/development/devtools/testing/s3p/pap-s3p-results/pap_stats_after_72h.png b/docs/development/devtools/testing/s3p/pap-s3p-results/pap_stats_after_72h.png
index b95b23f0..7c56f74a 100644
--- a/docs/development/devtools/testing/s3p/pap-s3p-results/pap_stats_after_72h.png
+++ b/docs/development/devtools/testing/s3p/pap-s3p-results/pap_stats_after_72h.png
Binary files differ
diff --git a/docs/development/devtools/testing/s3p/pap-s3p-results/pap_stats_before_72h.png b/docs/development/devtools/testing/s3p/pap-s3p-results/pap_stats_before_72h.png
index 49b05e96..0984521f 100644
--- a/docs/development/devtools/testing/s3p/pap-s3p-results/pap_stats_before_72h.png
+++ b/docs/development/devtools/testing/s3p/pap-s3p-results/pap_stats_before_72h.png
Binary files differ
diff --git a/docs/development/devtools/testing/s3p/pap-s3p-results/pap_stats_during_72h.png b/docs/development/devtools/testing/s3p/pap-s3p-results/pap_stats_during_72h.png
index e107864f..1d86b175 100644
--- a/docs/development/devtools/testing/s3p/pap-s3p-results/pap_stats_during_72h.png
+++ b/docs/development/devtools/testing/s3p/pap-s3p-results/pap_stats_during_72h.png
Binary files differ
diff --git a/docs/development/devtools/testing/s3p/pap-s3p.rst b/docs/development/devtools/testing/s3p/pap-s3p.rst
index 04a16e61..c658cbc5 100644
--- a/docs/development/devtools/testing/s3p/pap-s3p.rst
+++ b/docs/development/devtools/testing/s3p/pap-s3p.rst
@@ -114,7 +114,7 @@ Stability test plan was triggered for 72 hours. There were no failures during th
======================= ================= ================== ==================================
**Total # of requests** **Success %** **Error %** **Average time taken per request**
======================= ================= ================== ==================================
- 168997 100 % 0.00 % 425 ms
+ 170212 100 % 0.00 % 419 ms
======================= ================= ================== ==================================
@@ -190,7 +190,7 @@ Test results are shown as below.
======================= ================= ================== ==================================
**Total # of requests** **Success %** **Error %** **Average time taken per request**
======================= ================= ================== ==================================
-199400 100 % 0.00 % 397 ms
+48093 100 % 0.00 % 1116 ms
======================= ================= ================== ==================================
**JMeter Screenshot**