From fc07c32a4c01a2541c8061a37c3c6589c720e2b3 Mon Sep 17 00:00:00 2001 From: Pamela Dragosh Date: Mon, 21 Oct 2019 14:21:54 -0400 Subject: Use yaml policies in models-examples Now that yaml is supported, use those policies that are stored in the models-examples that are preloaded into the api. Fixed a minor checkstyle issue. Not sure why it was missed. Issue-ID: POLICY-2066 Change-Id: I2f4384a310bfa818555de5dacb477daf82fac6de Signed-off-by: Pamela Dragosh --- .../common/std/StdMatchableTranslator.java | 9 ++- .../OptimizationPdpApplicationTest.java | 19 ++++- .../onap.policies.Optimization-1.0.0.json | 66 ---------------- ...policies.optimization.AffinityPolicy-1.0.0.json | 54 ------------- ...policies.optimization.DistancePolicy-1.0.0.json | 89 ---------------------- ...licies.optimization.SubscriberPolicy-1.0.0.json | 43 ----------- 6 files changed, 20 insertions(+), 260 deletions(-) delete mode 100644 applications/optimization/src/test/resources/onap.policies.Optimization-1.0.0.json delete mode 100644 applications/optimization/src/test/resources/onap.policies.optimization.AffinityPolicy-1.0.0.json delete mode 100644 applications/optimization/src/test/resources/onap.policies.optimization.DistancePolicy-1.0.0.json delete mode 100644 applications/optimization/src/test/resources/onap.policies.optimization.SubscriberPolicy-1.0.0.json (limited to 'applications') diff --git a/applications/common/src/main/java/org/onap/policy/pdp/xacml/application/common/std/StdMatchableTranslator.java b/applications/common/src/main/java/org/onap/policy/pdp/xacml/application/common/std/StdMatchableTranslator.java index 7551f7e3..2d831f62 100644 --- a/applications/common/src/main/java/org/onap/policy/pdp/xacml/application/common/std/StdMatchableTranslator.java +++ b/applications/common/src/main/java/org/onap/policy/pdp/xacml/application/common/std/StdMatchableTranslator.java @@ -62,6 +62,7 @@ import oasis.names.tc.xacml._3_0.core.schema.wd_17.TargetType; import org.onap.policy.common.endpoints.parameters.RestServerParameters; import org.onap.policy.common.utils.coder.CoderException; import org.onap.policy.common.utils.coder.StandardCoder; +import org.onap.policy.common.utils.coder.StandardYamlCoder; import org.onap.policy.models.decisions.concepts.DecisionRequest; import org.onap.policy.models.decisions.concepts.DecisionResponse; import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicy; @@ -91,7 +92,7 @@ public class StdMatchableTranslator implements ToscaPolicyTranslator { private static final Logger LOGGER = LoggerFactory.getLogger(StdMatchableTranslator.class); private static final String POLICY_ID = "policy-id"; - private static final StandardCoder standardCoder = new StandardCoder(); + private static final StandardYamlCoder standardYamlCoder = new StandardYamlCoder(); private final Map matchablePolicyTypes = new HashMap<>(); @Setter @@ -549,7 +550,7 @@ public class StdMatchableTranslator implements ToscaPolicyTranslator { } LOGGER.info("Read in local policy type {}", policyTypePath.toAbsolutePath()); try { - ToscaServiceTemplate serviceTemplate = standardCoder.decode(new String(bytes, StandardCharsets.UTF_8), + ToscaServiceTemplate serviceTemplate = standardYamlCoder.decode(new String(bytes, StandardCharsets.UTF_8), ToscaServiceTemplate.class); JpaToscaServiceTemplate jtst = new JpaToscaServiceTemplate(); jtst.fromAuthorative(serviceTemplate); @@ -605,7 +606,7 @@ public class StdMatchableTranslator implements ToscaPolicyTranslator { // Store it locally // try { - standardCoder.encode(policyTypePath.toFile(), policyType); + standardYamlCoder.encode(policyTypePath.toFile(), policyType); } catch (CoderException e) { LOGGER.error("Failed to store {} locally to {}", policyTypeId, policyTypePath, e); } @@ -617,6 +618,6 @@ public class StdMatchableTranslator implements ToscaPolicyTranslator { private Path constructLocalFilePath(ToscaPolicyTypeIdentifier policyTypeId) { return Paths.get(this.pathForData.toAbsolutePath().toString(), policyTypeId.getName() + "-" - + policyTypeId.getVersion() + ".json"); + + policyTypeId.getVersion() + ".yaml"); } } diff --git a/applications/optimization/src/test/java/org/onap/policy/xacml/pdp/application/optimization/OptimizationPdpApplicationTest.java b/applications/optimization/src/test/java/org/onap/policy/xacml/pdp/application/optimization/OptimizationPdpApplicationTest.java index b39f5c7f..11a7a923 100644 --- a/applications/optimization/src/test/java/org/onap/policy/xacml/pdp/application/optimization/OptimizationPdpApplicationTest.java +++ b/applications/optimization/src/test/java/org/onap/policy/xacml/pdp/application/optimization/OptimizationPdpApplicationTest.java @@ -45,6 +45,7 @@ import org.junit.runners.MethodSorters; import org.onap.policy.common.endpoints.parameters.RestServerParameters; import org.onap.policy.common.utils.coder.CoderException; import org.onap.policy.common.utils.coder.StandardCoder; +import org.onap.policy.common.utils.resources.ResourceUtils; import org.onap.policy.common.utils.resources.TextFileUtils; import org.onap.policy.models.decisions.concepts.DecisionRequest; import org.onap.policy.models.decisions.concepts.DecisionResponse; @@ -66,10 +67,17 @@ public class OptimizationPdpApplicationTest { private static StandardCoder gson = new StandardCoder(); private static DecisionRequest requestAffinity; private static RestServerParameters clientParams; - private static String[] listPolicyTypeFiles = { "onap.policies.Optimization", + private static String[] listPolicyTypeFiles = { + "onap.policies.Optimization", "onap.policies.optimization.AffinityPolicy", "onap.policies.optimization.DistancePolicy", - "onap.policies.optimization.SubscriberPolicy"}; + "onap.policies.optimization.HpaPolicy", + "onap.policies.optimization.OptimizationPolicy", + "onap.policies.optimization.PciPolicy", + "onap.policies.optimization.QueryPolicy", + "onap.policies.optimization.SubscriberPolicy", + "onap.policies.optimization.Vim_fit", + "onap.policies.optimization.VnfPolicy"}; @ClassRule public static final TemporaryFolder policyFolder = new TemporaryFolder(); @@ -102,8 +110,10 @@ public class OptimizationPdpApplicationTest { // Copy the test policy types into data area // for (String policy : listPolicyTypeFiles) { - Files.copy(Paths.get("src/test/resources", policy + "-1.0.0.json"), - Paths.get(policyFolder.getRoot().getAbsolutePath(), policy + "-1.0.0.json")); + String policyType = ResourceUtils.getResourceAsString("policytypes/" + policy + ".yaml"); + LOGGER.info("Copying {}", policyType); + Files.write(Paths.get(policyFolder.getRoot().getAbsolutePath(), policy + "-1.0.0.yaml"), + policyType.getBytes()); } // // Load service @@ -135,6 +145,7 @@ public class OptimizationPdpApplicationTest { strDump.append(System.lineSeparator()); } LOGGER.debug("{}", strDump); + assertThat(service).isNotNull(); // // Tell it to initialize based on the properties file // we just built for it. diff --git a/applications/optimization/src/test/resources/onap.policies.Optimization-1.0.0.json b/applications/optimization/src/test/resources/onap.policies.Optimization-1.0.0.json deleted file mode 100644 index 8ee418e2..00000000 --- a/applications/optimization/src/test/resources/onap.policies.Optimization-1.0.0.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "tosca_definitions_version": "tosca_simple_yaml_1_0_0", - "policy_types": { - "onap.policies.Optimization": { - "derived_from": "tosca.policies.Root", - "version": "1.0.0", - "description": "The base policy type for all policies that govern optimization", - "properties": { - "scope": { - "description": "Scope for the policy - could be for a specific release.", - "type": "list", - "metadata": { - "matchable": true - }, - "required": true - }, - "services": { - "description": "One or more services that the policy applies to.", - "type": "list", - "metadata": { - "matchable": true - }, - "required": true, - "entry_schema": { - "type": "string" - } - }, - "resources": { - "description": "One or more VNF resources that the policy applies to.", - "type": "list", - "metadata": { - "matchable": true - }, - "required": true, - "entry_schema": { - "type": "string" - } - }, - "geography": { - "description": "One or more geographic regions", - "type": "list", - "metadata": { - "matchable": true - }, - "required": true, - "entry_schema": { - "type": "string", - "constraints": [ - { - "valid_values": [ - "US", - "International" - ] - } - ] - } - }, - "identity": { - "description": "Used internally for identification", - "type": "string", - "required": true - } - } - } - } -} \ No newline at end of file diff --git a/applications/optimization/src/test/resources/onap.policies.optimization.AffinityPolicy-1.0.0.json b/applications/optimization/src/test/resources/onap.policies.optimization.AffinityPolicy-1.0.0.json deleted file mode 100644 index d2b1b4b7..00000000 --- a/applications/optimization/src/test/resources/onap.policies.optimization.AffinityPolicy-1.0.0.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "tosca_definitions_version": "tosca_simple_yaml_1_0_0", - "policy_types": { - "onap.policies.optimization.AffinityPolicy": { - "derived_from": "onap.policies.Optimization", - "version": "1.0.0", - "type_version": "1.0.0", - "properties": { - "applicableResources": { - "type": "list", - "required": true, - "entry_schema": { - "type": "string", - "constraints": [ - { - "valid_values": [ - "any", - "all" - ] - } - ] - } - }, - "affinityProperties": { - "type": "policy.data.affinityProperties_properties", - "required": true - } - } - } - }, - "data_types": { - "policy.data.affinityProperties_properties": { - "derived_from": "tosca.nodes.Root", - "version": "1.0.0", - "properties": { - "qualifier": { - "type": "string", - "constraints": [ - { - "valid_values": [ - "same", - "different" - ] - } - ] - }, - "category": { - "type": "string", - "required": true - } - } - } - } -} \ No newline at end of file diff --git a/applications/optimization/src/test/resources/onap.policies.optimization.DistancePolicy-1.0.0.json b/applications/optimization/src/test/resources/onap.policies.optimization.DistancePolicy-1.0.0.json deleted file mode 100644 index 1b74c356..00000000 --- a/applications/optimization/src/test/resources/onap.policies.optimization.DistancePolicy-1.0.0.json +++ /dev/null @@ -1,89 +0,0 @@ -{ - "tosca_definitions_version": "tosca_simple_yaml_1_0_0", - "policy_types": { - "onap.policies.optimization.DistancePolicy": { - "derived_from": "onap.policies.Optimization", - "version": "1.0.0", - "properties": { - "applicableResources": { - "type": "list", - "required": true, - "entry_schema": { - "type": "string", - "constraints": [ - { - "valid_values": [ - "any", - "all" - ] - } - ] - } - }, - "distanceProperties": { - "type": "policy.data.distanceProperties_properties", - "required": true - } - } - } - }, - "data_types": { - "policy.data.distanceProperties_properties": { - "derived_from": "tosca.nodes.Root", - "properties": { - "locationInfo": { - "type": "string", - "required": true - }, - "distance": { - "type": "policy.data.distance_properties", - "required": true, - "entry_schema": { - "type": "policy.data.distance_properties" - } - } - } - }, - "policy.data.distance_properties": { - "derived_from": "tosca.nodes.Root", - "properties": { - "value": { - "type": "string", - "required": true - }, - "operator": { - "type": "list", - "required": true, - "entry_schema": { - "type": "string", - "constraints": [ - { - "valid_values": [ - "<", - "<=", - "\n", - ">=", - "=" - ] - } - ] - } - }, - "unit": { - "type": "list", - "required": true, - "entry_schema": { - "type": "string", - "constraints": [ - { - "valid_values": [ - "km" - ] - } - ] - } - } - } - } - } -} \ No newline at end of file diff --git a/applications/optimization/src/test/resources/onap.policies.optimization.SubscriberPolicy-1.0.0.json b/applications/optimization/src/test/resources/onap.policies.optimization.SubscriberPolicy-1.0.0.json deleted file mode 100644 index a239d829..00000000 --- a/applications/optimization/src/test/resources/onap.policies.optimization.SubscriberPolicy-1.0.0.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "tosca_definitions_version": "tosca_simple_yaml_1_0_0", - "policy_types": { - "onap.policies.optimization.SubscriberPolicy": { - "derived_from": "onap.policies.Optimization", - "version": "1.0.0", - "properties": { - "subscriberProperties": { - "type": "policy.data.subscriberProperties_properties", - "required": true - } - } - } - }, - "data_types": { - "policy.data.subscriberProperties_properties": { - "derived_from": "tosca.nodes.Root", - "properties": { - "subscriberName": { - "type": "list", - "required": true, - "entry_schema": { - "type": "string" - } - }, - "subscriberRole": { - "type": "list", - "required": true, - "entry_schema": { - "type": "string" - } - }, - "provStatus": { - "type": "list", - "required": true, - "entry_schema": { - "type": "string" - } - } - } - } - } -} \ No newline at end of file -- cgit 1.2.3-korg