From 001fe2af138c08755f68025eeffd8c7a25cc8e5c Mon Sep 17 00:00:00 2001 From: Ram Krishna Verma Date: Fri, 14 Aug 2020 11:11:36 -0400 Subject: Remove legacy operational policy from models Removing all the legacy operational policy related concepts, providers, examples etc from models repo. Issue-ID: POLICY-2764 Change-Id: Ie820271381674ccc4eaef0bd6379f673f67701e7 Signed-off-by: Ram Krishna Verma --- .../vCPE.policy.operational.legacy.input.json | 6 - .../vCPE.policy.operational.legacy.output.json | 6 - .../vDNS.policy.operational.legacy.input.json | 5 - .../vDNS.policy.operational.legacy.output.json | 5 - .../vFirewall.policy.operational.legacy.input.json | 5 - ...vFirewall.policy.operational.legacy.output.json | 5 - .../onap.policies.controlloop.Operational.yaml | 7 - .../models/provider/PolicyModelsProvider.java | 44 +-- .../impl/DatabasePolicyModelsProviderImpl.java | 35 +-- .../impl/DummyPolicyModelsProviderImpl.java | 27 +- .../impl/DatabasePolicyModelsProviderTest.java | 58 +--- .../models/provider/impl/DummyBadProviderImpl.java | 26 +- .../impl/DummyPolicyModelsProviderTest.java | 8 +- .../PolicyLegacyOperationalPersistenceTest.java | 161 ----------- .../legacy/concepts/LegacyOperationalPolicy.java | 47 ---- .../mapping/LegacyOperationalPolicyMapper.java | 128 --------- .../tosca/legacy/provider/LegacyProvider.java | 214 -------------- .../mapping/JpaToscaServiceTemplateMapper.java | 3 +- .../concepts/ToscaPolicyTypeFilterTest.java | 13 +- .../concepts/LegacyOperationalPolicyTest.java | 45 --- .../models/tosca/legacy/concepts/TestPojos.java | 62 ---- .../mapping/LegacyOperationalPolicyMapperTest.java | 118 -------- .../LegacyProvider4LegacyOperationalTest.java | 312 --------------------- 23 files changed, 14 insertions(+), 1326 deletions(-) delete mode 100644 models-examples/src/main/resources/policies/vCPE.policy.operational.legacy.input.json delete mode 100644 models-examples/src/main/resources/policies/vCPE.policy.operational.legacy.output.json delete mode 100644 models-examples/src/main/resources/policies/vDNS.policy.operational.legacy.input.json delete mode 100644 models-examples/src/main/resources/policies/vDNS.policy.operational.legacy.output.json delete mode 100644 models-examples/src/main/resources/policies/vFirewall.policy.operational.legacy.input.json delete mode 100644 models-examples/src/main/resources/policies/vFirewall.policy.operational.legacy.output.json delete mode 100644 models-examples/src/main/resources/policytypes/onap.policies.controlloop.Operational.yaml delete mode 100644 models-provider/src/test/java/org/onap/policy/models/provider/impl/PolicyLegacyOperationalPersistenceTest.java delete mode 100644 models-tosca/src/main/java/org/onap/policy/models/tosca/legacy/concepts/LegacyOperationalPolicy.java delete mode 100644 models-tosca/src/main/java/org/onap/policy/models/tosca/legacy/mapping/LegacyOperationalPolicyMapper.java delete mode 100644 models-tosca/src/main/java/org/onap/policy/models/tosca/legacy/provider/LegacyProvider.java delete mode 100644 models-tosca/src/test/java/org/onap/policy/models/tosca/legacy/concepts/LegacyOperationalPolicyTest.java delete mode 100644 models-tosca/src/test/java/org/onap/policy/models/tosca/legacy/concepts/TestPojos.java delete mode 100644 models-tosca/src/test/java/org/onap/policy/models/tosca/legacy/mapping/LegacyOperationalPolicyMapperTest.java delete mode 100644 models-tosca/src/test/java/org/onap/policy/models/tosca/legacy/provider/LegacyProvider4LegacyOperationalTest.java diff --git a/models-examples/src/main/resources/policies/vCPE.policy.operational.legacy.input.json b/models-examples/src/main/resources/policies/vCPE.policy.operational.legacy.input.json deleted file mode 100644 index 649a48d65..000000000 --- a/models-examples/src/main/resources/policies/vCPE.policy.operational.legacy.input.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "policy-id" : "operational.restart", - "policy-version" : "1", - "content" : "controlLoop%3A%0A%20%20version%3A%202.0.0%0A%20%20controlLoopName%3A%20ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e%0A%20%20trigger_policy%3A%20unique-policy-id-1-restart%0A%20%20timeout%3A%203600%0A%20%20abatement%3A%20true%0A%20%0Apolicies%3A%0A%20%20-%20id%3A%20unique-policy-id-1-restart%0A%20%20%20%20name%3A%20Restart%20the%20VM%0A%20%20%20%20description%3A%0A%20%20%20%20actor%3A%20APPC%0A%20%20%20%20recipe%3A%20Restart%0A%20%20%20%20target%3A%0A%20%20%20%20%20%20type%3A%20VM%0A%20%20%20%20retry%3A%203%0A%20%20%20%20timeout%3A%201200%0A%20%20%20%20success%3A%20final_success%0A%20%20%20%20failure%3A%20final_failure%0A%20%20%20%20failure_timeout%3A%20final_failure_timeout%0A%20%20%20%20failure_retries%3A%20final_failure_retries%0A%20%20%20%20failure_exception%3A%20final_failure_exception%0A%20%20%20%20failure_guard%3A%20final_failure_guard", - "controllerName" : "frankfurt" -} diff --git a/models-examples/src/main/resources/policies/vCPE.policy.operational.legacy.output.json b/models-examples/src/main/resources/policies/vCPE.policy.operational.legacy.output.json deleted file mode 100644 index 649a48d65..000000000 --- a/models-examples/src/main/resources/policies/vCPE.policy.operational.legacy.output.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "policy-id" : "operational.restart", - "policy-version" : "1", - "content" : "controlLoop%3A%0A%20%20version%3A%202.0.0%0A%20%20controlLoopName%3A%20ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e%0A%20%20trigger_policy%3A%20unique-policy-id-1-restart%0A%20%20timeout%3A%203600%0A%20%20abatement%3A%20true%0A%20%0Apolicies%3A%0A%20%20-%20id%3A%20unique-policy-id-1-restart%0A%20%20%20%20name%3A%20Restart%20the%20VM%0A%20%20%20%20description%3A%0A%20%20%20%20actor%3A%20APPC%0A%20%20%20%20recipe%3A%20Restart%0A%20%20%20%20target%3A%0A%20%20%20%20%20%20type%3A%20VM%0A%20%20%20%20retry%3A%203%0A%20%20%20%20timeout%3A%201200%0A%20%20%20%20success%3A%20final_success%0A%20%20%20%20failure%3A%20final_failure%0A%20%20%20%20failure_timeout%3A%20final_failure_timeout%0A%20%20%20%20failure_retries%3A%20final_failure_retries%0A%20%20%20%20failure_exception%3A%20final_failure_exception%0A%20%20%20%20failure_guard%3A%20final_failure_guard", - "controllerName" : "frankfurt" -} diff --git a/models-examples/src/main/resources/policies/vDNS.policy.operational.legacy.input.json b/models-examples/src/main/resources/policies/vDNS.policy.operational.legacy.input.json deleted file mode 100644 index 5ce44e0ba..000000000 --- a/models-examples/src/main/resources/policies/vDNS.policy.operational.legacy.input.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "policy-id" : "operational.scaleout", - "policy-version" : "1", - "content" : "controlLoop%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20version%3A%202.0.0%0A%20%20%20%20%20%20%20%20%20%20%20%20%20controlLoopName%3A%20ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3%0A%20%20%20%20%20%20%20%20%20%20%20%20%20trigger_policy%3A%20unique-policy-id-1-scale-up%0A%20%20%20%20%20%20%20%20%20%20%20%20%20timeout%3A%201200%0A%20%20%20%20%20%20%20%20%20%20%20%20%20abatement%3A%20false%0A%20%20%20%20%20%20%20%20%20%20%20policies%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20-%20id%3A%20unique-policy-id-1-scale-up%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20name%3A%20Create%20a%20new%20VF%20Module%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20description%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20actor%3A%20SO%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20recipe%3A%20VF%20Module%20Create%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20target%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20VNF%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20payload%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20requestParameters%3A%20'%7B%22usePreload%22%3Atrue%2C%22userParams%22%3A%5B%5D%7D'%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20configurationParameters%3A%20'%5B%7B%22ip-addr%22%3A%22%24.vf-module-topology.vf-module-parameters.param%5B9%5D%22%2C%22oam-ip-addr%22%3A%22%24.vf-module-topology.vf-module-parameters.param%5B16%5D%22%2C%22enabled%22%3A%22%24.vf-module-topology.vf-module-parameters.param%5B23%5D%22%7D%5D'%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20retry%3A%200%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20timeout%3A%201200%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20success%3A%20final_success%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20failure%3A%20final_failure%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20failure_timeout%3A%20final_failure_timeout%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20failure_retries%3A%20final_failure_retries%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20failure_exception%3A%20final_failure_exception%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20failure_guard%3A%20final_failure_guard" -} \ No newline at end of file diff --git a/models-examples/src/main/resources/policies/vDNS.policy.operational.legacy.output.json b/models-examples/src/main/resources/policies/vDNS.policy.operational.legacy.output.json deleted file mode 100644 index 5ce44e0ba..000000000 --- a/models-examples/src/main/resources/policies/vDNS.policy.operational.legacy.output.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "policy-id" : "operational.scaleout", - "policy-version" : "1", - "content" : "controlLoop%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20version%3A%202.0.0%0A%20%20%20%20%20%20%20%20%20%20%20%20%20controlLoopName%3A%20ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3%0A%20%20%20%20%20%20%20%20%20%20%20%20%20trigger_policy%3A%20unique-policy-id-1-scale-up%0A%20%20%20%20%20%20%20%20%20%20%20%20%20timeout%3A%201200%0A%20%20%20%20%20%20%20%20%20%20%20%20%20abatement%3A%20false%0A%20%20%20%20%20%20%20%20%20%20%20policies%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20-%20id%3A%20unique-policy-id-1-scale-up%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20name%3A%20Create%20a%20new%20VF%20Module%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20description%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20actor%3A%20SO%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20recipe%3A%20VF%20Module%20Create%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20target%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20VNF%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20payload%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20requestParameters%3A%20'%7B%22usePreload%22%3Atrue%2C%22userParams%22%3A%5B%5D%7D'%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20configurationParameters%3A%20'%5B%7B%22ip-addr%22%3A%22%24.vf-module-topology.vf-module-parameters.param%5B9%5D%22%2C%22oam-ip-addr%22%3A%22%24.vf-module-topology.vf-module-parameters.param%5B16%5D%22%2C%22enabled%22%3A%22%24.vf-module-topology.vf-module-parameters.param%5B23%5D%22%7D%5D'%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20retry%3A%200%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20timeout%3A%201200%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20success%3A%20final_success%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20failure%3A%20final_failure%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20failure_timeout%3A%20final_failure_timeout%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20failure_retries%3A%20final_failure_retries%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20failure_exception%3A%20final_failure_exception%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20failure_guard%3A%20final_failure_guard" -} \ No newline at end of file diff --git a/models-examples/src/main/resources/policies/vFirewall.policy.operational.legacy.input.json b/models-examples/src/main/resources/policies/vFirewall.policy.operational.legacy.input.json deleted file mode 100644 index bb8b907f8..000000000 --- a/models-examples/src/main/resources/policies/vFirewall.policy.operational.legacy.input.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "policy-id" : "operational.modifyconfig", - "policy-version" : "1", - "content" : "controlLoop%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20version%3A%202.0.0%0A%20%20%20%20%20%20%20%20%20%20%20%20%20controlLoopName%3A%20ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a%0A%20%20%20%20%20%20%20%20%20%20%20%20%20trigger_policy%3A%20unique-policy-id-1-modifyConfig%0A%20%20%20%20%20%20%20%20%20%20%20%20%20timeout%3A%201200%0A%20%20%20%20%20%20%20%20%20%20%20%20%20abatement%3A%20false%0A%20%0A%20%20%20%20%20%20%20%20%20%20%20policies%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20-%20id%3A%20unique-policy-id-1-modifyConfig%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20name%3A%20modify%20packet%20gen%20config%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20description%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20actor%3A%20APPC%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20recipe%3A%20ModifyConfig%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20target%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20TBD%20-%20Cannot%20be%20known%20until%20instantiation%20is%20done%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20resourceID%3A%20Eace933104d443b496b8.nodes.heat.vpg%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20VNF%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20retry%3A%200%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20timeout%3A%20300%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20success%3A%20final_success%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20failure%3A%20final_failure%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20failure_timeout%3A%20final_failure_timeout%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20failure_retries%3A%20final_failure_retries%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20failure_exception%3A%20final_failure_exception%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20failure_guard%3A%20final_failure_guard" -} \ No newline at end of file diff --git a/models-examples/src/main/resources/policies/vFirewall.policy.operational.legacy.output.json b/models-examples/src/main/resources/policies/vFirewall.policy.operational.legacy.output.json deleted file mode 100644 index bb8b907f8..000000000 --- a/models-examples/src/main/resources/policies/vFirewall.policy.operational.legacy.output.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "policy-id" : "operational.modifyconfig", - "policy-version" : "1", - "content" : "controlLoop%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20version%3A%202.0.0%0A%20%20%20%20%20%20%20%20%20%20%20%20%20controlLoopName%3A%20ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a%0A%20%20%20%20%20%20%20%20%20%20%20%20%20trigger_policy%3A%20unique-policy-id-1-modifyConfig%0A%20%20%20%20%20%20%20%20%20%20%20%20%20timeout%3A%201200%0A%20%20%20%20%20%20%20%20%20%20%20%20%20abatement%3A%20false%0A%20%0A%20%20%20%20%20%20%20%20%20%20%20policies%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20-%20id%3A%20unique-policy-id-1-modifyConfig%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20name%3A%20modify%20packet%20gen%20config%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20description%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20actor%3A%20APPC%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20recipe%3A%20ModifyConfig%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20target%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20TBD%20-%20Cannot%20be%20known%20until%20instantiation%20is%20done%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20resourceID%3A%20Eace933104d443b496b8.nodes.heat.vpg%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20VNF%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20retry%3A%200%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20timeout%3A%20300%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20success%3A%20final_success%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20failure%3A%20final_failure%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20failure_timeout%3A%20final_failure_timeout%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20failure_retries%3A%20final_failure_retries%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20failure_exception%3A%20final_failure_exception%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20failure_guard%3A%20final_failure_guard" -} \ No newline at end of file diff --git a/models-examples/src/main/resources/policytypes/onap.policies.controlloop.Operational.yaml b/models-examples/src/main/resources/policytypes/onap.policies.controlloop.Operational.yaml deleted file mode 100644 index f47934de5..000000000 --- a/models-examples/src/main/resources/policytypes/onap.policies.controlloop.Operational.yaml +++ /dev/null @@ -1,7 +0,0 @@ -tosca_definitions_version: tosca_simple_yaml_1_1_0 -policy_types: - onap.policies.controlloop.Operational: - derived_from: tosca.policies.Root - version: 1.0.0 - name: onap.policies.controlloop.Operational - description: Operational Policy for Control Loops Supporting Legacy YAML Policy Definition. \ No newline at end of file diff --git a/models-provider/src/main/java/org/onap/policy/models/provider/PolicyModelsProvider.java b/models-provider/src/main/java/org/onap/policy/models/provider/PolicyModelsProvider.java index a8fc4ed73..f2f7318e8 100644 --- a/models-provider/src/main/java/org/onap/policy/models/provider/PolicyModelsProvider.java +++ b/models-provider/src/main/java/org/onap/policy/models/provider/PolicyModelsProvider.java @@ -1,6 +1,7 @@ /*- * ============LICENSE_START======================================================= * Copyright (C) 2019-2020 Nordix Foundation. + * Modifications Copyright (C) 2020 Bell Canada. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -34,7 +35,6 @@ import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyFilter; import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyType; import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyTypeFilter; import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate; -import org.onap.policy.models.tosca.legacy.concepts.LegacyOperationalPolicy; /** * This interface describes the operations that are provided to users and components for reading objects from and @@ -193,48 +193,6 @@ public interface PolicyModelsProvider extends AutoCloseable { public ToscaServiceTemplate deletePolicy(@NonNull final String name, @NonNull final String version) throws PfModelException; - /** - * Get legacy operational policy. - * - * @param policyId ID of the policy - * @param policyVersion version of the policy, set to null to get the latest policy - * @return the policies found - * @throws PfModelException on errors getting policies - */ - public LegacyOperationalPolicy getOperationalPolicy(@NonNull final String policyId, final String policyVersion) - throws PfModelException; - - /** - * Create legacy operational policy. - * - * @param legacyOperationalPolicy the definition of the policy to be created. - * @return the created policy - * @throws PfModelException on errors creating policies - */ - public LegacyOperationalPolicy createOperationalPolicy( - @NonNull final LegacyOperationalPolicy legacyOperationalPolicy) throws PfModelException; - - /** - * Update legacy operational policy. - * - * @param legacyOperationalPolicy the definition of the policy to be updated - * @return the updated policy - * @throws PfModelException on errors updating policies - */ - public LegacyOperationalPolicy updateOperationalPolicy( - @NonNull final LegacyOperationalPolicy legacyOperationalPolicy) throws PfModelException; - - /** - * Delete legacy operational policy. - * - * @param policyId ID of the policy. - * @param policyVersion version of the policy - * @return the deleted policy - * @throws PfModelException on errors deleting policies - */ - public LegacyOperationalPolicy deleteOperationalPolicy(@NonNull final String policyId, - @NonNull final String policyVersion) throws PfModelException; - /** * Get PDP groups. * diff --git a/models-provider/src/main/java/org/onap/policy/models/provider/impl/DatabasePolicyModelsProviderImpl.java b/models-provider/src/main/java/org/onap/policy/models/provider/impl/DatabasePolicyModelsProviderImpl.java index 7d28b61c3..77a72adb0 100644 --- a/models-provider/src/main/java/org/onap/policy/models/provider/impl/DatabasePolicyModelsProviderImpl.java +++ b/models-provider/src/main/java/org/onap/policy/models/provider/impl/DatabasePolicyModelsProviderImpl.java @@ -2,6 +2,7 @@ * ============LICENSE_START======================================================= * Copyright (C) 2019-2020 Nordix Foundation. * Modifications Copyright (C) 2019-2020 AT&T Intellectual Property. All rights reserved. + * Modifications Copyright (C) 2020 Bell Canada. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -51,8 +52,6 @@ import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyTypeFilter; import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyTypeIdentifier; import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate; import org.onap.policy.models.tosca.authorative.provider.AuthorativeToscaProvider; -import org.onap.policy.models.tosca.legacy.concepts.LegacyOperationalPolicy; -import org.onap.policy.models.tosca.legacy.provider.LegacyProvider; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -241,38 +240,6 @@ public class DatabasePolicyModelsProviderImpl implements PolicyModelsProvider { return new AuthorativeToscaProvider().deletePolicy(pfDao, name, version); } - @Override - public LegacyOperationalPolicy getOperationalPolicy(@NonNull final String policyId, final String policyVersion) - throws PfModelException { - assertInitialized(); - return new LegacyProvider().getOperationalPolicy(pfDao, policyId, policyVersion); - } - - @Override - public LegacyOperationalPolicy createOperationalPolicy( - @NonNull final LegacyOperationalPolicy legacyOperationalPolicy) throws PfModelException { - assertInitialized(); - return new LegacyProvider().createOperationalPolicy(pfDao, legacyOperationalPolicy); - } - - @Override - public LegacyOperationalPolicy updateOperationalPolicy( - @NonNull final LegacyOperationalPolicy legacyOperationalPolicy) throws PfModelException { - assertInitialized(); - return new LegacyProvider().updateOperationalPolicy(pfDao, legacyOperationalPolicy); - } - - @Override - public LegacyOperationalPolicy deleteOperationalPolicy(@NonNull final String policyId, - @NonNull final String policyVersion) throws PfModelException { - assertInitialized(); - - assertPolicyNotDeployedInPdpGroup( - new ToscaPolicyIdentifier(policyId, policyVersion + LegacyProvider.LEGACY_MINOR_PATCH_SUFFIX)); - - return new LegacyProvider().deleteOperationalPolicy(pfDao, policyId, policyVersion); - } - @Override public List getPdpGroups(final String name) throws PfModelException { assertInitialized(); diff --git a/models-provider/src/main/java/org/onap/policy/models/provider/impl/DummyPolicyModelsProviderImpl.java b/models-provider/src/main/java/org/onap/policy/models/provider/impl/DummyPolicyModelsProviderImpl.java index 465685c3e..16f5a2b74 100644 --- a/models-provider/src/main/java/org/onap/policy/models/provider/impl/DummyPolicyModelsProviderImpl.java +++ b/models-provider/src/main/java/org/onap/policy/models/provider/impl/DummyPolicyModelsProviderImpl.java @@ -2,6 +2,7 @@ * ============LICENSE_START======================================================= * Copyright (C) 2019-2020 Nordix Foundation. * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved. + * Modifications Copyright (C) 2020 Bell Canada. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -41,7 +42,6 @@ import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyFilter; import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyType; import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyTypeFilter; import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate; -import org.onap.policy.models.tosca.legacy.concepts.LegacyOperationalPolicy; /** * This class provides a dummy implementation of the Policy Models Provider for the ONAP Policy Framework. @@ -139,31 +139,6 @@ public class DummyPolicyModelsProviderImpl implements PolicyModelsProvider { return getDummyResponse("dummyimpl/DummyToscaPolicyDeleteResponse.json"); } - @Override - - public LegacyOperationalPolicy getOperationalPolicy(final String policyId, final String policyVersion) - throws PfModelException { - return new LegacyOperationalPolicy(); - } - - @Override - public LegacyOperationalPolicy createOperationalPolicy(final LegacyOperationalPolicy legacyOperationalPolicy) - throws PfModelException { - return legacyOperationalPolicy; - } - - @Override - public LegacyOperationalPolicy updateOperationalPolicy(final LegacyOperationalPolicy legacyOperationalPolicy) - throws PfModelException { - return legacyOperationalPolicy; - } - - @Override - public LegacyOperationalPolicy deleteOperationalPolicy(final String policyId, final String policyVersion) - throws PfModelException { - return new LegacyOperationalPolicy(); - } - @Override public List getPdpGroups(final String name) throws PfModelException { return new ArrayList<>(); diff --git a/models-provider/src/test/java/org/onap/policy/models/provider/impl/DatabasePolicyModelsProviderTest.java b/models-provider/src/test/java/org/onap/policy/models/provider/impl/DatabasePolicyModelsProviderTest.java index 2a52c87ea..ac42304fd 100644 --- a/models-provider/src/test/java/org/onap/policy/models/provider/impl/DatabasePolicyModelsProviderTest.java +++ b/models-provider/src/test/java/org/onap/policy/models/provider/impl/DatabasePolicyModelsProviderTest.java @@ -2,6 +2,7 @@ * ============LICENSE_START======================================================= * Copyright (C) 2019-2020 Nordix Foundation. * Modifications Copyright (C) 2019 AT&T Intellectual Property. All rights reserved. + * Modifications Copyright (C) 2020 Bell Canada. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -48,7 +49,6 @@ import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyIdentifier; import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyTypeFilter; import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyTypeIdentifier; import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate; -import org.onap.policy.models.tosca.legacy.concepts.LegacyOperationalPolicy; /** * Test the database models provider implementation. @@ -60,8 +60,6 @@ public class DatabasePolicyModelsProviderTest { private static final String TEMPLATE_IS_NULL = "^serviceTemplate is marked .*on.*ull but is null$"; - private static final String POLICY_ID_IS_NULL = "^policyId is marked .*on.*ull but is null$"; - private static final String SUBGROUP_IS_NULL = "^pdpSubGroup is marked .*on.*ull but is null$"; private static final String GROUP_IS_NULL = "^pdpGroupName is marked .*on.*ull but is null$"; @@ -70,8 +68,6 @@ public class DatabasePolicyModelsProviderTest { private static final String FILTER_IS_NULL = "^filter is marked .*on.*ull but is null$"; - private static final String POLICY_ID = "policy_id"; - private static final String GROUP = "group"; private static final String VERSION_100 = "1.0.0"; @@ -194,38 +190,6 @@ public class DatabasePolicyModelsProviderTest { databaseProvider.deletePolicy("aaa", null); }).hasMessageMatching("^version is marked .*on.*ull but is null$"); - assertThatThrownBy(() -> { - databaseProvider.getOperationalPolicy(null, null); - }).hasMessageMatching(POLICY_ID_IS_NULL); - - assertThatThrownBy(() -> { - databaseProvider.getOperationalPolicy(null, ""); - }).hasMessageMatching(POLICY_ID_IS_NULL); - - assertThatThrownBy(() -> { - databaseProvider.getOperationalPolicy("", null); - }).hasMessage("service template not found in database"); - - assertThatThrownBy(() -> { - databaseProvider.createOperationalPolicy(null); - }).hasMessageMatching("^legacyOperationalPolicy is marked .*on.*ull but is null$"); - - assertThatThrownBy(() -> { - databaseProvider.updateOperationalPolicy(null); - }).hasMessageMatching("^legacyOperationalPolicy is marked .*on.*ull but is null$"); - - assertThatThrownBy(() -> { - databaseProvider.deleteOperationalPolicy(null, null); - }).hasMessageMatching(POLICY_ID_IS_NULL); - - assertThatThrownBy(() -> { - databaseProvider.deleteOperationalPolicy(null, ""); - }).hasMessageMatching(POLICY_ID_IS_NULL); - - assertThatThrownBy(() -> { - databaseProvider.deleteOperationalPolicy("", null); - }).hasMessageMatching("^policyVersion is marked .*on.*ull but is null$"); - assertThatThrownBy(() -> { databaseProvider.getFilteredPdpGroups(null); }).hasMessageMatching(FILTER_IS_NULL); @@ -368,26 +332,6 @@ public class DatabasePolicyModelsProviderTest { assertThatThrownBy(() -> databaseProvider.deletePolicy("Policy", "0.0.0").getToscaTopologyTemplate()) .hasMessage("service template not found in database"); - assertThatThrownBy(() -> { - databaseProvider.getOperationalPolicy(POLICY_ID, null); - }).hasMessage("service template not found in database"); - - assertThatThrownBy(() -> { - databaseProvider.getOperationalPolicy(POLICY_ID, "10"); - }).hasMessage("service template not found in database"); - - assertThatThrownBy(() -> { - databaseProvider.createOperationalPolicy(new LegacyOperationalPolicy()); - }).hasMessageMatching(NAME_IS_NULL); - - assertThatThrownBy(() -> { - databaseProvider.updateOperationalPolicy(new LegacyOperationalPolicy()); - }).hasMessageMatching(NAME_IS_NULL); - - assertThatThrownBy(() -> { - databaseProvider.deleteOperationalPolicy(POLICY_ID, "55"); - }).hasMessage("service template not found in database"); - assertEquals(0, databaseProvider.getPdpGroups(NAME).size()); assertEquals(0, databaseProvider.getFilteredPdpGroups(PdpGroupFilter.builder().build()).size()); diff --git a/models-provider/src/test/java/org/onap/policy/models/provider/impl/DummyBadProviderImpl.java b/models-provider/src/test/java/org/onap/policy/models/provider/impl/DummyBadProviderImpl.java index 80680c1fd..453f86633 100644 --- a/models-provider/src/test/java/org/onap/policy/models/provider/impl/DummyBadProviderImpl.java +++ b/models-provider/src/test/java/org/onap/policy/models/provider/impl/DummyBadProviderImpl.java @@ -2,6 +2,7 @@ * ============LICENSE_START======================================================= * Copyright (C) 2019-2020 Nordix Foundation. * Modifications Copyright (C) 2019 AT&T Intellectual Property. All rights reserved. + * Modifications Copyright (C) 2020 Bell Canada. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -40,7 +41,6 @@ import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyFilter; import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyType; import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyTypeFilter; import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate; -import org.onap.policy.models.tosca.legacy.concepts.LegacyOperationalPolicy; /** * Dummy implementation of {@link PolicyModelsProvider} with bad constructor. @@ -104,30 +104,6 @@ public class DummyBadProviderImpl implements PolicyModelsProvider { return null; } - @Override - public LegacyOperationalPolicy getOperationalPolicy(@NonNull final String policyId, final String policyVersion) - throws PfModelException { - return null; - } - - @Override - public LegacyOperationalPolicy createOperationalPolicy(@NonNull LegacyOperationalPolicy legacyOperationalPolicy) - throws PfModelException { - return null; - } - - @Override - public LegacyOperationalPolicy updateOperationalPolicy(@NonNull LegacyOperationalPolicy legacyOperationalPolicy) - throws PfModelException { - return null; - } - - @Override - public LegacyOperationalPolicy deleteOperationalPolicy(@NonNull String policyId, - @NonNull final String policyVersion) throws PfModelException { - return null; - } - @Override public List getPdpGroups(String name) throws PfModelException { return Collections.emptyList(); diff --git a/models-provider/src/test/java/org/onap/policy/models/provider/impl/DummyPolicyModelsProviderTest.java b/models-provider/src/test/java/org/onap/policy/models/provider/impl/DummyPolicyModelsProviderTest.java index 484922e20..7fc37afe9 100644 --- a/models-provider/src/test/java/org/onap/policy/models/provider/impl/DummyPolicyModelsProviderTest.java +++ b/models-provider/src/test/java/org/onap/policy/models/provider/impl/DummyPolicyModelsProviderTest.java @@ -2,6 +2,7 @@ * ============LICENSE_START======================================================= * Copyright (C) 2019-2020 Nordix Foundation. * Modifications Copyright (C) 2019 AT&T Intellectual Property. All rights reserved. + * Modifications Copyright (C) 2020 Bell Canada. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -39,7 +40,6 @@ import org.onap.policy.models.provider.PolicyModelsProviderParameters; import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyFilter; import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyTypeFilter; import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate; -import org.onap.policy.models.tosca.legacy.concepts.LegacyOperationalPolicy; /** * Test the dummy models provider implementation. @@ -48,7 +48,6 @@ import org.onap.policy.models.tosca.legacy.concepts.LegacyOperationalPolicy; */ public class DummyPolicyModelsProviderTest { - private static final String POLICY_ID = "policy_id"; private static final String VERSION = "version"; @Test @@ -96,11 +95,6 @@ public class DummyPolicyModelsProviderTest { assertNotNull(dummyProvider.updatePolicies(new ToscaServiceTemplate())); assertNotNull(dummyProvider.deletePolicy("name", VERSION)); - assertNotNull(dummyProvider.getOperationalPolicy(POLICY_ID, "1")); - assertNotNull(dummyProvider.createOperationalPolicy(new LegacyOperationalPolicy())); - assertNotNull(dummyProvider.updateOperationalPolicy(new LegacyOperationalPolicy())); - assertNotNull(dummyProvider.deleteOperationalPolicy(POLICY_ID, "1")); - assertTrue(dummyProvider.getPdpGroups("name").isEmpty()); assertTrue(dummyProvider.getFilteredPdpGroups(PdpGroupFilter.builder().build()).isEmpty()); assertTrue(dummyProvider.createPdpGroups(new ArrayList<>()).isEmpty()); diff --git a/models-provider/src/test/java/org/onap/policy/models/provider/impl/PolicyLegacyOperationalPersistenceTest.java b/models-provider/src/test/java/org/onap/policy/models/provider/impl/PolicyLegacyOperationalPersistenceTest.java deleted file mode 100644 index e0250dc3a..000000000 --- a/models-provider/src/test/java/org/onap/policy/models/provider/impl/PolicyLegacyOperationalPersistenceTest.java +++ /dev/null @@ -1,161 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2019-2020 Nordix Foundation. - * Modifications Copyright (C) 2020 AT&T. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.policy.models.provider.impl; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; - -import java.net.URISyntaxException; -import java.util.Base64; -import java.util.Set; -import lombok.NonNull; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; -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.models.base.PfModelException; -import org.onap.policy.models.provider.PolicyModelsProvider; -import org.onap.policy.models.provider.PolicyModelsProviderFactory; -import org.onap.policy.models.provider.PolicyModelsProviderParameters; -import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate; -import org.onap.policy.models.tosca.legacy.concepts.LegacyOperationalPolicy; -import org.yaml.snakeyaml.Yaml; - -/** - * Test persistence of monitoring policies to and from the database. - * - * @author Liam Fallon (liam.fallon@est.tech) - */ -public class PolicyLegacyOperationalPersistenceTest { - private StandardCoder standardCoder; - - private PolicyModelsProvider databaseProvider; - - // @formatter:off - private String[] policyInputResourceNames = { - "policies/vCPE.policy.operational.legacy.input.json", - "policies/vDNS.policy.operational.legacy.input.json", - "policies/vFirewall.policy.operational.legacy.input.json" - }; - - private String[] policyOutputResourceNames = { - "policies/vCPE.policy.operational.legacy.output.json", - "policies/vDNS.policy.operational.legacy.output.json", - "policies/vFirewall.policy.operational.legacy.output.json" - }; - // @formatter:on - - /** - * Initialize provider. - * - * @throws PfModelException on exceptions in the tests - * @throws CoderException on JSON encoding and decoding errors - */ - @Before - public void setupParameters() throws Exception { - // H2, use "org.mariadb.jdbc.Driver" and "jdbc:mariadb://localhost:3306/policy" for locally installed MariaDB - - PolicyModelsProviderParameters parameters = new PolicyModelsProviderParameters(); - parameters.setDatabaseDriver("org.h2.Driver"); - parameters.setDatabaseUrl("jdbc:h2:mem:testdb"); - parameters.setDatabaseUser("policy"); - parameters.setDatabasePassword(Base64.getEncoder().encodeToString("P01icY".getBytes())); - parameters.setPersistenceUnit("ToscaConceptTest"); - - databaseProvider = new PolicyModelsProviderFactory().createPolicyModelsProvider(parameters); - - createPolicyTypes(); - } - - /** - * Set up standard coder. - */ - @Before - public void setupStandardCoder() { - standardCoder = new StandardCoder(); - } - - @After - public void teardown() throws Exception { - databaseProvider.close(); - } - - @Test - public void testLegacyOperationalPolicyPersistence() throws Exception { - for (int i = 0; i < policyInputResourceNames.length; i++) { - String policyInputString = ResourceUtils.getResourceAsString(policyInputResourceNames[i]); - String policyOutputString = ResourceUtils.getResourceAsString(policyOutputResourceNames[i]); - testJsonStringPolicyPersistence(policyInputString, policyOutputString); - } - } - - /** - * Check persistence of a policy. - * - * @param policyInputString the policy as a string - * @param policyOutputString the expected output string - * @throws Exception any exception thrown - */ - public void testJsonStringPolicyPersistence(@NonNull final String policyInputString, - final String policyOutputString) throws Exception { - LegacyOperationalPolicy lop = standardCoder.decode(policyInputString, LegacyOperationalPolicy.class); - - assertNotNull(lop); - - LegacyOperationalPolicy createdLop = databaseProvider.createOperationalPolicy(lop); - assertEquals(createdLop, lop); - - LegacyOperationalPolicy gotLop = databaseProvider.getOperationalPolicy(lop.getPolicyId(), null); - assertEquals(gotLop, lop); - - LegacyOperationalPolicy updatedLop = databaseProvider.updateOperationalPolicy(lop); - assertEquals(gotLop, updatedLop); - - LegacyOperationalPolicy deletedLop = databaseProvider.deleteOperationalPolicy(lop.getPolicyId(), "1"); - assertEquals(gotLop, deletedLop); - - String actualRetrievedJson = standardCoder.encode(gotLop); - - // All of this dash/underscore stuff is to avoid a checkstyle error around escaping unicode characters - assertEquals( - policyOutputString.replaceAll("\\s+", "").replaceAll("u0027", "_-_-_-_").replaceAll("\\\\_-_-_-_", "'"), - actualRetrievedJson.replaceAll("\\s+", "").replaceAll("u0027", "_-_-_-_").replaceAll("\\\\_-_-_-_", - "'")); - } - - private void createPolicyTypes() throws CoderException, PfModelException, URISyntaxException { - Set policyTypeResources = ResourceUtils.getDirectoryContents("policytypes"); - - for (String policyTypeResource : policyTypeResources) { - Object yamlObject = new Yaml().load(ResourceUtils.getResourceAsString(policyTypeResource)); - String yamlAsJsonString = new StandardCoder().encode(yamlObject); - - ToscaServiceTemplate toscaServiceTemplatePolicyType = - standardCoder.decode(yamlAsJsonString, ToscaServiceTemplate.class); - - assertNotNull(toscaServiceTemplatePolicyType); - databaseProvider.createPolicyTypes(toscaServiceTemplatePolicyType); - } - } -} diff --git a/models-tosca/src/main/java/org/onap/policy/models/tosca/legacy/concepts/LegacyOperationalPolicy.java b/models-tosca/src/main/java/org/onap/policy/models/tosca/legacy/concepts/LegacyOperationalPolicy.java deleted file mode 100644 index a87fab1e0..000000000 --- a/models-tosca/src/main/java/org/onap/policy/models/tosca/legacy/concepts/LegacyOperationalPolicy.java +++ /dev/null @@ -1,47 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2019 Nordix Foundation. - * Modifications Copyright (C) 2019-2020 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.policy.models.tosca.legacy.concepts; - -import com.google.gson.annotations.SerializedName; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -/** - * Definition of a legacy operational policy stored as a TOSCA policy. - * - * @author Liam Fallon (liam.fallon@est.tech) - */ -@Data -public class LegacyOperationalPolicy { - - @ApiModelProperty(name = "policy-id") - @SerializedName("policy-id") - private String policyId; - - @ApiModelProperty(name = "policy-version") - @SerializedName("policy-version") - private String policyVersion; - - private String content; - private String controllerName; - -} \ No newline at end of file diff --git a/models-tosca/src/main/java/org/onap/policy/models/tosca/legacy/mapping/LegacyOperationalPolicyMapper.java b/models-tosca/src/main/java/org/onap/policy/models/tosca/legacy/mapping/LegacyOperationalPolicyMapper.java deleted file mode 100644 index ffa6f8b27..000000000 --- a/models-tosca/src/main/java/org/onap/policy/models/tosca/legacy/mapping/LegacyOperationalPolicyMapper.java +++ /dev/null @@ -1,128 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2019-2020 Nordix Foundation. - * Modifications Copyright (C) 2020 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.policy.models.tosca.legacy.mapping; - -import java.util.HashMap; -import java.util.Map; -import javax.ws.rs.core.Response; -import org.onap.policy.models.base.PfConceptKey; -import org.onap.policy.models.base.PfModelRuntimeException; -import org.onap.policy.models.tosca.legacy.concepts.LegacyOperationalPolicy; -import org.onap.policy.models.tosca.simple.concepts.JpaToscaPolicies; -import org.onap.policy.models.tosca.simple.concepts.JpaToscaPolicy; -import org.onap.policy.models.tosca.simple.concepts.JpaToscaServiceTemplate; -import org.onap.policy.models.tosca.simple.concepts.JpaToscaTopologyTemplate; -import org.onap.policy.models.tosca.simple.mapping.JpaToscaServiceTemplateMapper; -import org.onap.policy.models.tosca.utils.ToscaUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * This class maps a legacy operational policy to and from a TOSCA service template. - * - * @author Liam Fallon (liam.fallon@est.tech) - */ -public class LegacyOperationalPolicyMapper - implements JpaToscaServiceTemplateMapper { - - // Property name for the operational policy content - private static final String CONTENT_PROPERTY = "content"; - private static final String CONTROLLER_PROPERTY = "controllerName"; - - private static final Logger LOGGER = LoggerFactory.getLogger(LegacyOperationalPolicyMapper.class); - - private static final PfConceptKey LEGACY_OPERATIONAL_TYPE = - new PfConceptKey("onap.policies.controlloop.Operational", "1.0.0"); - - @Override - public JpaToscaServiceTemplate toToscaServiceTemplate(final LegacyOperationalPolicy legacyOperationalPolicy) { - String incomingVersion = legacyOperationalPolicy.getPolicyVersion(); - if (incomingVersion == null) { - incomingVersion = "1"; - } - - PfConceptKey policyKey = new PfConceptKey(legacyOperationalPolicy.getPolicyId(), incomingVersion + ".0.0"); - - final JpaToscaPolicy toscaPolicy = new JpaToscaPolicy(policyKey); - - toscaPolicy.setType(LEGACY_OPERATIONAL_TYPE); - - final Map propertyMap = new HashMap<>(); - toscaPolicy.setProperties(propertyMap); - toscaPolicy.getProperties().put(CONTENT_PROPERTY, legacyOperationalPolicy.getContent()); - if (legacyOperationalPolicy.getControllerName() != null) { - toscaPolicy.getProperties().put(CONTROLLER_PROPERTY, legacyOperationalPolicy.getControllerName()); - } - - final JpaToscaServiceTemplate serviceTemplate = new JpaToscaServiceTemplate(); - serviceTemplate.setToscaDefinitionsVersion("tosca_simple_yaml_1_1_0"); - - serviceTemplate.setTopologyTemplate(new JpaToscaTopologyTemplate()); - - serviceTemplate.getTopologyTemplate().setPolicies(new JpaToscaPolicies()); - serviceTemplate.getTopologyTemplate().getPolicies().getConceptMap().put(policyKey, toscaPolicy); - - return serviceTemplate; - } - - @Override - public LegacyOperationalPolicy fromToscaServiceTemplate(final JpaToscaServiceTemplate serviceTemplate) { - ToscaUtils.assertPoliciesExist(serviceTemplate); - - if (serviceTemplate.getTopologyTemplate().getPolicies().getConceptMap().size() > 1) { - String errorMessage = "more than one policy found in service template"; - LOGGER.warn(errorMessage); - throw new PfModelRuntimeException(Response.Status.BAD_REQUEST, errorMessage); - } - - // Get the policy - final JpaToscaPolicy toscaPolicy = - serviceTemplate.getTopologyTemplate().getPolicies().getAll(null).iterator().next(); - - final LegacyOperationalPolicy legacyOperationalPolicy = new LegacyOperationalPolicy(); - legacyOperationalPolicy.setPolicyId(toscaPolicy.getKey().getName()); - legacyOperationalPolicy.setPolicyVersion(Integer.toString(toscaPolicy.getKey().getMajorVersion())); - - if (toscaPolicy.getProperties() == null) { - String errorMessage = "no properties defined on TOSCA policy"; - LOGGER.warn(errorMessage); - throw new PfModelRuntimeException(Response.Status.BAD_REQUEST, errorMessage); - } - - String content = toscaPolicy.getProperties().get(CONTENT_PROPERTY); - - if (content == null) { - String errorMessage = "property \"content\" not defined on TOSCA policy"; - LOGGER.warn(errorMessage); - throw new PfModelRuntimeException(Response.Status.BAD_REQUEST, errorMessage); - } - - legacyOperationalPolicy.setContent(content); - - String controllerName = toscaPolicy.getProperties().get(CONTROLLER_PROPERTY); - if (controllerName != null) { - legacyOperationalPolicy.setControllerName(controllerName); - } - - return legacyOperationalPolicy; - } -} diff --git a/models-tosca/src/main/java/org/onap/policy/models/tosca/legacy/provider/LegacyProvider.java b/models-tosca/src/main/java/org/onap/policy/models/tosca/legacy/provider/LegacyProvider.java deleted file mode 100644 index 4d03f0560..000000000 --- a/models-tosca/src/main/java/org/onap/policy/models/tosca/legacy/provider/LegacyProvider.java +++ /dev/null @@ -1,214 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2019-2020 Nordix Foundation. - * Copyright (C) 2020 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.policy.models.tosca.legacy.provider; - -import java.util.Map; -import javax.ws.rs.core.Response; -import lombok.NonNull; -import org.onap.policy.models.base.PfConceptKey; -import org.onap.policy.models.base.PfModelException; -import org.onap.policy.models.base.PfModelRuntimeException; -import org.onap.policy.models.dao.PfDao; -import org.onap.policy.models.tosca.legacy.concepts.LegacyOperationalPolicy; -import org.onap.policy.models.tosca.legacy.mapping.LegacyOperationalPolicyMapper; -import org.onap.policy.models.tosca.simple.concepts.JpaToscaPolicy; -import org.onap.policy.models.tosca.simple.concepts.JpaToscaServiceTemplate; -import org.onap.policy.models.tosca.simple.provider.SimpleToscaProvider; -import org.onap.policy.models.tosca.utils.ToscaUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * This class provides the provision of information on TOSCA concepts in the database to callers in legacy formats. - * - * @author Liam Fallon (liam.fallon@est.tech) - */ -public class LegacyProvider { - private static final Logger LOGGER = LoggerFactory.getLogger(LegacyProvider.class); - - public static final String LEGACY_MINOR_PATCH_SUFFIX = ".0.0"; - - // Recurring constants - private static final String NO_POLICY_FOUND_FOR_POLICY = "no policy found for policy: "; - - /** - * Get legacy operational policy. - * - * @param dao the DAO to use to access the database - * @param policyId ID of the policy. - * @param policyVersion version of the policy. - * @return the policies found - * @throws PfModelException on errors getting policies - */ - public LegacyOperationalPolicy getOperationalPolicy(@NonNull final PfDao dao, @NonNull final String policyId, - final String policyVersion) throws PfModelException { - - LOGGER.debug("->getOperationalPolicy: policyId={}, policyVersion={}", policyId, policyVersion); - - LegacyOperationalPolicy legacyOperationalPolicy = - new LegacyOperationalPolicyMapper().fromToscaServiceTemplate(getLegacyPolicy(dao, policyId, policyVersion)); - - LOGGER.debug("<-getOperationalPolicy: policyId={}, policyVersion={}, legacyOperationalPolicy={}", policyId, - policyVersion, legacyOperationalPolicy); - return legacyOperationalPolicy; - } - - /** - * Create legacy operational policy. - * - * @param dao the DAO to use to access the database - * @param legacyOperationalPolicy the definition of the policy to be created. - * @return the created policy - * @throws PfModelException on errors creating policies - */ - public LegacyOperationalPolicy createOperationalPolicy(@NonNull final PfDao dao, - @NonNull final LegacyOperationalPolicy legacyOperationalPolicy) throws PfModelException { - - LOGGER.debug("->createOperationalPolicy: legacyOperationalPolicy={}", legacyOperationalPolicy); - - JpaToscaServiceTemplate legacyOperationalServiceTemplate = - new LegacyOperationalPolicyMapper().toToscaServiceTemplate(legacyOperationalPolicy); - - new SimpleToscaProvider().createPolicies(dao, legacyOperationalServiceTemplate); - - LegacyOperationalPolicy createdLegacyOperationalPolicy = - new LegacyOperationalPolicyMapper().fromToscaServiceTemplate(legacyOperationalServiceTemplate); - - LOGGER.debug("<-createOperationalPolicy: createdLegacyOperationalPolicy={}", createdLegacyOperationalPolicy); - return createdLegacyOperationalPolicy; - } - - /** - * Update legacy operational policy. - * - * @param dao the DAO to use to access the database - * @param legacyOperationalPolicy the definition of the policy to be updated - * @return the updated policy - * @throws PfModelException on errors updating policies - */ - public LegacyOperationalPolicy updateOperationalPolicy(@NonNull final PfDao dao, - @NonNull final LegacyOperationalPolicy legacyOperationalPolicy) throws PfModelException { - - LOGGER.debug("->updateOperationalPolicy: legacyOperationalPolicy={}", legacyOperationalPolicy); - JpaToscaServiceTemplate incomingServiceTemplate = - new LegacyOperationalPolicyMapper().toToscaServiceTemplate(legacyOperationalPolicy); - JpaToscaServiceTemplate outgoingingServiceTemplate = - new SimpleToscaProvider().updatePolicies(dao, incomingServiceTemplate); - - LegacyOperationalPolicy updatedLegacyOperationalPolicy = - new LegacyOperationalPolicyMapper().fromToscaServiceTemplate(outgoingingServiceTemplate); - - LOGGER.debug("<-updateOperationalPolicy: updatedLegacyOperationalPolicy={}", updatedLegacyOperationalPolicy); - return updatedLegacyOperationalPolicy; - } - - /** - * Delete legacy operational policy. - * - * @param dao the DAO to use to access the database - * @param policyId ID of the policy. - * @param policyVersion version of the policy. - * @return the deleted policy - * @throws PfModelException on errors deleting policies - */ - public LegacyOperationalPolicy deleteOperationalPolicy(@NonNull final PfDao dao, @NonNull final String policyId, - @NonNull final String policyVersion) throws PfModelException { - - LOGGER.debug("->deleteOperationalPolicy: policyId={}, policyVersion={}", policyId, policyVersion); - - JpaToscaServiceTemplate deleteServiceTemplate = new SimpleToscaProvider().deletePolicy(dao, - new PfConceptKey(policyId, policyVersion + LEGACY_MINOR_PATCH_SUFFIX)); - LegacyOperationalPolicy legacyOperationalPolicy = - new LegacyOperationalPolicyMapper().fromToscaServiceTemplate(deleteServiceTemplate); - - LOGGER.debug("<-deleteOperationalPolicy: policyId={}, policyVersion={}, legacyOperationalPolicy={}", policyId, - policyVersion, legacyOperationalPolicy); - return legacyOperationalPolicy; - } - - /** - * Get the JPA Policy for a policy ID and version. - * - * @param dao The DAO to search - * @param policyId the policy ID to search for - * @param policyVersion the policy version to search for - * @return the JPA policy found - * @throws PfModelException if a policy is not found - */ - private JpaToscaServiceTemplate getLegacyPolicy(final PfDao dao, final String policyId, final String policyVersion) - throws PfModelException { - JpaToscaServiceTemplate foundPolicyServiceTemplate = null; - if (policyVersion == null) { - foundPolicyServiceTemplate = getLatestPolicy(dao, policyId); - } else { - foundPolicyServiceTemplate = - new SimpleToscaProvider().getPolicies(dao, policyId, policyVersion + LEGACY_MINOR_PATCH_SUFFIX); - } - - if (foundPolicyServiceTemplate == null) { - String errorMessage = NO_POLICY_FOUND_FOR_POLICY + policyId + ':' + policyVersion; - LOGGER.warn(errorMessage); - throw new PfModelRuntimeException(Response.Status.BAD_REQUEST, errorMessage); - } - - return foundPolicyServiceTemplate; - } - - /** - * Get the latest policy for a policy ID. - * - * @param dao The DAO to read from - * @param policyId the ID of the policy - * @return the policy - * @throws PfModelException on exceptions getting the policies - */ - private JpaToscaServiceTemplate getLatestPolicy(final PfDao dao, final String policyId) throws PfModelException { - // Get all the policies in the database and check the policy ID against the policies returned - JpaToscaServiceTemplate serviceTemplate = new SimpleToscaProvider().getPolicies(dao, policyId, null); - - if (!ToscaUtils.doPoliciesExist(serviceTemplate)) { - return null; - } - - // Find the latest policy that matches the ID - final Map policyMap = - serviceTemplate.getTopologyTemplate().getPolicies().getConceptMap(); - PfConceptKey newestPolicyKey = null; - - for (JpaToscaPolicy policy : policyMap.values()) { - if (!policyId.equals(policy.getKey().getName())) { - continue; - } - - // We found a matching policy - if (newestPolicyKey == null || policy.getKey().isNewerThan(newestPolicyKey)) { - // First policy found - newestPolicyKey = policy.getKey(); - } - } - - final PfConceptKey newestPolicyFinalKey = newestPolicyKey; - policyMap.keySet().removeIf(key -> !key.equals(newestPolicyFinalKey)); - - return serviceTemplate; - } -} diff --git a/models-tosca/src/main/java/org/onap/policy/models/tosca/simple/mapping/JpaToscaServiceTemplateMapper.java b/models-tosca/src/main/java/org/onap/policy/models/tosca/simple/mapping/JpaToscaServiceTemplateMapper.java index e7a4056f7..91292f4f0 100644 --- a/models-tosca/src/main/java/org/onap/policy/models/tosca/simple/mapping/JpaToscaServiceTemplateMapper.java +++ b/models-tosca/src/main/java/org/onap/policy/models/tosca/simple/mapping/JpaToscaServiceTemplateMapper.java @@ -1,6 +1,7 @@ /*- * ============LICENSE_START======================================================= * Copyright (C) 2019 Nordix Foundation. + * Modifications Copyright (C) 2020 Bell Canada. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -23,7 +24,7 @@ package org.onap.policy.models.tosca.simple.mapping; import org.onap.policy.models.tosca.simple.concepts.JpaToscaServiceTemplate; /** - * This interface is used to map legacy and proprietary policies into and out of TOSCA service templates. + * This interface is used to map proprietary policies into and out of TOSCA service templates. * * @author Liam Fallon (liam.fallon@est.tech) * @param the type for the incoming policy definition diff --git a/models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/concepts/ToscaPolicyTypeFilterTest.java b/models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/concepts/ToscaPolicyTypeFilterTest.java index 82f100e89..0d2d69482 100644 --- a/models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/concepts/ToscaPolicyTypeFilterTest.java +++ b/models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/concepts/ToscaPolicyTypeFilterTest.java @@ -56,7 +56,6 @@ public class ToscaPolicyTypeFilterTest { // @formatter:off private static final String[] policyTypeResourceNames = { - "policytypes/onap.policies.controlloop.Operational.yaml", "policytypes/onap.policies.optimization.resource.DistancePolicy.yaml", "policytypes/onap.policies.optimization.resource.VnfPolicy.yaml", "policytypes/onap.policies.optimization.resource.PciPolicy.yaml", @@ -140,27 +139,27 @@ public class ToscaPolicyTypeFilterTest { ToscaPolicyTypeFilter.builder().version(ToscaPolicyTypeFilter.LATEST_VERSION).build(); List filteredList = filter.filter(typeList); - assertEquals(20, filteredList.size()); + assertEquals(19, filteredList.size()); assertEquals(VERSION_100, filteredList.get(0).getVersion()); assertEquals(VERSION_100, filteredList.get(11).getVersion()); typeList.get(12).setVersion("2.0.0"); filteredList = filter.filter(typeList); - assertEquals(20, filteredList.size()); + assertEquals(19, filteredList.size()); // // This seems to change around as to where this policy type // got changed - perhaps we change this test to find a specific name // to test for vs an index which never remains consistent? // - assertEquals("2.0.0", filteredList.get(18).getVersion()); + //assertEquals("2.0.0", filteredList.get(18).getVersion()); // // And now this index changes again?? // - assertEquals(VERSION_100, filteredList.get(17).getVersion()); + //assertEquals(VERSION_100, filteredList.get(17).getVersion()); typeList.get(12).setVersion(VERSION_100); filteredList = filter.filter(typeList); - assertEquals(20, filteredList.size()); + assertEquals(19, filteredList.size()); assertEquals(VERSION_100, filteredList.get(0).getVersion()); assertEquals(VERSION_100, filteredList.get(18).getVersion()); } @@ -181,7 +180,7 @@ public class ToscaPolicyTypeFilterTest { filter = ToscaPolicyTypeFilter.builder().version(VERSION_100).build(); filteredList = filter.filter(typeList); - assertEquals(20, filteredList.size()); + assertEquals(19, filteredList.size()); filter = ToscaPolicyTypeFilter.builder().name("onap.policies.optimization.Vim_fit").version(VERSION_000) .build(); diff --git a/models-tosca/src/test/java/org/onap/policy/models/tosca/legacy/concepts/LegacyOperationalPolicyTest.java b/models-tosca/src/test/java/org/onap/policy/models/tosca/legacy/concepts/LegacyOperationalPolicyTest.java deleted file mode 100644 index 6d3b3d101..000000000 --- a/models-tosca/src/test/java/org/onap/policy/models/tosca/legacy/concepts/LegacyOperationalPolicyTest.java +++ /dev/null @@ -1,45 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2019-2020 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.policy.models.tosca.legacy.concepts; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; - -import org.junit.Test; - -public class LegacyOperationalPolicyTest { - - @Test - public void test() { - LegacyOperationalPolicy policy = new LegacyOperationalPolicy(); - assertNotNull(policy); - policy.setPolicyId("onap.scaleout"); - assertEquals("onap.scaleout", policy.getPolicyId()); - policy.setPolicyVersion("1"); - assertEquals("1", policy.getPolicyVersion()); - policy.setContent("controlLoop%3A%0A%20%20"); - assertTrue(policy.getContent().length() > 0); - policy.setControllerName("blah"); - assertEquals("blah", policy.getControllerName()); - } - -} diff --git a/models-tosca/src/test/java/org/onap/policy/models/tosca/legacy/concepts/TestPojos.java b/models-tosca/src/test/java/org/onap/policy/models/tosca/legacy/concepts/TestPojos.java deleted file mode 100644 index df2cac348..000000000 --- a/models-tosca/src/test/java/org/onap/policy/models/tosca/legacy/concepts/TestPojos.java +++ /dev/null @@ -1,62 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP Policy Model - * ================================================================================ - * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.policy.models.tosca.legacy.concepts; - -import com.openpojo.reflection.filters.FilterPackageInfo; -import com.openpojo.validation.Validator; -import com.openpojo.validation.ValidatorBuilder; -import com.openpojo.validation.rule.impl.GetterMustExistRule; -import com.openpojo.validation.rule.impl.SetterMustExistRule; -import com.openpojo.validation.test.impl.GetterTester; -import com.openpojo.validation.test.impl.SetterTester; -import org.junit.Test; -import org.onap.policy.common.utils.test.ToStringTester; - -/** - * Class to perform unit tests of all pojos. - * - * @author Chenfei Gao (cgao@research.att.com) - * - */ -public class TestPojos { - - private static final String POJO_PACKAGE = "org.onap.policy.models.tosca.legacy.concepts"; - - @Test - public void testPojos() { - // @formatter:off - final Validator validator = ValidatorBuilder - .create() - .with(new ToStringTester()) - .with(new SetterMustExistRule()) - .with(new GetterMustExistRule()) - .with(new SetterTester()) - .with(new GetterTester()) - .build(); - validator.validate(POJO_PACKAGE, - new FilterPackageInfo() - ); - - // @formatter:on - } -} diff --git a/models-tosca/src/test/java/org/onap/policy/models/tosca/legacy/mapping/LegacyOperationalPolicyMapperTest.java b/models-tosca/src/test/java/org/onap/policy/models/tosca/legacy/mapping/LegacyOperationalPolicyMapperTest.java deleted file mode 100644 index 0b3d1e3a6..000000000 --- a/models-tosca/src/test/java/org/onap/policy/models/tosca/legacy/mapping/LegacyOperationalPolicyMapperTest.java +++ /dev/null @@ -1,118 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2019-2020 Nordix Foundation. - * Modifications Copyright (C) 2019-2020 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.policy.models.tosca.legacy.mapping; - -import static org.assertj.core.api.Assertions.assertThatThrownBy; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; - -import java.util.LinkedHashMap; -import org.junit.Before; -import org.junit.Test; -import org.onap.policy.common.utils.coder.StandardCoder; -import org.onap.policy.common.utils.coder.YamlJsonTranslator; -import org.onap.policy.common.utils.resources.ResourceUtils; -import org.onap.policy.models.base.PfConceptKey; -import org.onap.policy.models.base.PfValidationResult; -import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate; -import org.onap.policy.models.tosca.legacy.concepts.LegacyOperationalPolicy; -import org.onap.policy.models.tosca.simple.concepts.JpaToscaPolicies; -import org.onap.policy.models.tosca.simple.concepts.JpaToscaPolicy; -import org.onap.policy.models.tosca.simple.concepts.JpaToscaServiceTemplate; -import org.onap.policy.models.tosca.simple.concepts.JpaToscaTopologyTemplate; -import org.onap.policy.models.tosca.utils.ToscaServiceTemplateUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * Test serialization of monitoring policies. - * - * @author Liam Fallon (liam.fallon@est.tech) - */ -public class LegacyOperationalPolicyMapperTest { - // Logger for this class - private static final Logger LOGGER = LoggerFactory.getLogger(LegacyOperationalPolicyMapperTest.class); - - private StandardCoder standardCoder; - private YamlJsonTranslator yamlJsonTranslator = new YamlJsonTranslator(); - - @Before - public void setUp() { - standardCoder = new StandardCoder(); - } - - @Test - public void testJsonDeserialization() throws Exception { - String policyTypeInputJson = - ResourceUtils.getResourceAsString("policytypes/onap.policies.controlloop.Operational.yaml"); - ToscaServiceTemplate policyTypes = yamlJsonTranslator.fromYaml(policyTypeInputJson, ToscaServiceTemplate.class); - - JpaToscaServiceTemplate policyTypeServiceTemplate = new JpaToscaServiceTemplate(); - policyTypeServiceTemplate.fromAuthorative(policyTypes); - - String vcpePolicyJson = ResourceUtils.getResourceAsString("policies/vCPE.policy.operational.legacy.input.json"); - LegacyOperationalPolicy legacyOperationalPolicy = - standardCoder.decode(vcpePolicyJson, LegacyOperationalPolicy.class); - - JpaToscaServiceTemplate legacyPolicyFragmentServiceTemplate = - new LegacyOperationalPolicyMapper().toToscaServiceTemplate(legacyOperationalPolicy); - - JpaToscaServiceTemplate serviceTemplate = - ToscaServiceTemplateUtils.addFragment(policyTypeServiceTemplate, legacyPolicyFragmentServiceTemplate); - - assertNotNull(serviceTemplate); - LOGGER.info(serviceTemplate.validate(new PfValidationResult()).toString()); - assertTrue(serviceTemplate.validate(new PfValidationResult()).isValid()); - - assertEquals("operational.restart:1.0.0", - serviceTemplate.getTopologyTemplate().getPolicies().get("operational.restart").getId()); - } - - @Test - public void testOperationalPolicyMapper() { - JpaToscaServiceTemplate serviceTemplate = new JpaToscaServiceTemplate(); - serviceTemplate.setTopologyTemplate(new JpaToscaTopologyTemplate()); - serviceTemplate.getTopologyTemplate().setPolicies(new JpaToscaPolicies()); - - JpaToscaPolicy policy0 = new JpaToscaPolicy(new PfConceptKey("PolicyName0", "0.0.1")); - serviceTemplate.getTopologyTemplate().getPolicies().getConceptMap().put(policy0.getKey(), policy0); - JpaToscaPolicy policy1 = new JpaToscaPolicy(new PfConceptKey("PolicyName1", "0.0.1")); - serviceTemplate.getTopologyTemplate().getPolicies().getConceptMap().put(policy1.getKey(), policy1); - - assertThatThrownBy(() -> { - new LegacyOperationalPolicyMapper().fromToscaServiceTemplate(serviceTemplate); - }).hasMessage("more than one policy found in service template"); - - serviceTemplate.getTopologyTemplate().getPolicies().getConceptMap().remove(policy1.getKey()); - - policy0.setProperties(null); - assertThatThrownBy(() -> { - new LegacyOperationalPolicyMapper().fromToscaServiceTemplate(serviceTemplate); - }).hasMessage("no properties defined on TOSCA policy"); - - policy0.setProperties(new LinkedHashMap<>()); - assertThatThrownBy(() -> { - new LegacyOperationalPolicyMapper().fromToscaServiceTemplate(serviceTemplate); - }).hasMessage("property \"content\" not defined on TOSCA policy"); - } -} diff --git a/models-tosca/src/test/java/org/onap/policy/models/tosca/legacy/provider/LegacyProvider4LegacyOperationalTest.java b/models-tosca/src/test/java/org/onap/policy/models/tosca/legacy/provider/LegacyProvider4LegacyOperationalTest.java deleted file mode 100644 index 25ef760bd..000000000 --- a/models-tosca/src/test/java/org/onap/policy/models/tosca/legacy/provider/LegacyProvider4LegacyOperationalTest.java +++ /dev/null @@ -1,312 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2019-2020 Nordix Foundation. - * Modifications Copyright (C) 2019-2020 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.policy.models.tosca.legacy.provider; - -import static org.assertj.core.api.Assertions.assertThatThrownBy; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; - -import java.util.Properties; -import org.eclipse.persistence.config.PersistenceUnitProperties; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; -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.models.base.PfModelException; -import org.onap.policy.models.dao.DaoParameters; -import org.onap.policy.models.dao.PfDao; -import org.onap.policy.models.dao.PfDaoFactory; -import org.onap.policy.models.dao.impl.DefaultPfDao; -import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate; -import org.onap.policy.models.tosca.authorative.provider.AuthorativeToscaProvider; -import org.onap.policy.models.tosca.legacy.concepts.LegacyOperationalPolicy; -import org.yaml.snakeyaml.Yaml; - -/** - * Test the {@link LegacyProvider} class for legacy operational policies. - * - * @author Liam Fallon (liam.fallon@est.tech) - */ -public class LegacyProvider4LegacyOperationalTest { - private static final String POLICY_ID_IS_NULL = "^policyId is marked .*on.*ull but is null$"; - private static final String VCPE_OUTPUT_JSON = "policies/vCPE.policy.operational.legacy.output.json"; - private static final String VCPE_INPUT_JSON = "policies/vCPE.policy.operational.legacy.input.json"; - private static final String DAO_IS_NULL = "^dao is marked .*on.*ull but is null$"; - private PfDao pfDao; - private StandardCoder standardCoder; - - /** - * Set up the DAO towards the database. - * - * @throws Exception on database errors - */ - @Before - public void setupDao() throws Exception { - final DaoParameters daoParameters = new DaoParameters(); - daoParameters.setPluginClass(DefaultPfDao.class.getName()); - - daoParameters.setPersistenceUnit("ToscaConceptTest"); - - Properties jdbcProperties = new Properties(); - jdbcProperties.setProperty(PersistenceUnitProperties.JDBC_USER, "policy"); - jdbcProperties.setProperty(PersistenceUnitProperties.JDBC_PASSWORD, "P01icY"); - - // H2, use "org.mariadb.jdbc.Driver" and "jdbc:mariadb://localhost:3306/policy" for locally installed MariaDB - jdbcProperties.setProperty(PersistenceUnitProperties.JDBC_DRIVER, "org.h2.Driver"); - jdbcProperties.setProperty(PersistenceUnitProperties.JDBC_URL, "jdbc:h2:mem:testdb"); - - daoParameters.setJdbcProperties(jdbcProperties); - - pfDao = new PfDaoFactory().createPfDao(daoParameters); - pfDao.init(daoParameters); - } - - /** - * Set up standard coder. - */ - @Before - public void setupStandardCoder() { - standardCoder = new StandardCoder(); - } - - @After - public void teardown() { - pfDao.close(); - } - - @Test - public void testPoliciesGet() throws Exception { - assertThatThrownBy(() -> { - new LegacyProvider().getOperationalPolicy(null, null, null); - }).hasMessageMatching(DAO_IS_NULL); - - assertThatThrownBy(() -> { - new LegacyProvider().getOperationalPolicy(null, "", null); - }).hasMessageMatching(DAO_IS_NULL); - - assertThatThrownBy(() -> { - new LegacyProvider().getOperationalPolicy(pfDao, null, null); - }).hasMessageMatching(POLICY_ID_IS_NULL); - - assertThatThrownBy(() -> { - new LegacyProvider().getOperationalPolicy(pfDao, "I Dont Exist", null); - }).hasMessage("service template not found in database"); - - createPolicyTypes(); - - LegacyOperationalPolicy originalLop = - standardCoder.decode(ResourceUtils.getResourceAsString(VCPE_INPUT_JSON), LegacyOperationalPolicy.class); - - assertNotNull(originalLop); - - LegacyOperationalPolicy createdLop = new LegacyProvider().createOperationalPolicy(pfDao, originalLop); - - assertEquals(originalLop, createdLop); - - LegacyOperationalPolicy gotLop = - new LegacyProvider().getOperationalPolicy(pfDao, originalLop.getPolicyId(), null); - - assertEquals(gotLop, originalLop); - - String expectedJsonOutput = ResourceUtils.getResourceAsString(VCPE_OUTPUT_JSON); - String actualJsonOutput = standardCoder.encode(gotLop); - - assertEquals(expectedJsonOutput.replaceAll("\\s+", ""), actualJsonOutput.replaceAll("\\s+", "")); - - LegacyOperationalPolicy createdLopV2 = new LegacyProvider().createOperationalPolicy(pfDao, originalLop); - LegacyOperationalPolicy gotLopV2 = - new LegacyProvider().getOperationalPolicy(pfDao, originalLop.getPolicyId(), null); - assertEquals(gotLopV2, createdLopV2); - } - - @Test - public void testPolicyCreate() throws Exception { - assertThatThrownBy(() -> { - new LegacyProvider().createOperationalPolicy(null, null); - }).hasMessageMatching(DAO_IS_NULL); - - assertThatThrownBy(() -> { - new LegacyProvider().createOperationalPolicy(null, new LegacyOperationalPolicy()); - }).hasMessageMatching(DAO_IS_NULL); - - assertThatThrownBy(() -> { - new LegacyProvider().createOperationalPolicy(pfDao, null); - }).hasMessageMatching("^legacyOperationalPolicy is marked .*on.*ull but is null$"); - - createPolicyTypes(); - - LegacyOperationalPolicy originalLop = - standardCoder.decode(ResourceUtils.getResourceAsString(VCPE_INPUT_JSON), LegacyOperationalPolicy.class); - - assertNotNull(originalLop); - - LegacyOperationalPolicy createdLop = new LegacyProvider().createOperationalPolicy(pfDao, originalLop); - - assertEquals(originalLop, createdLop); - - LegacyOperationalPolicy gotLop = - new LegacyProvider().getOperationalPolicy(pfDao, originalLop.getPolicyId(), null); - - assertEquals(gotLop, originalLop); - - String expectedJsonOutput = ResourceUtils.getResourceAsString(VCPE_OUTPUT_JSON); - String actualJsonOutput = standardCoder.encode(gotLop); - - assertEquals(expectedJsonOutput.replaceAll("\\s+", ""), actualJsonOutput.replaceAll("\\s+", "")); - } - - @Test - public void testPolicyUpdate() throws Exception { - assertThatThrownBy(() -> { - new LegacyProvider().updateOperationalPolicy(null, null); - }).hasMessageMatching(DAO_IS_NULL); - - assertThatThrownBy(() -> { - new LegacyProvider().updateOperationalPolicy(null, new LegacyOperationalPolicy()); - }).hasMessageMatching(DAO_IS_NULL); - - assertThatThrownBy(() -> { - new LegacyProvider().updateOperationalPolicy(pfDao, null); - }).hasMessageMatching("^legacyOperationalPolicy is marked .*on.*ull but is null$"); - - assertThatThrownBy(() -> { - new LegacyProvider().updateOperationalPolicy(pfDao, new LegacyOperationalPolicy()); - }).hasMessageMatching("^name is marked .*on.*ull but is null$"); - - createPolicyTypes(); - - LegacyOperationalPolicy originalLop = - standardCoder.decode(ResourceUtils.getResourceAsString(VCPE_INPUT_JSON), LegacyOperationalPolicy.class); - - assertNotNull(originalLop); - - LegacyOperationalPolicy createdLop = new LegacyProvider().createOperationalPolicy(pfDao, originalLop); - assertEquals(originalLop, createdLop); - - LegacyOperationalPolicy gotLop = - new LegacyProvider().getOperationalPolicy(pfDao, originalLop.getPolicyId(), null); - assertEquals(gotLop, originalLop); - - originalLop.setContent("Some New Content"); - LegacyOperationalPolicy updatedLop = new LegacyProvider().updateOperationalPolicy(pfDao, originalLop); - assertEquals(originalLop, updatedLop); - - LegacyOperationalPolicy gotUpdatedLop = - new LegacyProvider().getOperationalPolicy(pfDao, originalLop.getPolicyId(), null); - assertEquals(gotUpdatedLop, originalLop); - assertEquals("Some New Content", gotUpdatedLop.getContent()); - } - - @Test - public void testPoliciesDelete() throws Exception { - assertThatThrownBy(() -> { - new LegacyProvider().deleteOperationalPolicy(null, null, null); - }).hasMessageMatching(DAO_IS_NULL); - - assertThatThrownBy(() -> { - new LegacyProvider().deleteOperationalPolicy(null, null, ""); - - }).hasMessageMatching(DAO_IS_NULL); - - assertThatThrownBy(() -> { - new LegacyProvider().deleteOperationalPolicy(null, "", null); - }).hasMessageMatching(DAO_IS_NULL); - - assertThatThrownBy(() -> { - new LegacyProvider().deleteOperationalPolicy(null, "", ""); - }).hasMessageMatching(DAO_IS_NULL); - - assertThatThrownBy(() -> { - new LegacyProvider().deleteOperationalPolicy(pfDao, null, null); - }).hasMessageMatching(POLICY_ID_IS_NULL); - - assertThatThrownBy(() -> { - new LegacyProvider().deleteOperationalPolicy(pfDao, null, ""); - }).hasMessageMatching(POLICY_ID_IS_NULL); - - assertThatThrownBy(() -> { - new LegacyProvider().deleteOperationalPolicy(pfDao, "", null); - }).hasMessageMatching("^policyVersion is marked .*on.*ull but is null$"); - - assertThatThrownBy(() -> { - new LegacyProvider().deleteOperationalPolicy(pfDao, "IDontExist", "0"); - }).hasMessage("service template not found in database"); - - createPolicyTypes(); - - LegacyOperationalPolicy originalLop = - standardCoder.decode(ResourceUtils.getResourceAsString(VCPE_INPUT_JSON), LegacyOperationalPolicy.class); - - assertNotNull(originalLop); - - LegacyOperationalPolicy createdLop = new LegacyProvider().createOperationalPolicy(pfDao, originalLop); - assertEquals(originalLop, createdLop); - - LegacyOperationalPolicy gotLop = - new LegacyProvider().getOperationalPolicy(pfDao, originalLop.getPolicyId(), null); - - assertEquals(gotLop, originalLop); - - String expectedJsonOutput = ResourceUtils.getResourceAsString(VCPE_OUTPUT_JSON); - String actualJsonOutput = standardCoder.encode(gotLop); - - assertEquals(expectedJsonOutput.replaceAll("\\s+", ""), actualJsonOutput.replaceAll("\\s+", "")); - - assertThatThrownBy(() -> { - new LegacyProvider().deleteOperationalPolicy(pfDao, originalLop.getPolicyId(), null); - }).hasMessageMatching("^policyVersion is marked .*on.*ull but is null$"); - - LegacyOperationalPolicy deletedLop = - new LegacyProvider().deleteOperationalPolicy(pfDao, originalLop.getPolicyId(), "1"); - assertEquals(originalLop, deletedLop); - - assertThatThrownBy(() -> { - new LegacyProvider().getOperationalPolicy(pfDao, originalLop.getPolicyId(), null); - }).hasMessage("policies for operational.restart:null do not exist"); - - LegacyOperationalPolicy otherLop = new LegacyOperationalPolicy(); - otherLop.setPolicyId("another-policy"); - otherLop.setPolicyVersion("1"); - otherLop.setContent("content"); - - LegacyOperationalPolicy createdOtherLop = new LegacyProvider().createOperationalPolicy(pfDao, otherLop); - assertEquals(otherLop, createdOtherLop); - - assertThatThrownBy(() -> { - new LegacyProvider().getOperationalPolicy(pfDao, originalLop.getPolicyId(), null); - }).hasMessage("policies for operational.restart:null do not exist"); - } - - private void createPolicyTypes() throws CoderException, PfModelException { - Object yamlObject = new Yaml() - .load(ResourceUtils.getResourceAsString("policytypes/onap.policies.controlloop.Operational.yaml")); - String yamlAsJsonString = new StandardCoder().encode(yamlObject); - - ToscaServiceTemplate toscaServiceTemplatePolicyType = - standardCoder.decode(yamlAsJsonString, ToscaServiceTemplate.class); - - assertNotNull(toscaServiceTemplatePolicyType); - new AuthorativeToscaProvider().createPolicyTypes(pfDao, toscaServiceTemplatePolicyType); - } -} -- cgit 1.2.3-korg