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 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.
General Setup
In policy/docker/csit/
./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 :
./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:
1 ./get-instance-ip.sh policy-distribution
2 ./get-instance-ip.sh policy-pap
Health check status & statistical data of running distribution system.
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
{"name":"Policy SSD","url":"policy-distribution","healthy":true,"code":200,"message":"alive"}
Expected result for statistics
{"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 :
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
So if we check the distribution statistics again
{"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
curl -k --user 'policyadmin:zb!XztG34' http://{POLICY_PAP_IP}:6969/policy/pap/v1/policies/status
Expected SUCCESS result
[{"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
curl -k --user 'policyadmin:zb!XztG34' http://{POLICY_PAP_IP}:6969/policy/pap/v1/policies/deployed
Expected success-count result
[{"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.
Policy Framework Administration API
Make sure to execute the delete steps in order to clean the setup after testing.