Added the new versioning validation for policy and policy type 45/100145/5
authorChenfei Gao <cgao@research.att.com>
Thu, 9 Jan 2020 18:33:12 +0000 (13:33 -0500)
committerChenfei Gao <cgao@research.att.com>
Mon, 13 Jan 2020 17:32:40 +0000 (12:32 -0500)
commitc73f78ef267ec0bb4552cdaf74f0a42e8078e2ee
tree3ab1be8a1fb3dd19154090291e17eb6b691f19c7
parent1d801e7c49105b19ac7bfd3f7addbac995fd1dc8
Added the new versioning validation for policy and policy type

The following rules are implemented to validate the version provided
in the POST payloads of policies and policy types:

1) If version field is not specified in POST payload, "406 - Not Acceptable"
   would be returned along with the message "mandantory version field is missing".
2) If the version is not in the DB, we simply insert it.
3) If the version is in the DB, "406 - Not Acceptable" is returned along with
   the message saying "specified version x.x.x" is already existing and the latest
   version is x.x.x. It can force the user to create a newer version than the latest one.
4) The same versioning validation is applied to legacy types of policies too
   so that everything is consistent.

Issue-ID: POLICY-2316
Change-Id: I395df0196a9d3073fd1f09060f943aeeb554d277
Signed-off-by: Chenfei Gao <cgao@research.att.com>
21 files changed:
main/src/main/java/org/onap/policy/api/main/rest/ApiRestController.java
main/src/main/java/org/onap/policy/api/main/rest/LegacyApiRestController.java
main/src/main/java/org/onap/policy/api/main/rest/provider/CommonModelProvider.java
main/src/main/java/org/onap/policy/api/main/rest/provider/LegacyGuardPolicyProvider.java
main/src/main/java/org/onap/policy/api/main/rest/provider/LegacyOperationalPolicyProvider.java
main/src/main/java/org/onap/policy/api/main/rest/provider/PolicyProvider.java
main/src/main/java/org/onap/policy/api/main/rest/provider/PolicyTypeProvider.java
main/src/test/java/org/onap/policy/api/main/rest/TestApiRestServer.java
main/src/test/java/org/onap/policy/api/main/rest/provider/TestLegacyGuardPolicyProvider.java
main/src/test/java/org/onap/policy/api/main/rest/provider/TestLegacyOperationalPolicyProvider.java
main/src/test/java/org/onap/policy/api/main/rest/provider/TestPolicyProvider.java
main/src/test/java/org/onap/policy/api/main/rest/provider/TestPolicyTypeProvider.java
main/src/test/resources/policies/vCPE.policies.optimization.input.tosca.v2.yaml [new file with mode: 0644]
main/src/test/resources/policies/vCPE.policy.duplicate.policyversion.json [new file with mode: 0644]
main/src/test/resources/policies/vCPE.policy.monitoring.input.tosca.v2.yaml [new file with mode: 0644]
main/src/test/resources/policies/vCPE.policy.no.policyversion.json [new file with mode: 0644]
main/src/test/resources/policies/vDNS.policy.guard.frequency.no.policyversion.json [new file with mode: 0644]
main/src/test/resources/policies/vDNS.policy.monitoring.input.tosca.v2.yaml [new file with mode: 0644]
main/src/test/resources/policies/vDNS.policy.operational.no.policyversion.json [new file with mode: 0644]
main/src/test/resources/policies/vFirewall.policy.monitoring.input.tosca.v2.yaml [new file with mode: 0644]
main/src/test/resources/policytypes/onap.policies.optimization.Resource.no.version.yaml [new file with mode: 0644]