Database additions for Pdp group policy deploy/undeploy audit

Error rendering macro 'jira' : Unable to locate Jira server for this macro. It may be due to Application Link configuration.



Summary:

Develop a solution for storing information when policies are deployed or undeployed through the PAP deploy APIs.

What will this be used for?

For checking when policies were deployed or undeployed - mostly for this action as it deletes the policy - and these changes are not tracked anywhere.



Endpoints used for deploy/undeploy:



Ongoing proposal:

models:

Have a new entity/table for storing the policy (name and version), pdp group and type, action (DEPLOYMENT/UNDEPLOYMENT) and timestamp of action.

  • User is also added on this for future reference when policy can have more users to access the services.

Have dao methods for creating and retrieving row(s) from aforementioned table.





models-pap

/policy-models-pap/src/main/java/org/onap/policy/models/pap/concepts/PolicyAudit.java - concept

/policy-models-pap/src/main/java/org/onap/policy/models/pap/persistence/concepts/JpaPolicyAudit.java - persistence entity

/policy-models-pap/src/main/java/org/onap/policy/models/pap/persistence/provider/PolicyAuditProvider.java - dao actions



tests and a persistence.xml file would be added to src/test



policy-pap:

have the endpoints for deploy/undeploy updated with the call for storing the process for tracking.

Possibly have methods for creating a track object for each deploy/undeploy on /pap-main/src/main/java/org/onap/policy/pap/main/rest/SessionData.java

  • there are two methods - trackDeploy and trackUndeploy - where the call for new method(s) would be added

  • have a map list of audit (similar to create/update groups)

  • the new method(s) would create a track object and add to an auditList for when the updateDb method is called

have a new endpoint to get the audit on policy (need to confirm which fields would be used for filter - assuming pdp group or policy name/version, and begin/end times)



Questions:



  • How many records could this return? may want to force a limit on the record count and maximum time window. may want to require starting timestamp

    • limit set on API: 10

    • limit set on models provider: 50 (there's a validation to check if number is over models limit) - should we keep this and this range (10-50)

  • Does the table need to be cleaned up at times?

    • Error rendering macro 'jira' : Unable to locate Jira server for this macro. It may be due to Application Link configuration.

  • what sort of filters should be allowed? 

    • none

    • pdpGroup

    • policy (name and version)

    • group and policy (name and version)

  • Should still use timestamp on filter?

  • Should we filter by actions? (i.e. want to see only deployments)

  • Failure (result of a DEPLOY) is to be tracked as well?