From: lapentafd Date: Wed, 30 Mar 2022 10:37:20 +0000 (+0100) Subject: Distribution Smoke Test Documentation X-Git-Tag: 3.5.2~10^2 X-Git-Url: https://gerrit.onap.org/r/gitweb?a=commitdiff_plain;h=refs%2Fchanges%2F11%2F128211%2F4;p=policy%2Fparent.git Distribution Smoke Test Documentation Issue-ID: POLICY-3722 Signed-off-by: lapentafd Change-Id: I65ebc2d983404714edf34fc642371ed91cb52b71 --- diff --git a/docs/development/devtools/devtools.rst b/docs/development/devtools/devtools.rst index e2ccb887..a564d5d9 100644 --- a/docs/development/devtools/devtools.rst +++ b/docs/development/devtools/devtools.rst @@ -282,6 +282,7 @@ familiar with the Policy Framework components and test any local changes. api-smoke.rst pap-smoke.rst apex-smoke.rst + distribution-smoke.rst .. drools-smoke.rst diff --git a/docs/development/devtools/distribution-smoke.rst b/docs/development/devtools/distribution-smoke.rst new file mode 100644 index 00000000..8afa715a --- /dev/null +++ b/docs/development/devtools/distribution-smoke.rst @@ -0,0 +1,136 @@ +.. This work is licensed under a +.. Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 + +.. _policy-distribution-smoke-testing-label: + +Policy Distribution Smoke Test +################################ + +The policy-distribution smoke testing is executed against a custom ONAP docker installation as defined in the "policy/docker/csit/docker-compose-distribution-smoke.yml" +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. + +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 Farwarding functions. + +Use this script to easly 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: + +.. code:: + :number-lines: + + ./get-instance-ip.sh policy-distribution + ./get-instance-ip.sh policy-pap + +Health check status & statistical data of running distribution system. + +.. 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 + +.. code-block:: json + + {"code":200,"totalDistributionCount":0,"distributionSuccessCount":0,"distributionFailureCount":0,"totalDownloadCount":0,"downloadSuccessCount":0,"downloadFailureCount":0} + +Trigger Policy Distribution Core +------------------------------------------ + +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 : + +.. 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 + +.. image:: images/message-commissioning-participant.png + +So if we check the distribution statistics again + +.. code-block:: bash + + {"code":200,"totalDistributionCount":1,"distributionSuccessCount":1,"distributionFailureCount":0,"totalDownloadCount":1,"downloadSuccessCount":1,"downloadFailureCount":0} + +Execute policy-pap testing +------------------------------------ +.. note:: + The user for pap is different. + +Check the details of policies deployed + +.. 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 + + [{"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"}] + +Check number of policies deployed + +.. 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 needs to be performed sequentially one after another. And no input is required from user. + +`Policy Framework Administration API `_ + +Make sure to execute the delete steps in order to clean the setup after testing. diff --git a/docs/development/devtools/images/message-commissioning-participant.png b/docs/development/devtools/images/message-commissioning-participant.png new file mode 100644 index 00000000..82957848 Binary files /dev/null and b/docs/development/devtools/images/message-commissioning-participant.png differ