X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=models-provider%2Fsrc%2Ftest%2Fjava%2Forg%2Fonap%2Fpolicy%2Fmodels%2Fprovider%2Fimpl%2FPolicyToscaPersistenceTest.java;h=3db058c2770de9a0708dc1b152a21a41f21d8b87;hb=389c85c8e7213c10c17896f4c63d94e2b5e9d27a;hp=d6f0d85b96ebac162598f8d08c56e2057c485c88;hpb=ce850be00732359bb04d8dd3666a1293dbf8f1ff;p=policy%2Fmodels.git diff --git a/models-provider/src/test/java/org/onap/policy/models/provider/impl/PolicyToscaPersistenceTest.java b/models-provider/src/test/java/org/onap/policy/models/provider/impl/PolicyToscaPersistenceTest.java index d6f0d85b9..3db058c27 100644 --- a/models-provider/src/test/java/org/onap/policy/models/provider/impl/PolicyToscaPersistenceTest.java +++ b/models-provider/src/test/java/org/onap/policy/models/provider/impl/PolicyToscaPersistenceTest.java @@ -1,6 +1,8 @@ /*- * ============LICENSE_START======================================================= - * Copyright (C) 2019-2020 Nordix Foundation. + * Copyright (C) 2019-2021, 2023-2024 Nordix Foundation. + * Modifications Copyright (C) 2020 Bell Canada. All rights reserved. + * Modifications Copyright (C) 2021 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. @@ -25,7 +27,6 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import java.net.URISyntaxException; -import java.util.Base64; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; @@ -44,10 +45,11 @@ 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.ToscaEntityFilter; import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicy; -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.ToscaPolicyType; import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate; +import org.onap.policy.models.tosca.authorative.concepts.ToscaTypedEntityFilter; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -75,12 +77,20 @@ public class PolicyToscaPersistenceTest { // 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"); + + if (System.getProperty("USE-MARIADB") != null) { + parameters.setDatabaseDriver("org.mariadb.jdbc.Driver"); + parameters.setDatabaseUrl("jdbc:mariadb://localhost:3306/policy"); + } else { + parameters.setDatabaseDriver("org.h2.Driver"); + parameters.setDatabaseUrl("jdbc:h2:mem:PolicyToscaPersistenceTest"); + } + parameters.setDatabaseUser("policy"); - parameters.setDatabasePassword(Base64.getEncoder().encodeToString("P01icY".getBytes())); + parameters.setDatabasePassword("P01icY"); parameters.setPersistenceUnit("ToscaConceptTest"); + databaseProvider = new PolicyModelsProviderFactory().createPolicyModelsProvider(parameters); createPolicyTypes(); @@ -114,15 +124,15 @@ public class PolicyToscaPersistenceTest { public void testHpaPolicyTypeGet() throws PfModelException { long getStartTime = System.currentTimeMillis(); ToscaServiceTemplate hpaServiceTemplate = - databaseProvider.getPolicyTypes("onap.policies.optimization.resource.HpaPolicy", "1.0.0"); + databaseProvider.getPolicyTypes("onap.policies.optimization.resource.HpaPolicy", "1.0.0"); LOGGER.trace("HPA policy normal get time (ms): {}", System.currentTimeMillis() - getStartTime); assertEquals(3, hpaServiceTemplate.getPolicyTypesAsMap().size()); assertEquals(5, hpaServiceTemplate.getDataTypesAsMap().size()); getStartTime = System.currentTimeMillis(); - ToscaPolicyTypeFilter hpaFilter = ToscaPolicyTypeFilter.builder() - .name("onap.policies.optimization.resource.HpaPolicy").version("1.0.0").build(); + ToscaEntityFilter hpaFilter = ToscaEntityFilter.builder() + .name("onap.policies.optimization.resource.HpaPolicy").version("1.0.0").build(); hpaServiceTemplate = databaseProvider.getFilteredPolicyTypes(hpaFilter); LOGGER.trace("HPA policy filter name version get time (ms): {}", System.currentTimeMillis() - getStartTime); @@ -130,7 +140,8 @@ public class PolicyToscaPersistenceTest { assertEquals(5, hpaServiceTemplate.getDataTypesAsMap().size()); getStartTime = System.currentTimeMillis(); - hpaFilter = ToscaPolicyTypeFilter.builder().name("onap.policies.optimization.resource.HpaPolicy").build(); + hpaFilter = ToscaEntityFilter.builder().name("onap.policies.optimization.resource.HpaPolicy") + .build(); hpaServiceTemplate = databaseProvider.getFilteredPolicyTypes(hpaFilter); LOGGER.trace("HPA policy filter name only get time (ms): {}", System.currentTimeMillis() - getStartTime); @@ -142,7 +153,7 @@ public class PolicyToscaPersistenceTest { public void testNamingPolicyGet() throws PfModelException { String policyYamlString = ResourceUtils.getResourceAsString("policies/sdnc.policy.naming.input.tosca.yaml"); ToscaServiceTemplate serviceTemplate = - yamlJsonTranslator.fromYaml(policyYamlString, ToscaServiceTemplate.class); + yamlJsonTranslator.fromYaml(policyYamlString, ToscaServiceTemplate.class); long createStartTime = System.currentTimeMillis(); databaseProvider.createPolicies(serviceTemplate); @@ -150,7 +161,7 @@ public class PolicyToscaPersistenceTest { long getStartTime = System.currentTimeMillis(); ToscaServiceTemplate namingServiceTemplate = - databaseProvider.getPolicies("SDNC_Policy.ONAP_NF_NAMING_TIMESTAMP", "1.0.0"); + databaseProvider.getPolicies("SDNC_Policy.ONAP_NF_NAMING_TIMESTAMP", "1.0.0"); LOGGER.trace("Naming policy normal get time (ms): {}", System.currentTimeMillis() - getStartTime); assertEquals(1, namingServiceTemplate.getToscaTopologyTemplate().getPoliciesAsMap().size()); @@ -158,8 +169,8 @@ public class PolicyToscaPersistenceTest { assertEquals(3, namingServiceTemplate.getDataTypesAsMap().size()); getStartTime = System.currentTimeMillis(); - ToscaPolicyFilter filter = - ToscaPolicyFilter.builder().name("SDNC_Policy.ONAP_NF_NAMING_TIMESTAMP").version("1.0.0").build(); + ToscaTypedEntityFilter filter = ToscaTypedEntityFilter.builder() + .name("SDNC_Policy.ONAP_NF_NAMING_TIMESTAMP").version("1.0.0").build(); namingServiceTemplate = databaseProvider.getFilteredPolicies(filter); LOGGER.trace("Naming policy filtered get time (ms): {}", System.currentTimeMillis() - getStartTime); @@ -168,7 +179,7 @@ public class PolicyToscaPersistenceTest { assertEquals(3, namingServiceTemplate.getDataTypesAsMap().size()); getStartTime = System.currentTimeMillis(); - filter = ToscaPolicyFilter.builder().name("SDNC_Policy.ONAP_NF_NAMING_TIMESTAMP").build(); + filter = ToscaTypedEntityFilter.builder().name("SDNC_Policy.ONAP_NF_NAMING_TIMESTAMP").build(); namingServiceTemplate = databaseProvider.getFilteredPolicies(filter); LOGGER.trace("Naming policy filtered name only get time (ms): {}", System.currentTimeMillis() - getStartTime); @@ -178,7 +189,7 @@ public class PolicyToscaPersistenceTest { long deleteStartTime = System.currentTimeMillis(); ToscaServiceTemplate deletedServiceTemplate = - databaseProvider.deletePolicy("SDNC_Policy.ONAP_NF_NAMING_TIMESTAMP", "1.0.0"); + databaseProvider.deletePolicy("SDNC_Policy.ONAP_NF_NAMING_TIMESTAMP", "1.0.0"); LOGGER.trace("Naming policy delete time (ms): {}", System.currentTimeMillis() - deleteStartTime); assertEquals(1, deletedServiceTemplate.getToscaTopologyTemplate().getPoliciesAsMap().size()); @@ -188,7 +199,7 @@ public class PolicyToscaPersistenceTest { public void testNamingPolicyVersions() throws PfModelException { String policyYamlString = ResourceUtils.getResourceAsString("policies/sdnc.policy.naming.input.tosca.yaml"); ToscaServiceTemplate serviceTemplate = - yamlJsonTranslator.fromYaml(policyYamlString, ToscaServiceTemplate.class); + yamlJsonTranslator.fromYaml(policyYamlString, ToscaServiceTemplate.class); // Create policy types and data types List> policyMapList = serviceTemplate.getToscaTopologyTemplate().getPolicies(); @@ -211,26 +222,26 @@ public class PolicyToscaPersistenceTest { for (int i = 1; i < 22; i++) { ToscaServiceTemplate namingServiceTemplate = - databaseProvider.getPolicies("SDNC_Policy.ONAP_NF_NAMING_TIMESTAMP", i + ".0.0"); + databaseProvider.getPolicies("SDNC_Policy.ONAP_NF_NAMING_TIMESTAMP", i + ".0.0"); assertEquals(i + ".0.0", namingServiceTemplate.getToscaTopologyTemplate().getPolicies().get(0).values() - .iterator().next().getVersion()); + .iterator().next().getVersion()); - ToscaPolicyFilter policyFilter = - ToscaPolicyFilter.builder().name("SDNC_Policy.ONAP_NF_NAMING_TIMESTAMP").version(i + ".0.0").build(); + ToscaTypedEntityFilter policyFilter = ToscaTypedEntityFilter.builder() + .name("SDNC_Policy.ONAP_NF_NAMING_TIMESTAMP").version(i + ".0.0").build(); namingServiceTemplate = databaseProvider.getFilteredPolicies(policyFilter); assertEquals(i + ".0.0", namingServiceTemplate.getToscaTopologyTemplate().getPolicies().get(0).values() - .iterator().next().getVersion()); + .iterator().next().getVersion()); } - ToscaPolicyFilter policyFilter = ToscaPolicyFilter.builder().name("SDNC_Policy.ONAP_NF_NAMING_TIMESTAMP") - .version(ToscaPolicyFilter.LATEST_VERSION).build(); + ToscaTypedEntityFilter policyFilter = ToscaTypedEntityFilter.builder() + .name("SDNC_Policy.ONAP_NF_NAMING_TIMESTAMP").version(ToscaTypedEntityFilter.LATEST_VERSION).build(); ToscaServiceTemplate namingServiceTemplate = databaseProvider.getFilteredPolicies(policyFilter); assertEquals("21.0.0", namingServiceTemplate.getToscaTopologyTemplate().getPolicies().get(0).values().iterator() - .next().getVersion()); + .next().getVersion()); for (int i = 1; i < 22; i++) { ToscaServiceTemplate deletedServiceTemplate = - databaseProvider.deletePolicy("SDNC_Policy.ONAP_NF_NAMING_TIMESTAMP", i + ".0.0"); + databaseProvider.deletePolicy("SDNC_Policy.ONAP_NF_NAMING_TIMESTAMP", i + ".0.0"); assertEquals(1, deletedServiceTemplate.getToscaTopologyTemplate().getPoliciesAsMap().size()); } } @@ -248,6 +259,7 @@ public class PolicyToscaPersistenceTest { for (int i = 0; i < 10; i++) { new Thread() { + @Override public void run() { assertThatCode(() -> databaseProvider.createPolicies(serviceTemplate)).doesNotThrowAnyException(); assertThatCode(() -> databaseProvider.updatePolicies(serviceTemplate)).doesNotThrowAnyException(); @@ -261,28 +273,29 @@ public class PolicyToscaPersistenceTest { for (Map policyMap : serviceTemplate.getToscaTopologyTemplate().getPolicies()) { for (ToscaPolicy policy : policyMap.values()) { ToscaServiceTemplate gotToscaServiceTemplate = - databaseProvider.getPolicies(policy.getName(), policy.getVersion()); + databaseProvider.getPolicies(policy.getName(), policy.getVersion()); assertEquals(policy.getType(), gotToscaServiceTemplate.getToscaTopologyTemplate().getPolicies().get(0) - .get(policy.getName()).getType()); + .get(policy.getName()).getType()); - gotToscaServiceTemplate = databaseProvider.getFilteredPolicies(ToscaPolicyFilter.builder().build()); + gotToscaServiceTemplate = + databaseProvider.getFilteredPolicies(ToscaTypedEntityFilter.builder().build()); assertEquals(policy.getType(), - getToscaPolicyFromMapList(gotToscaServiceTemplate.getToscaTopologyTemplate().getPolicies(), - policy.getName()).getType()); + getToscaPolicyFromMapList(gotToscaServiceTemplate.getToscaTopologyTemplate().getPolicies(), + policy.getName()).getType()); - gotToscaServiceTemplate = databaseProvider.getFilteredPolicies( - ToscaPolicyFilter.builder().name(policy.getName()).version(policy.getVersion()).build()); + gotToscaServiceTemplate = databaseProvider.getFilteredPolicies(ToscaTypedEntityFilter + .builder().name(policy.getName()).version(policy.getVersion()).build()); assertEquals(policy.getType(), gotToscaServiceTemplate.getToscaTopologyTemplate().getPolicies().get(0) - .get(policy.getName()).getType()); + .get(policy.getName()).getType()); } } } private ToscaPolicy getToscaPolicyFromMapList(List> toscaPolicyMapList, - String policyName) { + String policyName) { ToscaPolicy toscaPolicy = new ToscaPolicy(); for (Map policyMap : toscaPolicyMapList) { toscaPolicy = policyMap.get(policyName); @@ -299,7 +312,7 @@ public class PolicyToscaPersistenceTest { for (String policyTypeResource : policyTypeResources) { String policyTypeYamlString = ResourceUtils.getResourceAsString(policyTypeResource); ToscaServiceTemplate toscaServiceTemplatePolicyType = - yamlJsonTranslator.fromYaml(policyTypeYamlString, ToscaServiceTemplate.class); + yamlJsonTranslator.fromYaml(policyTypeYamlString, ToscaServiceTemplate.class); assertNotNull(toscaServiceTemplatePolicyType); databaseProvider.createPolicyTypes(toscaServiceTemplatePolicyType);