From: adheli.tavares Date: Tue, 4 Jun 2024 10:58:20 +0000 (+0100) Subject: junit5 dependencies X-Git-Url: https://gerrit.onap.org/r/gitweb?a=commitdiff_plain;h=HEAD;hp=c78136bd23f96c2c79d66f8494f914a3405f2876;p=policy%2Fparent.git junit5 dependencies Issue-ID: POLICY-5027 Change-Id: I728882df9672df8fd7bb16ec6cb5feb563cb9c23 Signed-off-by: adheli.tavares --- diff --git a/checkstyle/pom.xml b/checkstyle/pom.xml index 313e4272..d2518ee0 100644 --- a/checkstyle/pom.xml +++ b/checkstyle/pom.xml @@ -23,7 +23,7 @@ org.onap.policy.parent policy-parent - 4.1.3-SNAPSHOT + 5.0.0-SNAPSHOT checkstyle checkstyle diff --git a/docs/clamp/clamp.rst b/docs/clamp/clamp.rst index 193b55cc..f2010707 100644 --- a/docs/clamp/clamp.rst +++ b/docs/clamp/clamp.rst @@ -5,8 +5,8 @@ CLAMP Metadata Automation Composition Management using TOSCA ############################################################# -CLAMP supports the definition, deployment, and life cycle management of automation composition elements using Metadata -described in TOSCA. +CLAMP supports the definition, deployment, and life cycle management of +automation composition elements using Metadata described in TOSCA. .. toctree:: :maxdepth: 2 @@ -21,8 +21,9 @@ described in TOSCA. acm/acm-participant-guide .. note:: - Policy/CLAMP was merged into the Policy Framework in the Honolulu release of ONAP. Prior to that release, it was - a separate project. The release notes for CLAMP when it existed as a separate project are located below. + Policy/CLAMP was merged into the Policy Framework in the Honolulu release + of ONAP. Prior to that release, it was a separate project. The release + notes for CLAMP when it existed as a separate project are located below. .. toctree:: :maxdepth: 1 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 `_ -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 `_. 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:// : /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/clamp-ac-participant-protocol-smoke.rst b/docs/development/devtools/smoke/clamp-ac-participant-protocol-smoke.rst index 52275be5..95a27ee7 100644 --- a/docs/development/devtools/smoke/clamp-ac-participant-protocol-smoke.rst +++ b/docs/development/devtools/smoke/clamp-ac-participant-protocol-smoke.rst @@ -23,9 +23,9 @@ Linux user - although the majority of the steps show will be exactly the same in 2.1 Prerequisites ================= -- Java 11 +- Java 17 - Docker -- Maven 3 +- Maven 3.9 - Git - Refer to this guide for basic environment setup `Setting up dev environment `_ @@ -34,7 +34,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-ac-pf-ppnt, policy-clamp-ac-http-ppnt, policy-clamp-ac-k8s-ppnt are started and running. -- Dmaap simulator for communication between components. +- Kafka/Zookeeper for communication between components. - mariadb docker container for policy and clampacm database. - policy-api for communication between policy participant and policy-framework diff --git a/docs/development/devtools/smoke/clamp-smoke.rst b/docs/development/devtools/smoke/clamp-smoke.rst index 19f4a214..2f4a7c9f 100644 --- a/docs/development/devtools/smoke/clamp-smoke.rst +++ b/docs/development/devtools/smoke/clamp-smoke.rst @@ -24,240 +24,81 @@ This article assumes that: The procedure documented in this article has been verified using Ubuntu 20.04 LTS VM. -Cloning CLAMP automation composition and all dependency -******************************************************* +Cloning CLAMP automation composition +************************************ Run a script such as the script below to clone the required modules from the `ONAP git repository `_. This script clones CLAMP automation composition and all dependency. -ONAP Policy Framework has dependencies to the ONAP Parent *oparent* module, the ONAP ECOMP SDK *ecompsdkos* module, and the A&AI Schema module. - - .. code-block:: bash - :caption: Typical ONAP Policy Framework Clone Script - :linenos: - - #!/usr/bin/env bash - - ## script name for output - MOD_SCRIPT_NAME='basename $0' - - ## the ONAP clone directory, defaults to "onap" - clone_dir="onap" - - ## the ONAP repos to clone - onap_repos="\ - policy/parent \ - policy/common \ - policy/models \ - policy/clamp " - - ## - ## 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; - } - - ## - ## 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 - ;; - - #-h prints help and exists - -h) - Help;exit 0;; - - *) 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/parent - * ~/git/onap/policy/common - * ~/git/onap/policy/models - * ~/git/onap/policy/clamp - - -Building CLAMP automation composition and all dependency -******************************************************** - -**Step 1:** Optionally, for a completely clean build, remove the ONAP built modules from your local repository. - - .. code-block:: bash - - rm -fr ~/.m2/repository/org/onap + cd ~/git + git clone https://gerrit.onap.org/r/policy/clamp clamp -**Step 2:** 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*. -.. code-block:: xml - :caption: Typical pom.xml to build the ONAP Policy Framework - :linenos: +Execution of the command above results in the following directory hierarchy in your *~/git* directory: - - 4.0.0 - org.onap - onap-policy - 1.0.0-SNAPSHOT - pom - ${project.artifactId} - 2023 - - ONAP - + * ~/git/clamp - - parent - common - models - clamp - - +Building CLAMP automation composition +************************************* -**Step 3:** You can now build the Policy framework. +**Step 1:** 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: -Build java artifacts only: +.. 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-simulator/src/main/resources/config/application.yaml'. - cd ~/git/onap/policy - mvn clean install +.. literalinclude:: files/participant-sim-application.yaml + :language: yaml -Build with docker images: +**Step 2:** Optionally, for a completely clean build, remove the ONAP built modules from your local repository. .. code-block:: bash - cd ~/git/onap/policy/clamp/packages/ - mvn clean install -P docker - - cd ~/git/onap/policy/models/models-sim/packages - mvn clean install -P docker - -Running MariaDb and DMaaP Simulator -*********************************** - -Running a MariaDb Instance -++++++++++++++++++++++++++ + rm -fr ~/.m2/repository/org/onap -Assuming you have successfully built the codebase using the instructions above. There are two requirements for the Clamp automation composition component to run, one of them is a -running MariaDb database instance. The easiest way to do this is to run the docker image locally. -A sql such as the one below can be used to build the SQL initialization. Create the *mariadb.sql* file in the directory *~/git*. +**Step 3:** You can now build the Policy framework. - .. code-block:: SQL +Build java artifacts only: - create database clampacm; - CREATE USER 'policy'@'%' IDENTIFIED BY 'P01icY'; - GRANT ALL PRIVILEGES ON clampacm.* TO 'policy'@'%'; + .. code-block:: bash + cd ~/git/clamp + mvn clean install -DskipTests -Execution of the command above results in the creation and start of the *mariadb-smoke-test* container. +Build with docker images: .. code-block:: bash - 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 + cd ~/git/clamp/packages/ + mvn clean install -P docker +Running MariaDb and Kafka +************************* -Running the DMaaP Simulator during Development -++++++++++++++++++++++++++++++++++++++++++++++ -The second requirement for the Clamp automation composition component to run is to run the DMaaP simulator. You can run it from the command line using Maven. +Assuming you have successfully built the codebase using the instructions above. There are two requirements for the Clamp automation composition component to run, MariaDb database and Kafka/Zookeeper. The easiest way to do this is to run a docker compose locally. +A sql such as the one below can be used to build the SQL initialization. Create the *mariadb.sql* file in the directory *~/git*. -Create a new configuration file *~/git/onap/policy/models/models-sim/policy-models-simulators/src/test/resources/newParameters.json* using the below code: +.. literalinclude:: files/mariadb.sql + :language: SQL -.. code-block:: json +Create the '*docker-compose.yaml*' using following code: - { - "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 - } - ] - } +.. literalinclude:: files/docker-compose-local.yaml + :language: yaml -Run the following commands: +Run the docker composition: .. code-block:: bash - cd ~/git/onap/policy/models/models-sim/policy-models-simulators - mvn exec:java -Dexec.mainClass=org.onap.policy.models.simulators.Main -Dexec.args="src/test/resources/newParameters.json" + cd ~/git/ + docker compose up Developing and Debugging CLAMP automation composition @@ -270,7 +111,7 @@ Once the mariadb and DMaap simulator are up and running, run the following comma .. code-block:: bash - cd ~/git/onap/policy/clamp/runtime-acm + cd ~/git/clamp/runtime-acm mvn spring-boot:run @@ -279,84 +120,103 @@ Running on the Command Line .. code-block:: bash - cd ~/git/onap/policy/clamp/runtime-acm - java -jar target/policy-clamp-runtime-acm-6.4.2-SNAPSHOT.jar - - -Running in Eclipse -++++++++++++++++++ - -1. Check out the policy models repository -2. Go to the *policy-clamp-runtime-acm* module in the clamp repo -3. Where necessary Add as Source Folder 'target/generated-sources/swagger' -4. Specify a run configuration using the class *org.onap.policy.clamp.acm.runtime.Application* as the main class -5. Run the configuration - -Swagger UI of Automation composition is available at *http://localhost:6969/onap/policy/clamp/acm/swagger-ui/index.html* + cd ~/git/clamp/runtime-acm + java -jar target/policy-clamp-runtime-acm-7.1.3-SNAPSHOT.jar -Running one or more participants -++++++++++++++++++++++++++++++++ - -Into :ref:`HTTP Participant ` you can find a test case with http-participant. +Running participant simulator ++++++++++++++++++++++++++++++ Run the following commands: .. code-block:: bash - cd ~/git/onap/policy/clamp/participant/participant-impl/participant-impl-http - java -jar target/policy-clamp-participant-impl-http-6.4.2-SNAPSHOT.jar + cd ~/git/clamp/participant/participant-impl/participant-impl-simulator + java -jar target/policy-clamp-participant-impl-simulator-7.1.3-SNAPSHOT.jar Running the CLAMP automation composition docker image +++++++++++++++++++++++++++++++++++++++++++++++++++++ -Create the '*docker-composition.yaml*' using following code: +Create the '*docker-compose.yaml*' using following code: .. code-block:: yaml - version: '3.1' - 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 - - lower-case-table-names=1 ports: - "3306: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 + runtime-acm: image: onap/policy-clamp-runtime-acm + depends_on: + - zookeeper + - kafka + - mariadb environment: - - mariadb.host=mariadb - - topicServer=message-router + MARIADB_HOST: mariadb + TOPICSERVER: kafka:9092 + SERVER_SSL_ENABLED: false volumes: - type: bind - source: ./onap/policy/clamp/runtime-acm/src/main/resources/application.yaml + source: ./clamp/runtime-acm/src/main/resources/application.yaml target: /opt/app/policy/clamp/etc/AcRuntimeParameters.yaml ports: - "6969:6969" - message-router: - image: onap/policy-models-simulator + participant-simulator: + image: onap/policy-clamp-ac-sim-ppnt + depends_on: + - zookeeper + - kafka + environment: + MARIADB_HOST: mariadb + TOPICSERVER: kafka:9092 + SERVER_SSL_ENABLED: false volumes: - type: bind - source: ./onap/policy/models/models-sim/policy-models-simulators/src/test/resources/newParameters.json - target: /opt/app/policy/simulators/etc/mounted/simParameters.json - ports: - - "3904:3904" + source: ./clamp/participant/participant-impl/participant-impl-simulator/src/main/resources/config/application.yaml + target: /opt/app/policy/clamp/etc/SimulatorParticipantParameters.yaml + ports: + - "8085:8085" Run the docker composition: .. code-block:: bash cd ~/git/ - docker-compose up + docker compose up Swagger UI of automation composition is available at *http://localhost:6969/onap/policy/clamp/acm/swagger-ui/index.html* 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 `_ .. 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 `_ .. 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 `_ + # 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-local.yaml b/docs/development/devtools/smoke/files/docker-compose-local.yaml new file mode 100644 index 00000000..5ee39f67 --- /dev/null +++ b/docs/development/devtools/smoke/files/docker-compose-local.yaml @@ -0,0 +1,36 @@ +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" + + 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/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/mariadb.sql b/docs/development/devtools/smoke/files/mariadb.sql new file mode 100644 index 00000000..95c4c766 --- /dev/null +++ b/docs/development/devtools/smoke/files/mariadb.sql @@ -0,0 +1,3 @@ +create database clampacm; +CREATE USER 'policy'@'%' IDENTIFIED BY 'P01icY'; +GRANT ALL PRIVILEGES ON clampacm.* TO 'policy'@'%'; 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/files/participant-sim-application.yaml b/docs/development/devtools/smoke/files/participant-sim-application.yaml new file mode 100644 index 00000000..2d23c12c --- /dev/null +++ b/docs/development/devtools/smoke/files/participant-sim-application.yaml @@ -0,0 +1,22 @@ + +participant: + intermediaryParameters: + reportingTimeIntervalMs: 120000 + description: Participant Description + participantId: 101c62b3-8918-41b9-a747-d21eb79c6c90 + 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.SimAutomationCompositionElement + typeVersion: 1.0.0 diff --git a/docs/development/devtools/smoke/files/runtime-application.yaml b/docs/development/devtools/smoke/files/runtime-application.yaml new file mode 100644 index 00000000..f798d5bb --- /dev/null +++ b/docs/development/devtools/smoke/files/runtime-application.yaml @@ -0,0 +1,22 @@ + +runtime: + participantParameters: + heartBeatMs: 20000 + maxStatusWaitMs: 200000 + topicParameterGroup: + topicSources: + - + topic: policy-acruntime-participant + servers: + - ${topicServer:localhost:29092} + topicCommInfrastructure: kafka + fetchTimeout: 15000 + topicSinks: + - + topic: policy-acruntime-participant + servers: + - ${topicServer:localhost:29092} + topicCommInfrastructure: kafka + acmParameters: + toscaElementName: org.onap.policy.clamp.acm.AutomationCompositionElement + toscaCompositionName: org.onap.policy.clamp.acm.AutomationComposition 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 `_ -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 `_. 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: + + 4.0.0 + org.onap + onap-policy + 1.0.0-SNAPSHOT + pom + ${project.artifactId} + 2024 + + ONAP + -.. code-block:: json + + api + clamp + pap + + - { - "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 `_ +`Policy Framework K8S Install `_ -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 `_ +`Policy CSIT Test Install Docker `_ 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 Binary files a/docs/development/devtools/testing/s3p/apex-s3p-results/apex_performance_results.png and b/docs/development/devtools/testing/s3p/apex-s3p-results/apex_performance_results.png 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 Binary files a/docs/development/devtools/testing/s3p/apex-s3p-results/apex_stability_results.png and b/docs/development/devtools/testing/s3p/apex-s3p-results/apex_stability_results.png 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 Binary files a/docs/development/devtools/testing/s3p/api-s3p-results/api-s3p-jm-1_J.png and b/docs/development/devtools/testing/s3p/api-s3p-results/api-s3p-jm-1_J.png 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 Binary files a/docs/development/devtools/testing/s3p/api-s3p-results/api-s3p-jm-2_J.png and b/docs/development/devtools/testing/s3p/api-s3p-results/api-s3p-jm-2_J.png 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/clamp-s3p-results/acm_performance_jmeter.png b/docs/development/devtools/testing/s3p/clamp-s3p-results/acm_performance_jmeter.png index ae3308d1..38b6c000 100644 Binary files a/docs/development/devtools/testing/s3p/clamp-s3p-results/acm_performance_jmeter.png and b/docs/development/devtools/testing/s3p/clamp-s3p-results/acm_performance_jmeter.png differ diff --git a/docs/development/devtools/testing/s3p/clamp-s3p-results/acm_stability_jmeter.png b/docs/development/devtools/testing/s3p/clamp-s3p-results/acm_stability_jmeter.png index 3721435e..bd9d0e84 100644 Binary files a/docs/development/devtools/testing/s3p/clamp-s3p-results/acm_stability_jmeter.png and b/docs/development/devtools/testing/s3p/clamp-s3p-results/acm_stability_jmeter.png differ diff --git a/docs/development/devtools/testing/s3p/clamp-s3p-results/acm_stability_table.png b/docs/development/devtools/testing/s3p/clamp-s3p-results/acm_stability_table.png index 6401eb1d..94402c8f 100644 Binary files a/docs/development/devtools/testing/s3p/clamp-s3p-results/acm_stability_table.png and b/docs/development/devtools/testing/s3p/clamp-s3p-results/acm_stability_table.png differ diff --git a/docs/development/devtools/testing/s3p/clamp-s3p.rst b/docs/development/devtools/testing/s3p/clamp-s3p.rst index dc0b5998..2cf3e236 100644 --- a/docs/development/devtools/testing/s3p/clamp-s3p.rst +++ b/docs/development/devtools/testing/s3p/clamp-s3p.rst @@ -37,7 +37,7 @@ The common setup for performance and stability tests is now automated - being ca Clone the policy-clamp repo to access the test scripts -.. code-block:: bash +.. code-block:: sh git clone https://gerrit.onap.org/r/policy/clamp @@ -69,9 +69,9 @@ Run Test The code in the setup section also serves to run the tests. Just one execution needed to do it all. -.. code-block:: bash +.. code-block:: sh - bash run-s3p-test.sh run stability + ./run-s3p-test.sh run stability Once the test execution is completed, the results are present in the **automate-performance/s3pTestResults.jtl** file. @@ -89,24 +89,28 @@ Stability test plan was triggered for 72 hours. ======================= ================= ================== ================================== **Total # of requests** **Success %** **Error %** **Average time taken per request** ======================= ================= ================== ================================== -260590 100.00 % 0.00 % 997 ms +261852 100.00 % 0.00 % 387.126 ms ======================= ================= ================== ================================== **ACM component Setup** -============================================== ============================================================ =========================================== -**NAME** **IMAGE** **PORT** -============================================== ============================================================ =========================================== - policy-clamp-runtime-acm-5c6d8fbfb-jz8rb nexus3.onap.org:10001/onap/policy-clamp-runtime-acm:latest 30007/tcp - policy-clamp-ac-pf-ppnt-55c4cb99f4-spvng nexus3.onap.org:10001/onap/policy-clamp-ac-pf-ppnt:latest 30008/tcp - policy-api-58cb45fc9b-ff5md nexus3.onap.org:10001/onap/policy-api:latest 30002/tcp - policy-clamp-ac-http-ppnt-7b99cbfbf8-d4w9v nexus3.onap.org:10001/onap/policy-clamp-ac-http-ppnt:latest 30009/tcp - policy-clamp-ac-k8s-ppnt-6d854cc8b6-twdkh nexus3.onap.org:10001/onap/policy-clamp-ac-k8s-ppnt:latest 30010/tcp - policy-models-simulator-bcd494d87-bfg6g nexus3.onap.org:10001/onap/policy-models-simulator:latest 30904/tcp - mariadb-galera-0 nexus3.onap.org:10001/mariadb:10.5.8 3306/tcp - policy-pap-847d89997d-x9h99 nexus3.onap.org:10001/onap/policy-pap:latest 30003/tcp - policy-apex-pdp-0 nexus3.onap.org:10001/onap/policy-apex-pdp:latest 6969/tcp -============================================== ============================================================ =========================================== +============================================== ================================================================== ==================== +**NAME** **IMAGE** **PORT** +============================================== ================================================================== ==================== + zookeeper-deployment-7ff87c7fcc-ptkwv confluentinc/cp-zookeeper:latest 2181/TCP + kafka-deployment-5c87d497b-2jv27 confluentinc/cp-kafka:latest 9092/TCP + policy-models-simulator-6947667bdc-v4czs nexus3.onap.org:10001/onap/policy-models-simulator:latest 3904:30904/TCP + prometheus-f66f97b6-rknvp nexus3.onap.org:10001/prom/prometheus:latest 9090:30909/TCP + mariadb-galera-0 nexus3.onap.org:10001/bitnami/mariadb-galera:10.5.8 3306/TCP + policy-apex-pdp-0 nexus3.onap.org:10001/onap/policy-apex-pdp:3.1.3-SNAPSHOT 6969:30001/TCP + policy-clamp-ac-http-ppnt-7d747b5d98-4phjf nexus3.onap.org:10001/onap/policy-clamp-ac-http-ppnt7.1.3-SNAPSHOT 8084/TCP + policy-clamp-ac-sim-ppnt-97f487577-4p7ks nexus3.onap.org:10001/onap/policy-clamp-ac-sim-ppnt7.1.3-SNAPSHOT 6969/TCP + policy-clamp-ac-k8s-ppnt-6bbd86bbc6-csknn nexus3.onap.org:10001/onap/policy-clamp-ac-k8s-ppnt7.1.3-SNAPSHOT 8083:30443/TCP + policy-clamp-ac-pf-ppnt-5fcbbcdb6c-twkxw nexus3.onap.org:10001/onap/policy-clamp-ac-pf-ppnt7.1.3-SNAPSHOT 6969:30008/TCP + policy-clamp-runtime-acm-66b5d6b64-4gnth nexus3.onap.org:10001/onap/policy-clamp-runtime-acm7.1.3-SNAPSHOT 6969:30007/TCP + policy-pap-f7899d4cd-7m898 nexus3.onap.org:10001/onap/policy-pap:3.1.3-SNAPSHOT 6969:30003/TCP + policy-api-7f7d995b4-ckb84 nexus3.onap.org:10001/onap/policy-api:3.1.3-SNAPSHOT 6969:30002/TCP +============================================== ================================================================== ==================== @@ -124,14 +128,6 @@ Stability test plan was triggered for 72 hours. .. image:: clamp-s3p-results/acm_stability_table.png -**Memory and CPU usage** - -The memory and CPU usage can be monitored by running "docker stats" command. - -Memory and CPU usage after test execution: - -.. image:: clamp-s3p-results/Stability_after_stats.png - Performance Test of acm components ++++++++++++++++++++++++++++++++++ @@ -146,30 +142,45 @@ Setup Details We can setup the environment and execute the tests like this from the **clamp/testsuites** directory -.. code-block:: bash +.. code-block:: sh - bash run-s3p-test.sh run performance + ./run-s3p-test.sh run performance -This runs for 2 hours. Test results are present in the **testsuites/automate-performance/s3pTestResults.jtl** +Test results are present in the **testsuites/automate-performance/s3pTestResults.jtl** directory. Logs are present for jmeter in **testsuites/automate-performance/jmeter.log** and **testsuites/automated-performance/nohup.out** Test Plan --------- -Performance test plan is the same as the stability test plan above except for the few differences listed below. - -- Increase the number of threads up to 5 (simulating 5 users' behaviours at the same time). -- Reduce the test time to 2 hours. +The Performance test ran the following steps sequentially by 5 threaded users. Any user will create 100 compositions/instances. + +- **SetUp** - SetUp Thread Group + - **Register Participants** - Registers the presence of participants in the acm database +- **AutomationComposition Test Flow** - flow by 5 threaded users. + - **Creation and Deploy** - Creates 100 Compositions and Instances + - **Commission Automation Composition Definitions** - Commissions the ACM Definitions + - **Prime AC definition** - Primes the AC Definition to the participants + - **Instantiate acm** - Instantiate the acm instance + - **DEPLOY the ACM instance** - change the state of the acm to DEPLOYED + - **Check instance state** - check the current state of instance and that it is DEPLOYED + - **Get participants** - fetch all participants + - **Get compositions** - fetch all compositions + - **Undeploy and Delete** - Deletes instances and Compositions created before + - **UNDEPLOY the ACM instance** - change the state of the ACM to UNDEPLOYED + - **Check instance state** - check the current state of instance and that it is UNDEPLOYED + - **Delete instance** - delete the instance from all participants and ACM db + - **DEPRIME ACM definitions** - DEPRIME ACM definitions from participants + - **Delete ACM Definition** - delete the ACM definition on runtime Run Test -------- The code in the setup section also serves to run the tests. Just one execution needed to do it all. -.. code-block:: bash +.. code-block:: sh - bash run-s3p-test.sh run performance + ./run-s3p-test.sh run performance Once the test execution is completed, the results are present in the **automate-performance/s3pTestResults.jtl** file. @@ -185,24 +196,28 @@ Test results are shown as below. ======================= ================= ================== ================================== **Total # of requests** **Success %** **Error %** **Average time taken per request** ======================= ================= ================== ================================== -15520 100 % 0.00 % 464 ms +8624 100 % 0.00 % 1296.8 ms ======================= ================= ================== ================================== **ACM component Setup** -============================================== ============================================================ =========================================== -**NAME** **IMAGE** **PORT** -============================================== ============================================================ =========================================== - policy-clamp-runtime-acm-5c6d8fbfb-jz8rb nexus3.onap.org:10001/onap/policy-clamp-runtime-acm:latest 30007/tcp - policy-clamp-ac-pf-ppnt-55c4cb99f4-spvng nexus3.onap.org:10001/onap/policy-clamp-ac-pf-ppnt:latest 30008/tcp - policy-api-58cb45fc9b-ff5md nexus3.onap.org:10001/onap/policy-api:latest 30002/tcp - policy-clamp-ac-http-ppnt-7b99cbfbf8-d4w9v nexus3.onap.org:10001/onap/policy-clamp-ac-http-ppnt:latest 30009/tcp - policy-clamp-ac-k8s-ppnt-6d854cc8b6-twdkh nexus3.onap.org:10001/onap/policy-clamp-ac-k8s-ppnt:latest 30010/tcp - policy-models-simulator-bcd494d87-bfg6g nexus3.onap.org:10001/onap/policy-models-simulator:latest 30904/tcp - mariadb-galera-0 nexus3.onap.org:10001/mariadb:10.5.8 3306/tcp - policy-pap-847d89997d-x9h99 nexus3.onap.org:10001/onap/policy-pap:latest 30003/tcp - policy-apex-pdp-0 nexus3.onap.org:10001/onap/policy-apex-pdp:latest 6969/tcp -============================================== ============================================================ =========================================== +============================================== ================================================================== ==================== +**NAME** **IMAGE** **PORT** +============================================== ================================================================== ==================== + zookeeper-deployment-7ff87c7fcc-5svgw confluentinc/cp-zookeeper:latest 2181/TCP + kafka-deployment-5c87d497b-hmbhc confluentinc/cp-kafka:latest 9092/TCP + policy-models-simulator-6947667bdc-crcwq nexus3.onap.org:10001/onap/policy-models-simulator:latest 3904:30904/TCP + prometheus-f66f97b6-24dvx nexus3.onap.org:10001/prom/prometheus:latest 9090:30909/TCP + mariadb-galera-0 nexus3.onap.org:10001/bitnami/mariadb-galera:10.5.8 3306/TCP + policy-apex-pdp-0 nexus3.onap.org:10001/onap/policy-apex-pdp:3.1.3-SNAPSHOT 6969:30001/TCP + policy-clamp-ac-sim-ppnt-97f487577-pn56t nexus3.onap.org:10001/onap/policy-clamp-ac-sim-ppnt7.1.3-SNAPSHOT 6969/TCP + policy-clamp-ac-http-ppnt-7d747b5d98-qjjlv nexus3.onap.org:10001/onap/policy-clamp-ac-http-ppnt7.1.3-SNAPSHOT 8084/TCP + policy-clamp-ac-k8s-ppnt-6bbd86bbc6-ffbz2 nexus3.onap.org:10001/onap/policy-clamp-ac-k8s-ppnt7.1.3-SNAPSHOT 8083:30443/TCP + policy-clamp-ac-pf-ppnt-5fcbbcdb6c-vmsnv nexus3.onap.org:10001/onap/policy-clamp-ac-pf-ppnt7.1.3-SNAPSHOT 6969:30008/TCP + policy-clamp-runtime-acm-66b5d6b64-6vjl5 nexus3.onap.org:10001/onap/policy-clamp-runtime-acm7.1.3-SNAPSHOT 6969:30007/TCP + policy-pap-f7899d4cd-8sjk9 nexus3.onap.org:10001/onap/policy-pap:3.1.3-SNAPSHOT 6969:30003/TCP + policy-api-7f7d995b4-dktdw nexus3.onap.org:10001/onap/policy-api:3.1.3-SNAPSHOT 6969:30002/TCP +============================================== ================================================================== ==================== **JMeter Screenshot** 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 Binary files a/docs/development/devtools/testing/s3p/distribution-s3p-results/performance-monitor.png and b/docs/development/devtools/testing/s3p/distribution-s3p-results/performance-monitor.png 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 Binary files a/docs/development/devtools/testing/s3p/distribution-s3p-results/performance-statistics.png and b/docs/development/devtools/testing/s3p/distribution-s3p-results/performance-statistics.png 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 Binary files a/docs/development/devtools/testing/s3p/distribution-s3p-results/performance-threads.png and b/docs/development/devtools/testing/s3p/distribution-s3p-results/performance-threads.png 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 Binary files a/docs/development/devtools/testing/s3p/distribution-s3p-results/performance-threshold.png and b/docs/development/devtools/testing/s3p/distribution-s3p-results/performance-threshold.png 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 Binary files a/docs/development/devtools/testing/s3p/distribution-s3p-results/stability-monitor.png and b/docs/development/devtools/testing/s3p/distribution-s3p-results/stability-monitor.png 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 Binary files a/docs/development/devtools/testing/s3p/distribution-s3p-results/stability-statistics.png and b/docs/development/devtools/testing/s3p/distribution-s3p-results/stability-statistics.png 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 Binary files a/docs/development/devtools/testing/s3p/distribution-s3p-results/stability-threads.png and b/docs/development/devtools/testing/s3p/distribution-s3p-results/stability-threads.png 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 Binary files a/docs/development/devtools/testing/s3p/distribution-s3p-results/stability-threshold.png and b/docs/development/devtools/testing/s3p/distribution-s3p-results/stability-threshold.png 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 Binary files a/docs/development/devtools/testing/s3p/pap-s3p-results/pap_performance_jmeter_results.png and b/docs/development/devtools/testing/s3p/pap-s3p-results/pap_performance_jmeter_results.png 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 Binary files a/docs/development/devtools/testing/s3p/pap-s3p-results/pap_stability_jmeter_results.png and b/docs/development/devtools/testing/s3p/pap-s3p-results/pap_stability_jmeter_results.png 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 Binary files a/docs/development/devtools/testing/s3p/pap-s3p-results/pap_stats_after_72h.png and b/docs/development/devtools/testing/s3p/pap-s3p-results/pap_stats_after_72h.png 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 Binary files a/docs/development/devtools/testing/s3p/pap-s3p-results/pap_stats_before_72h.png and b/docs/development/devtools/testing/s3p/pap-s3p-results/pap_stats_before_72h.png 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 Binary files a/docs/development/devtools/testing/s3p/pap-s3p-results/pap_stats_during_72h.png and b/docs/development/devtools/testing/s3p/pap-s3p-results/pap_stats_during_72h.png 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** diff --git a/docs/development/devtools/testing/s3p/xacml-s3p-results/s3p-perf-xacml.png b/docs/development/devtools/testing/s3p/xacml-s3p-results/s3p-perf-xacml.png old mode 100755 new mode 100644 index b5ef5794..6f30f143 Binary files a/docs/development/devtools/testing/s3p/xacml-s3p-results/s3p-perf-xacml.png and b/docs/development/devtools/testing/s3p/xacml-s3p-results/s3p-perf-xacml.png differ diff --git a/docs/development/devtools/testing/s3p/xacml-s3p-results/s3p-stability-xacml.png b/docs/development/devtools/testing/s3p/xacml-s3p-results/s3p-stability-xacml.png old mode 100755 new mode 100644 index d45aeee4..842ec9dd Binary files a/docs/development/devtools/testing/s3p/xacml-s3p-results/s3p-stability-xacml.png and b/docs/development/devtools/testing/s3p/xacml-s3p-results/s3p-stability-xacml.png differ diff --git a/docs/development/devtools/testing/s3p/xacml-s3p.rst b/docs/development/devtools/testing/s3p/xacml-s3p.rst index 2ca0a533..3b81406b 100644 --- a/docs/development/devtools/testing/s3p/xacml-s3p.rst +++ b/docs/development/devtools/testing/s3p/xacml-s3p.rst @@ -88,7 +88,7 @@ Stability test plan was triggered for 24 hours. ======================= ================= ======================== ========================= **Total # of requests** **Error %** **Average Latency (ms)** **Measured requests/sec** ======================= ================= ======================== ========================= - 63618103 0.00 % 5 ms 736.064 ms + 54472562 0.00 % 5 ms 630.1 ms ======================= ================= ======================== ========================= **JMeter Results** @@ -97,22 +97,26 @@ Stability test plan was triggered for 24 hours. **Policy component Setup** -============================================== ==================================================================== =========================================== +============================================== ==================================================================== ============================================= **NAME** **IMAGE** **PORT** -============================================== ==================================================================== =========================================== +============================================== ==================================================================== ============================================= +zookeeper-deployment-7ff87c7fcc-fbsfb confluentinc/cp-zookeeper:latest 2181/TCP +kafka-deployment-5c87d497b-m8s2g confluentinc/cp-kafka:latest 9092/TCP +policy-drools-pdp-0 nexus3.onap.org:10001/onap/policy-pdpd-cl:2.1.3-SNAPSHOT 6969/TCP 9696/TCP +policy-apex-pdp-0 nexus3.onap.org:10001/onap/policy-apex-pdp:3.1.3-SNAPSHOT 6969/TCP +policy-distribution-f48bff778-48pm2 nexus3.onap.org:10001/onap/policy-distribution:3.1.3-SNAPSHOT 6969/TCP +policy-models-simulator-6947667bdc-wcd9r nexus3.onap.org:10001/onap/policy-models-simulator:3.1.3-SNAPSHOT 6666/TCP 6680/TCP 6668/TCP 6669/TCP 6670/TCP +policy-clamp-ac-http-ppnt-7d747b5d98-wmr5n nexus3.onap.org:10001/onap/policy-clamp-ac-http-ppnt:7.1.3-SNAPSHOT 8084/TCP +policy-clamp-ac-k8s-ppnt-6bbd86bbc6-vnvx6 nexus3.onap.org:10001/onap/policy-clamp-ac-k8s-ppnt:7.1.3-SNAPSHOT 8083/TCP +policy-clamp-ac-pf-ppnt-5fcbbcdb6c-k2cbk nexus3.onap.org:10001/onap/policy-clamp-ac-pf-ppnt:7.1.3-SNAPSHOT 6969/TCP +policy-clamp-ac-sim-ppnt-97f487577-m2zjr nexus3.onap.org:10001/onap/policy-clamp-ac-sim-ppnt:7.1.3-SNAPSHOT 6969/TCP +policy-clamp-runtime-acm-66b5d6b64-l6dpq nexus3.onap.org:10001/onap/policy-clamp-runtime-acm:7.1.3-SNAPSHOT 6969/TCP mariadb-galera-0 docker.io/bitnami/mariadb-galera:10.5.8 3306/TCP -policy-models-simulator-bcd494d87-cldfr nexus3.onap.org:10001/onap/policy-models-simulator:3.0.2-SNAPSHOT 30904/TCP -policy-apex-pdp-0 nexus3.onap.org:10001/onap/policy-apex-pdp:3.0.2-SNAPSHOT 30001/TCP -prometheus-f66f97b6-kpg5c nexus3.onap.org:10001/prom/prometheus:latest 30909/TCP -policy-distribution-86777bdd78-95zjx nexus3.onap.org:10001/onap/policy-distribution:3.0.2-SNAPSHOT 30006/TCP -policy-clamp-ac-http-ppnt-7b99cbfbf8-d5zjk nexus3.onap.org:10001/onap/policy-clamp-ac-http-ppnt:7.0.3-SNAPSHOT -policy-clamp-ac-pf-ppnt-55c4cb99f4-pp699 nexus3.onap.org:10001/onap/policy-clamp-ac-pf-ppnt:7.0.3-SNAPSHOT 30008/TCP -policy-clamp-ac-k8s-ppnt-6d854cc8b6-nzlgh nexus3.onap.org:10001/onap/policy-clamp-ac-k8s-ppnt:7.0.3-SNAPSHOT -policy-clamp-runtime-acm-5c6d8fbfb-zww5j nexus3.onap.org:10001/onap/policy-clamp-runtime-acm:7.0.3-SNAPSHOT 30007/TCP -policy-pap-847d89997d-gljzh nexus3.onap.org:10001/onap/policy-pap:3.0.2-SNAPSHOT 30003/TCP -policy-xacml-pdp-656d57d578-9h6fx nexus3.onap.org:10001/onap/policy-xacml-pdp:3.0.2-SNAPSHOT 30004/TCP -policy-api-58cb45fc9b-9qcx6 nexus3.onap.org:10001/onap/policy-api:3.0.2-SNAPSHOT 30002/tcp -============================================== ==================================================================== =========================================== +prometheus-f66f97b6-kkmpq nexus3.onap.org:10001/prom/prometheus:latest 9090/TCP +policy-api-7f7d995b4-2zhnw nexus3.onap.org:10001/onap/policy-api:3.1.3-SNAPSHOT 6969/TCP +policy-pap-f7899d4cd-mfrtp nexus3.onap.org:10001/onap/policy-pap:3.1.3-SNAPSHOT 6969/TCP +policy-xacml-pdp-6c86f85ff6-6qzgf nexus3.onap.org:10001/onap/policy-xacml-pdp:3.1.2 6969/TCP +============================================== ==================================================================== ============================================= .. Note:: @@ -188,7 +192,7 @@ The test was run for 20 minutes with 10 users (i.e., threads), with the followin ======================= ================= ======================== ========================= **Total # of requests** **Error %** **Average Latency (ms)** **Measured requests/sec** ======================= ================= ======================== ========================= - 912141 0.00 % 25.5666 ms 741.917 ms + 888047 0.00 % 25 ms 723.2 ms ======================= ================= ======================== ========================= .. image:: xacml-s3p-results/s3p-perf-xacml.png diff --git a/docs/development/property-configuration.rst b/docs/development/property-configuration.rst index 39691ade..d89b4769 100644 --- a/docs/development/property-configuration.rst +++ b/docs/development/property-configuration.rst @@ -10,13 +10,13 @@ Property-configuration mechanisms .. contents:: :depth: 3 -This article explains how to implement handling and validation of common parameter into the Policy Framework Components. +This article explains how to implement handling and validation of common parameters into the Policy Framework Components. Not Spring boot framework ************************* -The application should have a ParameterHandler class to support the map values from Json to a POJO, so it should be load the file, convert it performing all type conversion. +The application should have a ParameterHandler class to support the map of values from Json to a POJO; so it should load the file and convert it; performing all type conversion. -The code below shown an example of ParameterHandler: +The code below shown is an example of ParameterHandler: .. code-block:: java @@ -59,9 +59,9 @@ The code below shown an example of ParameterHandler: } -The POJO have to implement **org.onap.policy.common.parameters.ParameterGroup** interface or eventually extend **org.onap.policy.common.parameters.ParameterGroupImpl**. The last one already implements **validate()** method that performs error checking using validation **org.onap.policy.common.parameters.annotations**. +The POJO has to implement the **org.onap.policy.common.parameters.ParameterGroup** interface or eventually extend **org.onap.policy.common.parameters.ParameterGroupImpl**. The last one already implements the **validate()** method that performs error checking using validation **org.onap.policy.common.parameters.annotations**. -The code below shown an example of POJO: +The code below shows an example of the POJO: .. code-block:: java @@ -87,7 +87,7 @@ The code below shown an example of POJO: } -The code shows below, is an example of Unit Test validation of the POJO PapParameterGroup: +The code shown below, is an example of Unit Test validation of the POJO PapParameterGroup: .. code-block:: java @@ -106,13 +106,13 @@ The code shows below, is an example of Unit Test validation of the POJO PapParam Using Spring boot framework *************************** -Spring loads automatically the property file and put it available under the **org.springframework.core.env.Environment** Spring component. +Spring loads the property file automatically and makes it available under the **org.springframework.core.env.Environment** Spring component. Environment +++++++++++ A component can use Environment component directly. -Environment component is not a good approach because there is not type conversion and error checking, but it could be useful when the name of the property you need to access changes dynamically. +The Environment component is not a good approach because there is no type conversion or error checking, but it could be useful when the name of the property you need to access changes dynamically. .. code-block:: java @@ -134,7 +134,7 @@ Annotation-based Spring configuration All annotation-based Spring configurations support the Spring Expression Language (SpEL), a powerful expression language that supports querying and manipulating an object graph at runtime. A documentation about SpEL could be found here: https://docs.spring.io/spring-framework/docs/3.0.x/reference/expressions.html. -A component can use **org.springframework.beans.factory.annotation.Value**, which reads from properties, performs a type conversion and injects the value into the filed. There is not error checking, but it can assign default value if the property is not defined. +A component can use **org.springframework.beans.factory.annotation.Value**, which reads from properties, performs a type conversion and injects the value into the field. There is no error checking, but it can assign a default value if the property is not defined. .. code-block:: java @@ -178,9 +178,9 @@ ConfigurationProperties private String description; } -In a scenario that we need to include into a POJO shown before, a class that implement **ParameterGroup** interface, we need to add the **org.onap.policy.common.parameters.validation.ParameterGroupConstraint** annotation. That annotation is configured to use **ParameterGroupValidator** that handles the conversion of a **org.onap.policy.common.parameters.BeanValidationResult** to a Spring validation. +In a scenario where we need to include the properties in a POJO, as shown before, in a class that implements **ParameterGroup** interface, we need to add the **org.onap.policy.common.parameters.validation.ParameterGroupConstraint** annotation. That annotation is configured to use **ParameterGroupValidator**, which handles the conversion of a **org.onap.policy.common.parameters.BeanValidationResult** to a Spring validation. -The code below shown how to add TopicParameterGroup parameter into ClRuntimeParameterGroup: +The code below shows how to add the TopicParameterGroup parameter into acRuntimeParameterGroup: .. code-block:: java @@ -197,7 +197,7 @@ A bean configured with ConfigurationProperties, is automatically a Spring compon @RequiredArgsConstructor public class Example { - private ClRuntimeParameterGroup parameters; + private acRuntimeParameterGroup parameters; .... public void method() { @@ -206,7 +206,7 @@ A bean configured with ConfigurationProperties, is automatically a Spring compon ..... } -The code shows below, is an example of Unit Test validation of the POJO ClRuntimeParameterGroup: +The code shown below, is an example of Unit Test validation of the POJO acRuntimeParameterGroup: .. code-block:: java @@ -214,7 +214,7 @@ The code shows below, is an example of Unit Test validation of the POJO ClRuntim @Test void testParameters_NullTopicParameterGroup() { - final ClRuntimeParameterGroup parameters = CommonTestData.geParameterGroup(); + final acRuntimeParameterGroup parameters = CommonTestData.geParameterGroup(); parameters.setTopicParameterGroup(null); assertThat(validatorFactory.getValidator().validate(parameters)).isNotEmpty(); } diff --git a/docs/pap/notification/dmaap-pap-notif.json b/docs/pap/notification/kafka-pap-notif.json similarity index 100% rename from docs/pap/notification/dmaap-pap-notif.json rename to docs/pap/notification/kafka-pap-notif.json diff --git a/docs/pap/pap.rst b/docs/pap/pap.rst index c6da41b2..1515af53 100644 --- a/docs/pap/pap.rst +++ b/docs/pap/pap.rst @@ -122,14 +122,13 @@ PAP supports the operations listed in the following table, via its REST API: "Undeploy policy", "Undeploys a policy from the PDPs" "Policy Status", "Queries the status of all policies" "Policy deployment status", "Queries the status of all deployed policies" - "PDP statistics", "Queries the statistics of PDPs" "Policy Audit", "Queries the audit records of policies" -1.2 DMaaP API +1.2 KAFKA API ------------- -PAP interacts with the PDPs via the DMaaP Message Router. The messages listed -in the following table are transmitted via DMaaP: +PAP interacts with the PDPs via the kafka interface. The messages listed +in the following table are transmitted via Kafka: .. csv-table:: :header: "Message", "Direction", "Description" @@ -139,12 +138,12 @@ in the following table are transmitted via DMaaP: "PDP update", "Outgoing", "Assigns a PDP to a PDP Group and Subgroup; also deploys or undeploys policies from the PDP" "PDP state change", "Outgoing", "Changes the state of a PDP or all PDPs within a PDP Group or Subgroup" -In addition, PAP generates notifications via the DMaaP Message Router when policies are successfully or unsuccessfully +In addition, PAP generates notifications via the Kafka when policies are successfully or unsuccessfully deployed (or undeployed) from all relevant PDPs. Here is a sample notification: -.. literalinclude:: notification/dmaap-pap-notif.json +.. literalinclude:: notification/kafka-pap-notif.json :language: json @@ -201,22 +200,6 @@ Here is a sample response: .. literalinclude:: response/consolidated-healthcheck-pap-resp.json :language: json -.. csv-table:: - :header: "/statistics" - :widths: 10 - - `Statistics PAP Swagger <./local-swagger.html#tag/StatisticsRestControllerV1>`_ - -This operation allows statistics for PDP groups, PDP subgroups, and individual PDPs to be retrieved. - -.. note:: - While this API is supported, most of the statistics are not currently updated; that work has been deferred to a later - release. - -Here is a sample response: - -.. literalinclude:: response/statistics-pap-resp.json - :language: json .. csv-table:: :header: "/pdps/groups/{name}" @@ -386,21 +369,6 @@ Here is a sample response: .. literalinclude:: response/deployed-policy-pap-resp.json :language: json -.. csv-table:: - :header: "/pdps/statistics" - :widths: 10 - - `Policy Statistics PAP Swagger <./local-swagger.html#tag/StatisticsRestControllerV1>`_ - -This operation allows the PDP statistics to be retrieved for all registered PDPs. -The result can be filtered based on PDP group, PDP subgroup & PDP instance. -Along with record count, start time & end time as query parameters. - -Here is a sample response: - -.. literalinclude:: response/pdp-statistics-pap-resp.json - :language: json - .. csv-table:: :header: "/policies/audit" :widths: 10 @@ -424,15 +392,5 @@ The *PolicyAdministration* component (PAP) is initialized using a configuration The configuration file is a YAML file containing the relevant fields for configuring the REST server, Database and DMaaP connectivity and so on. -3.1 Disable collection of PDP Statistics -======================================== - -This configuration is to inform PAP to not save the PDP statistics in the database. - -In *papParameters.yaml*, add or change the property savePdpStatisticsInDb to false. - -.. note:: - By default, if the property is not present, it will be considered as false and - PDP statistics will not be saved in the database. End of Document diff --git a/docs/pap/response/pdp-statistics-pap-resp.json b/docs/pap/response/pdp-statistics-pap-resp.json deleted file mode 100644 index 77b03444..00000000 --- a/docs/pap/response/pdp-statistics-pap-resp.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "defaultGroup": { - "apex": [ - { - "pdpInstanceId": "dev-policy-apex-pdp-0", - "timeStamp": "Apr 29, 2020, 6:15:29 PM", - "pdpGroupName": "defaultGroup", - "pdpSubGroupName": "apex", - "policyDeployCount": 0, - "policyDeploySuccessCount": 0, - "policyDeployFailCount": 0, - "policyExecutedCount": 0, - "policyExecutedSuccessCount": 0, - "policyExecutedFailCount": 0, - "engineStats": [] - }, - { - "pdpInstanceId": "dev-policy-apex-pdp-0", - "timeStamp": "Apr 29, 2020, 6:17:29 PM", - "pdpGroupName": "defaultGroup", - "pdpSubGroupName": "apex", - "policyDeployCount": 0, - "policyDeploySuccessCount": 0, - "policyDeployFailCount": 0, - "policyExecutedCount": 0, - "policyExecutedSuccessCount": 0, - "policyExecutedFailCount": 0, - "engineStats": [] - }, - { - "pdpInstanceId": "dev-policy-apex-pdp-0", - "timeStamp": "Apr 29, 2020, 6:19:29 PM", - "pdpGroupName": "defaultGroup", - "pdpSubGroupName": "apex", - "policyDeployCount": 0, - "policyDeploySuccessCount": 0, - "policyDeployFailCount": 0, - "policyExecutedCount": 0, - "policyExecutedSuccessCount": 0, - "policyExecutedFailCount": 0, - "engineStats": [] - } - ] - } -} \ No newline at end of file diff --git a/docs/pap/response/statistics-pap-resp.json b/docs/pap/response/statistics-pap-resp.json deleted file mode 100644 index 836b5956..00000000 --- a/docs/pap/response/statistics-pap-resp.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "code": 200, - "policyDeployFailureCount": 0, - "policyDeploySuccessCount": 0, - "policyDownloadFailureCount": 0, - "policyDownloadSuccessCount": 0, - "totalPdpCount": 0, - "totalPdpGroupCount": 0, - "totalPolicyDeployCount": 0, - "totalPolicyDownloadCount": 0 -} diff --git a/docs/system-attributes/policy-db-migrator.rst b/docs/system-attributes/policy-db-migrator.rst index 840137e9..81019efe 100644 --- a/docs/system-attributes/policy-db-migrator.rst +++ b/docs/system-attributes/policy-db-migrator.rst @@ -8,7 +8,7 @@ Using Policy DB Migrator ######################## Policy DB Migrator is a set of shell scripts used to -install the database tables required to run ONAP Policy Framework. +install the database tables required to run ONAP Policy Framework and ACM. .. note:: Currently the Istanbul versions of the PAP and API components require @@ -53,7 +53,7 @@ These script can take up to four parameters: - upgrade/downgrade/report * - schema - -s - - policyadmin + - policyadmin/clampacm * - to - -t - 0800/0900 @@ -76,7 +76,7 @@ to run and connect to the database. * - SQL_HOST - mariadb * - SQL_DB - - policyadmin + - policyadmin/clampacm * - SQL_USER - policy_user * - SQL_PASSWORD @@ -98,7 +98,7 @@ to run and connect to the database. * - SQL_HOST - postgres * - SQL_DB - - policyadmin + - policyadmin/clampacm * - SQL_USER - policy_user * - SQL_PASSWORD @@ -119,7 +119,7 @@ Prior to upgrading the following script is run: /opt/app/policy/bin/prepare_upgrade.sh -This will copy the upgrade files from ``/home/policy/${SCRIPT_DIRECTORY}`` to ``$POLICY_HOME/etc/db/migration//${SCRIPT_DIRECTORY}/`` +This will copy the upgrade files from ``/home/${SCHEMA}/${SCRIPT_DIRECTORY}`` to ``$POLICY_HOME/etc/db/migration//${SCRIPT_DIRECTORY}/`` Each individual sql file that makes up that release will be run as part of the upgrade. @@ -132,7 +132,7 @@ Prior to downgrading the following script is run: /opt/app/policy/bin/prepare_downgrade.sh -This will copy the downgrade files from ``/home/policy/${SCRIPT_DIRECTORY}`` to ``$POLICY_HOME/etc/db/migration//${SCRIPT_DIRECTORY}/`` +This will copy the downgrade files from ``/home/${SCHEMA}/${SCRIPT_DIRECTORY}`` to ``$POLICY_HOME/etc/db/migration//${SCRIPT_DIRECTORY}/`` Each individual sql file that makes up that release will be run as part of the downgrade. @@ -199,7 +199,7 @@ Console output will also show the sql script command as in the example below: migration schema ================ -The migration schema contains two tables which belong to ``db-migrator``. +The migration schema contains three tables which belong to ``db-migrator``. * schema_versions - table to store the schema version currently installed by ``db-migrator`` @@ -210,7 +210,9 @@ The migration schema contains two tables which belong to ``db-migrator``. * - name - version * - policyadmin - - 0900 + - 1400 + * - clampacm + - 1400 * policyadmin_schema_changelog - table which stores a record of each sql file that has been run @@ -235,6 +237,29 @@ The migration schema contains two tables which belong to ``db-migrator``. - 1 - 2021-09-13 09:09:26 +* clampacm_schema_changelog - table which stores a record of each sql file that has been run + +.. list-table:: + :widths: 10 40 10 10 10 20 10 20 + :header-rows: 1 + + * - ID + - script + - operation + - from_version + - to_version + - tag + - success + - atTime + * - 1 + - 0100-automationcomposition.sql + - upgrade + - 0 + - 1400 + - 1309210909250800u + - 1 + - 2024-04-24 09:09:26 + * ID: Sequence number of the operation * script: name of the sql script which was run * operation: operation type - upgrade/downgrade @@ -340,7 +365,7 @@ If the target version of your upgrade or downgrade is the same as the current ve no sql files are run. If an upgrade is run on a database where tables already exist in the policy schema, the -current schema version is set to 0800 and only sql scripts from later versions are run. +current schema version is set to 1300 and only sql scripts from later versions are run. .. note:: It is advisable to take a backup of your database prior to running this utility. diff --git a/integration/pom.xml b/integration/pom.xml index 1e8997fc..7e3c879b 100644 --- a/integration/pom.xml +++ b/integration/pom.xml @@ -29,7 +29,7 @@ org.onap.policy.parent policy-parent - 4.1.3-SNAPSHOT + 5.0.0-SNAPSHOT integration pom @@ -38,8 +38,8 @@ 17 - 4.1.3-SNAPSHOT - 4.1.2-SNAPSHOT + 5.0.0-SNAPSHOT + [4.1.2,) ${project.build.directory}/code-coverage/jacoco-ut.exec jacoco @@ -551,16 +551,28 @@ 4.13.2 test + + + org.junit.jupiter + junit-jupiter + ${version.jupiter} + test + org.junit.jupiter junit-jupiter-engine ${version.jupiter} test - - org.junit.vintage - junit-vintage-engine + org.junit.jupiter + junit-jupiter-api + ${version.jupiter} + test + + + org.junit.jupiter + junit-jupiter-params ${version.jupiter} test @@ -982,34 +994,6 @@ kotlin-stdlib-common ${version.kotlin} - - - - com.squareup.okhttp3 - okhttp - 4.12.0 - - - io.projectreactor - reactor-core - 3.6.5 - - - net.bytebuddy - byte-buddy - ${version.bytebuddy} - - - net.bytebuddy - byte-buddy-agent - ${version.bytebuddy} - - - org.jboss.logging - jboss-logging - 3.5.3.Final - runtime - diff --git a/integration/src/main/resources/release/14.0.0-ONAP_pf_release_data.csv b/integration/src/main/resources/release/14.0.0-ONAP_pf_release_data.csv new file mode 100644 index 00000000..4322b176 --- /dev/null +++ b/integration/src/main/resources/release/14.0.0-ONAP_pf_release_data.csv @@ -0,0 +1,14 @@ +Repo, Last Tag Version,Snapshot Version,Changed Files,Docker Images +policy/parent,4.1.4,4.1.5-SNAPSHOT,0, +policy/docker,3.1.3,3.1.4-SNAPSHOT,1,'policy-jre-alpine':'policy-jdk-alpine':'policy-db-migrator' +policy/common,2.1.3,2.1.4-SNAPSHOT,0, +policy/models,3.1.3,3.1.4-SNAPSHOT,2,'policy-models-simulator' +policy/api,3.1.3,3.1.4-SNAPSHOT,1,'policy-api' +policy/pap,3.1.3,3.1.4-SNAPSHOT,1,'policy-pap' +policy/apex-pdp,3.1.3,3.1.4-SNAPSHOT,1,'policy-apex-pdp' +policy/drools-pdp,2.1.3,2.1.4-SNAPSHOT,1,'policy-drools' +policy/xacml-pdp,3.1.3,3.1.4-SNAPSHOT,1,'policy-xacml-pdp' +policy/distribution,3.1.3,3.1.4-SNAPSHOT,1,'policy-distribution' +policy/clamp,7.1.3,7.1.4-SNAPSHOT,8,'policy-clamp-ac-pf-ppnt':'policy-clamp-ac-k8s-ppnt':'policy-clamp-ac-http-ppnt':'policy-clamp-ac-a1pms-ppnt':'policy-clamp-runtime-acm':'policy-clamp-acm-element-impl':'policy-clamp-ac-kserve-ppnt':'policy-clamp-ac-sim-ppnt' +policy/gui,3.1.3,3.1.4-SNAPSHOT,2,'policy-gui' +policy/drools-applications,2.1.3,2.1.4-SNAPSHOT,1,'policy-pdpd-cl' diff --git a/integration/src/main/resources/release/pf_release_data.csv b/integration/src/main/resources/release/pf_release_data.csv index d70991fb..ba380748 100644 --- a/integration/src/main/resources/release/pf_release_data.csv +++ b/integration/src/main/resources/release/pf_release_data.csv @@ -1,14 +1,14 @@ Repo, Last Tag Version,Snapshot Version,Changed Files,Docker Images -policy/parent,4.1.2,4.1.3-SNAPSHOT,0, -policy/docker,3.1.2,3.1.3-SNAPSHOT,7,'policy-jre-alpine':'policy-jdk-alpine':'policy-db-migrator' -policy/common,2.1.2,2.1.3-SNAPSHOT,0, -policy/models,3.1.2,3.1.3-SNAPSHOT,3,'policy-models-simulator' -policy/api,3.1.2,3.1.3-SNAPSHOT,2,'policy-api' -policy/pap,3.1.2,3.1.3-SNAPSHOT,2,'policy-pap' -policy/apex-pdp,3.1.2,3.1.3-SNAPSHOT,3,'policy-apex-pdp' -policy/drools-pdp,2.1.2,2.1.3-SNAPSHOT,2,'policy-drools' -policy/xacml-pdp,3.1.2,3.1.3-SNAPSHOT,2,'policy-xacml-pdp' -policy/distribution,3.1.2,3.1.3-SNAPSHOT,2,'policy-distribution' -policy/clamp,7.1.2,7.1.3-SNAPSHOT,9,'policy-clamp-ac-pf-ppnt':'policy-clamp-ac-k8s-ppnt':'policy-clamp-ac-http-ppnt':'policy-clamp-ac-a1pms-ppnt':'policy-clamp-runtime-acm':'policy-clamp-acm-element-impl':'policy-clamp-ac-kserve-ppnt':'policy-clamp-ac-sim-ppnt' -policy/gui,3.1.2,3.1.3-SNAPSHOT,1,'policy-gui' -policy/drools-applications,2.1.2,2.1.3-SNAPSHOT,0,'policy-pdpd-cl' +policy/parent,4.1.4,5.0.0-SNAPSHOT,0, +policy/docker,3.1.3,4.0.0-SNAPSHOT,1,'policy-jre-alpine':'policy-jdk-alpine':'policy-db-migrator' +policy/common,2.1.3,3.0.0-SNAPSHOT,0, +policy/models,3.1.3,4.0.0-SNAPSHOT,2,'policy-models-simulator' +policy/api,3.1.3,4.0.0-SNAPSHOT,1,'policy-api' +policy/pap,3.1.3,4.0.0-SNAPSHOT,1,'policy-pap' +policy/apex-pdp,3.1.3,4.0.0-SNAPSHOT,1,'policy-apex-pdp' +policy/drools-pdp,2.1.3,3.0.0-SNAPSHOT,1,'policy-drools' +policy/xacml-pdp,3.1.3,4.0.0-SNAPSHOT,1,'policy-xacml-pdp' +policy/distribution,3.1.3,4.0.0-SNAPSHOT,1,'policy-distribution' +policy/clamp,7.1.3,8.0.0-SNAPSHOT,8,'policy-clamp-ac-pf-ppnt':'policy-clamp-ac-k8s-ppnt':'policy-clamp-ac-http-ppnt':'policy-clamp-ac-a1pms-ppnt':'policy-clamp-runtime-acm':'policy-clamp-acm-element-impl':'policy-clamp-ac-kserve-ppnt':'policy-clamp-ac-sim-ppnt' +policy/gui,3.1.3,4.0.0-SNAPSHOT,2,'policy-gui' +policy/drools-applications,2.1.3,3.0.0-SNAPSHOT,1,'policy-pdpd-cl' diff --git a/integration/src/main/scripts/release/updateRefs.sh b/integration/src/main/scripts/release/updateRefs.sh index 0d3131e9..22db3373 100755 --- a/integration/src/main/scripts/release/updateRefs.sh +++ b/integration/src/main/scripts/release/updateRefs.sh @@ -4,7 +4,7 @@ # ============LICENSE_START================================================ # ONAP # ========================================================================= -# Copyright (C) 2021-2022 Nordix Foundation. +# Copyright (C) 2021-2022,2024 Nordix Foundation. # ========================================================================= # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/pom.xml b/pom.xml index debd984d..511c6c1f 100644 --- a/pom.xml +++ b/pom.xml @@ -24,7 +24,7 @@ 4.0.0 org.onap.policy.parent policy-parent - 4.1.3-SNAPSHOT + 5.0.0-SNAPSHOT pom diff --git a/releases/4.1.3.yaml b/releases/4.1.3.yaml new file mode 100644 index 00000000..f7610d01 --- /dev/null +++ b/releases/4.1.3.yaml @@ -0,0 +1,4 @@ +distribution_type: 'maven' +version: '4.1.3' +project: 'policy-parent' +log_dir: 'policy-parent-maven-stage-master/1415/' diff --git a/releases/4.1.4.yaml b/releases/4.1.4.yaml new file mode 100644 index 00000000..7f2402b2 --- /dev/null +++ b/releases/4.1.4.yaml @@ -0,0 +1,4 @@ +distribution_type: 'maven' +version: '4.1.4' +project: 'policy-parent' +log_dir: 'policy-parent-maven-stage-master/1416/' diff --git a/resources/pom.xml b/resources/pom.xml index 873a85da..2648a57c 100644 --- a/resources/pom.xml +++ b/resources/pom.xml @@ -25,7 +25,7 @@ org.onap.policy.parent policy-parent - 4.1.3-SNAPSHOT + 5.0.0-SNAPSHOT policy-parent-resources diff --git a/version.properties b/version.properties index 68aaed8b..295674ed 100644 --- a/version.properties +++ b/version.properties @@ -2,9 +2,9 @@ # Note that these variables cannot be structured (e.g. : version.release or version.snapshot etc... ) # because they are used in Jenkins, whose plug-in doesn't support -major=4 -minor=1 -patch=3 +major=5 +minor=0 +patch=0 base_version=${major}.${minor}.${patch}