Make type and type_version mandatory on policies 56/107256/1
authorliamfallon <liam.fallon@est.tech>
Wed, 6 May 2020 16:02:23 +0000 (17:02 +0100)
committerliamfallon <liam.fallon@est.tech>
Wed, 6 May 2020 16:02:27 +0000 (17:02 +0100)
Up until now, the "type" and "type_version" fields defaulted to "NULL"
and "0.0.0" respectively when they were not specified because the
"type_version" field was not always specified on policies in previous
releases. In cases where the "type_version" field was not specified, it
was assumend that a "0.0.0" version of the policy type existed. In
parallel, if the version field was not specified on the policy type, the
version was stored as 0.0.0.

This behaviour is now changed and the "type" and "type_version" fields
are now always mandatory.

Issue-ID: POLICY-2538
Change-Id: Ieec97f4a111edd13dbe31116c7549f07c19ef0aa
Signed-off-by: liamfallon <liam.fallon@est.tech>
main/src/test/java/org/onap/policy/api/main/rest/TestApiRestServer.java
main/src/test/java/org/onap/policy/api/main/rest/provider/TestPolicyProvider.java

index a3cd8d6..6674026 100644 (file)
@@ -317,7 +317,7 @@ public class TestApiRestServer {
         String toscaPolicy =
             ResourceUtils.getResourceAsString(TOSCA_POLICY_RESOURCE_NAMES[TOSCA_POLICIES_RESOURCE_NAMES.length - 1]);
 
-        toscaPolicy = toscaPolicy.replaceAll("onap.policies.monitoring.cdap.tca.hi.lo.app", "");
+        toscaPolicy = toscaPolicy.replaceAll("onap.policies.monitoring.cdap.tca.hi.lo.app", "IDontExist");
         TextFileUtils.putStringAsTextFile(toscaPolicy, "src/test/resources/policies/BadTestPolicy.yaml");
 
         Response rawResponse2 =
@@ -341,13 +341,14 @@ public class TestApiRestServer {
         String toscaPolicy =
             ResourceUtils.getResourceAsString(TOSCA_POLICY_RESOURCE_NAMES[TOSCA_POLICIES_RESOURCE_NAMES.length - 1]);
 
-        toscaPolicy = toscaPolicy.replaceAll("onap.policies.monitoring.cdap.tca.hi.lo.app", "");
+        toscaPolicy = toscaPolicy.replaceAll("onap.policies.monitoring.cdap.tca.hi.lo.app", "IDontExist");
         TextFileUtils.putStringAsTextFile(toscaPolicy, "src/test/resources/policies/BadTestPolicy.yaml");
 
         Response rawResponse2 = createResource(POLICIES, "src/test/resources/policies/BadTestPolicy.yaml");
         ErrorResponse errorResponse = rawResponse2.readEntity(ErrorResponse.class);
         assertEquals(Response.Status.NOT_ACCEPTABLE.getStatusCode(), rawResponse2.getStatus());
-        assertThat(errorResponse.getErrorMessage()).contains("policy type NULL:1.0.0 referenced in policy not found");
+        assertThat(errorResponse.getErrorMessage())
+            .contains("policy type IDontExist:1.0.0 referenced in policy not found");
     }
 
     @Test
index 6354242..0fcedbe 100644 (file)
@@ -246,8 +246,9 @@ public class TestPolicyProvider {
                 standardCoder.decode(badPolicyString, ToscaServiceTemplate.class);
             policyProvider.createPolicy("onap.policies.monitoring.cdap.tca.hi.lo.app", "1.0.0",
                 badPolicyServiceTemplate);
-        }).hasMessageContaining(
-            "policy type onap.policies.monitoring.cdap.tca.hi.lo.appxxx:0.0.0 referenced in policy not found");
+        }).hasMessage(
+            "PolicyType version not specified, the version of the PolicyType for this policy must be specified in the "
+                + "type_version field");
 
         assertThatThrownBy(() -> {
             String badPolicyString = ResourceUtils.getResourceAsString(POLICY_RESOURCE_WITH_BAD_POLICYTYPE_VERSION);