Add junit tests for endpoints 29/85129/2
authorChenfei Gao <cgao@research.att.com>
Thu, 11 Apr 2019 22:47:26 +0000 (18:47 -0400)
committerChenfei Gao <cgao@research.att.com>
Fri, 12 Apr 2019 00:11:06 +0000 (20:11 -0400)
Add junit tests to improve code coverage to > 80%.
Modify db setting and remove db authorization from persistence.

Issue-ID: POLICY-1441
Change-Id: I6070ac9ba6adba836adeeb547610c27dccf577bd
Signed-off-by: Chenfei Gao <cgao@research.att.com>
20 files changed:
main/src/main/java/org/onap/policy/api/main/rest/ApiRestController.java
main/src/main/resources/META-INF/persistence.xml
main/src/test/java/org/onap/policy/api/main/parameters/CommonTestData.java
main/src/test/java/org/onap/policy/api/main/rest/TestApiRestServer.java
main/src/test/java/org/onap/policy/api/main/rest/provider/TestLegacyGuardPolicyProvider.java
main/src/test/java/org/onap/policy/api/main/rest/provider/TestLegacyOperationalPolicyProvider.java
main/src/test/java/org/onap/policy/api/main/rest/provider/TestPolicyProvider.java
main/src/test/java/org/onap/policy/api/main/rest/provider/TestPolicyTypeProvider.java
main/src/test/resources/META-INF/persistence.xml
main/src/test/resources/parameters/ApiConfigParameters.json
main/src/test/resources/parameters/ApiConfigParameters_Https.json
main/src/test/resources/parameters/ApiConfigParameters_InvalidName.json
main/src/test/resources/parameters/ApiConfigParameters_InvalidRestServerParameters.json
main/src/test/resources/parameters/MinimumParameters.json
main/src/test/resources/parameters/NoParameters.json
main/src/test/resources/policies/vDNS.policy.guard.minmax.input.json
main/src/test/resources/policies/vDNS.policy.monitoring.input.tosca.json
main/src/test/resources/policies/vFirewall.policy.monitoring.input.tosca.json
packages/policy-api-tarball/src/main/resources/etc/defaultConfig.json
packages/policy-api-tarball/src/main/resources/etc/s3pConfig.json

index 0c46df4..1863b23 100644 (file)
@@ -363,6 +363,66 @@ public class ApiRestController {
         }\r
     }\r
 \r
+    /**\r
+     * Retrieves latest version of a particular policy type.\r
+     *\r
+     * @param policyTypeId the ID of specified policy type\r
+     *\r
+     * @return the Response object containing the results of the API operation\r
+     */\r
+    @GET\r
+    @Path("/policytypes/{policyTypeId}/versions/latest")\r
+    @ApiOperation(value = "Retrieve latest version of a policy type",\r
+            notes = "Returns latest version for the specified policy type",\r
+            response = ToscaServiceTemplate.class,\r
+            responseHeaders = {\r
+                    @ResponseHeader(name = "X-MinorVersion",\r
+                                    description = "Used to request or communicate a MINOR version back from the client"\r
+                                                + " to the server, and from the server back to the client",\r
+                                    response = String.class),\r
+                    @ResponseHeader(name = "X-PatchVersion",\r
+                                    description = "Used only to communicate a PATCH version in a response for"\r
+                                                + " troubleshooting purposes only, and will not be provided by"\r
+                                                + " the client on request",\r
+                                    response = String.class),\r
+                    @ResponseHeader(name = "X-LatestVersion",\r
+                                    description = "Used only to communicate an API's latest version",\r
+                                    response = String.class),\r
+                    @ResponseHeader(name = "X-ONAP-RequestID",\r
+                                    description = "Used to track REST transactions for logging purpose",\r
+                                    response = UUID.class)\r
+            },\r
+            authorizations = @Authorization(value = "basicAuth"),\r
+            tags = { "PolicyType", },\r
+            extensions = {\r
+                    @Extension(name = "interface info", properties = {\r
+                            @ExtensionProperty(name = "api-version", value = "1.0.0"),\r
+                            @ExtensionProperty(name = "last-mod-release", value = "Dublin")\r
+                    })\r
+            })\r
+    @ApiResponses(value = {\r
+            @ApiResponse(code = 401, message = "Authentication Error"),\r
+            @ApiResponse(code = 403, message = "Authorization Error"),\r
+            @ApiResponse(code = 404, message = "Resource Not Found"),\r
+            @ApiResponse(code = 500, message = "Internal Server Error")\r
+        })\r
+    public Response getLatestVersionOfPolicyType(\r
+            @PathParam("policyTypeId") @ApiParam(value = "ID of policy type", required = true) String policyTypeId,\r
+            @HeaderParam("X-ONAP-RequestID") @ApiParam("RequestID for http transaction") UUID requestId) {\r
+\r
+        try (PolicyTypeProvider policyTypeProvider = new PolicyTypeProvider()) {\r
+            ToscaServiceTemplate serviceTemplate = policyTypeProvider.fetchLatestPolicyTypes(policyTypeId);\r
+            updateApiStatisticsCounter(Target.POLICY_TYPE, Result.SUCCESS, HttpMethod.GET);\r
+            return addLoggingHeaders(addVersionControlHeaders(Response.status(Response.Status.OK)), requestId)\r
+                    .entity(serviceTemplate).build();\r
+        } catch (PfModelException | PfModelRuntimeException pfme) {\r
+            updateApiStatisticsCounter(Target.POLICY_TYPE, Result.FAILURE, HttpMethod.GET);\r
+            return addLoggingHeaders(addVersionControlHeaders(\r
+                    Response.status(pfme.getErrorResponse().getResponseCode())), requestId)\r
+                    .entity(pfme.getErrorResponse()).build();\r
+        }\r
+    }\r
+\r
     /**\r
      * Creates a new policy type.\r
      *\r
@@ -694,7 +754,7 @@ public class ApiRestController {
      * @return the Response object containing the results of the API operation\r
      */\r
     @GET\r
-    @Path("/policytypes/{policyTypeId}/versions/{policyTypeVersion}/policies/{policyId}/latest")\r
+    @Path("/policytypes/{policyTypeId}/versions/{policyTypeVersion}/policies/{policyId}/versions/latest")\r
     @ApiOperation(value = "Retrieve the latest version of a particular policy",\r
             notes = "Returns the latest version of specified policy",\r
             response = ToscaServiceTemplate.class,\r
@@ -760,7 +820,7 @@ public class ApiRestController {
      * @return the Response object containing the results of the API operation\r
      */\r
     @GET\r
-    @Path("/policytypes/{policyTypeId}/versions/{policyTypeVersion}/policies/{policyId}/deployed")\r
+    @Path("/policytypes/{policyTypeId}/versions/{policyTypeVersion}/policies/{policyId}/versions/deployed")\r
     @ApiOperation(value = "Retrieve deployed versions of a particular policy in pdp groups",\r
             notes = "Returns deployed versions of specified policy in pdp groups",\r
             response = ToscaPolicy.class, responseContainer = "List",\r
index 7bda7da..1d4abd4 100644 (file)
         <class>org.onap.policy.models.pdp.persistence.concepts.JpaPdp</class>
 
         <properties>
-            <property name="javax.persistence.jdbc.driver" value="org.mariadb.jdbc.Driver" />
-            <property name="javax.persistence.jdbc.url" value="jdbc:mariadb://policydb:3306/policy" />
-            <property name="javax.persistence.jdbc.user" value="policy_user" />
-            <property name="javax.persistence.jdbc.password" value="policy_user" />
             <property name="javax.persistence.schema-generation.database.action" value="create" />
             <property name="eclipselink.ddl-generation" value="create-or-extend-tables" />
             <property name="eclipselink.ddl-generation.output-mode" value="database" />
             <property name="eclipselink.logging.level" value="INFO" />
         </properties>
     </persistence-unit>
-</persistence>
\ No newline at end of file
+</persistence>
index f0f971d..50e484e 100644 (file)
@@ -42,6 +42,7 @@ public class CommonTestData {
 
     private static final String PROVIDER_GROUP_NAME = "PolicyProviderParameterGroup";
     private static final String PROVIDER_IMPL = "org.onap.policy.models.provider.impl.DatabasePolicyModelsProviderImpl";
+    private static final String DATABASE_DRIVER = "org.h2.Driver";
     private static final String DATABASE_URL = "jdbc:h2:mem:testdb";
     private static final String DATABASE_USER = "policy";
     private static final String DATABASE_PASSWORD = "P01icY";
@@ -76,6 +77,7 @@ public class CommonTestData {
             databaseProviderParameters = new PolicyModelsProviderParameters();
             databaseProviderParameters.setName(PROVIDER_GROUP_NAME);
             databaseProviderParameters.setImplementation(PROVIDER_IMPL);
+            databaseProviderParameters.setDatabaseDriver(DATABASE_DRIVER);
             databaseProviderParameters.setDatabaseUrl(DATABASE_URL);
             databaseProviderParameters.setDatabaseUser(DATABASE_USER);
             databaseProviderParameters.setDatabasePassword(DATABASE_PASSWORD);
index 4fb588c..756c7ae 100644 (file)
 
 package org.onap.policy.api.main.rest;
 
+import static org.assertj.core.api.Assertions.assertThatCode;
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
@@ -37,11 +40,14 @@ import javax.net.ssl.TrustManager;
 import javax.net.ssl.X509TrustManager;
 import javax.ws.rs.client.Client;
 import javax.ws.rs.client.ClientBuilder;
+import javax.ws.rs.client.Entity;
 import javax.ws.rs.client.Invocation;
 import javax.ws.rs.client.WebTarget;
 import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
 
 import org.glassfish.jersey.client.ClientConfig;
+import org.glassfish.jersey.client.ClientProperties;
 import org.glassfish.jersey.client.authentication.HttpAuthenticationFeature;
 import org.junit.After;
 import org.junit.Test;
@@ -50,7 +56,14 @@ import org.onap.policy.api.main.parameters.CommonTestData;
 import org.onap.policy.api.main.parameters.RestServerParameters;
 import org.onap.policy.api.main.startstop.Main;
 import org.onap.policy.common.endpoints.report.HealthCheckReport;
+import org.onap.policy.common.gson.GsonMessageBodyHandler;
+import org.onap.policy.common.utils.coder.StandardCoder;
 import org.onap.policy.common.utils.network.NetworkUtil;
+import org.onap.policy.common.utils.resources.ResourceUtils;
+import org.onap.policy.models.errors.concepts.ErrorResponse;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate;
+import org.onap.policy.models.tosca.legacy.concepts.LegacyGuardPolicyInput;
+import org.onap.policy.models.tosca.legacy.concepts.LegacyOperationalPolicy;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -66,17 +79,93 @@ public class TestApiRestServer {
     private static final String ALIVE = "alive";
     private static final String SELF = "self";
     private static final String NAME = "Policy API";
+
     private static final String HEALTHCHECK_ENDPOINT = "healthcheck";
     private static final String STATISTICS_ENDPOINT = "statistics";
+
+    private static final String POLICYTYPES = "policytypes";
+    private static final String POLICYTYPES_TCA = "policytypes/onap.policies.monitoring.cdap.tca.hi.lo.app";
+    private static final String POLICYTYPES_COLLECTOR =
+            "policytypes/onap.policies.monitoring.dcaegen2.collectors.datafile.datafile-app-server";
+    private static final String POLICYTYPES_TCA_VERSION =
+            "policytypes/onap.policies.monitoring.cdap.tca.hi.lo.app/versions/1.0.0";
+    private static final String POLICYTYPES_TCA_LATEST =
+            "policytypes/onap.policies.monitoring.cdap.tca.hi.lo.app/versions/latest";
+    private static final String POLICYTYPES_COLLECTOR_VERSION =
+            "policytypes/onap.policies.monitoring.dcaegen2.collectors.datafile.datafile-app-server/versions/1.0.0";
+    private static final String POLICYTYPES_COLLECTOR_LATEST =
+            "policytypes/onap.policies.monitoring.dcaegen2.collectors.datafile.datafile-app-server/versions/latest";
+
+    private static final String POLICYTYPES_TCA_POLICIES =
+            "policytypes/onap.policies.monitoring.cdap.tca.hi.lo.app/versions/1.0.0/policies";
+    private static final String POLICYTYPES_TCA_POLICIES_VCPE =
+            "policytypes/onap.policies.monitoring.cdap.tca.hi.lo.app/versions/1.0.0/policies/onap.restart.tca";
+    private static final String POLICYTYPES_TCA_POLICIES_VCPE_VERSION = "policytypes/"
+        + "onap.policies.monitoring.cdap.tca.hi.lo.app/versions/1.0.0/policies/onap.restart.tca/versions/1.0.0";
+    private static final String POLICYTYPES_TCA_POLICIES_VCPE_LATEST = "policytypes/"
+        + "onap.policies.monitoring.cdap.tca.hi.lo.app/versions/1.0.0/policies/onap.restart.tca/versions/latest";
+
+    private static final String GUARD_POLICIES =
+            "policytypes/onap.policy.controlloop.guard/versions/1.0.0/policies";
+    private static final String GUARD_POLICIES_VDNS_FL =
+            "policytypes/onap.policy.controlloop.guard/versions/1.0.0/policies/guard.frequency.scaleout";
+    private static final String GUARD_POLICIES_VDNS_MINMAX =
+            "policytypes/onap.policy.controlloop.guard/versions/1.0.0/policies/guard.minmax.scaleout";
+    private static final String GUARD_POLICIES_VDNS_FL_VERSION = "policytypes/"
+        + "onap.policy.controlloop.guard/versions/1.0.0/policies/guard.frequency.scaleout/versions/1.0.0";
+    private static final String GUARD_POLICIES_VDNS_MINMAX_VERSION = "policytypes/"
+        + "onap.policy.controlloop.guard/versions/1.0.0/policies/guard.minmax.scaleout/versions/1.0.0";
+
+    private static final String OPS_POLICIES =
+            "policytypes/onap.policy.controlloop.operational/versions/1.0.0/policies";
+    private static final String OPS_POLICIES_VCPE =
+            "policytypes/onap.policy.controlloop.guard/versions/1.0.0/policies/operational.restart";
+    private static final String OPS_POLICIES_VDNS =
+            "policytypes/onap.policy.controlloop.guard/versions/1.0.0/policies/operational.scaleout";
+    private static final String OPS_POLICIES_VFIREWALL =
+            "policytypes/onap.policy.controlloop.guard/versions/1.0.0/policies/operational.modifyconfig";
+    private static final String OPS_POLICIES_VCPE_VERSION = "policytypes/"
+        + "onap.policy.controlloop.guard/versions/1.0.0/policies/operational.restart/versions/1.0.0";
+    private static final String OPS_POLICIES_VDNS_VERSION = "policytypes/"
+        + "onap.policy.controlloop.guard/versions/1.0.0/policies/operational.scaleout/versions/1.0.0";
+    private static final String OPS_POLICIES_VFIREWALL_VERSION = "policytypes/"
+        + "onap.policy.controlloop.guard/versions/1.0.0/policies/operational.modifyconfig/versions/1.0.0";
+
     private static String KEYSTORE = System.getProperty("user.dir") + "/src/test/resources/ssl/policy-keystore";
     private Main main;
     private ApiRestServer restServer;
+    private StandardCoder standardCoder = new StandardCoder();
+
+    // @formatter:off
+    private String[] toscaPolicyResourceNames = {
+        "policies/vCPE.policy.monitoring.input.tosca.json",
+        "policies/vDNS.policy.monitoring.input.tosca.json",
+        "policies/vFirewall.policy.monitoring.input.tosca.json",
+    };
+
+    private String[] toscaPolicyTypeResourceNames = {
+        "policytypes/onap.policy.monitoring.cdap.tca.hi.lo.app.json",
+        "policytypes/onap.policies.monitoring.dcaegen2.collectors.datafile.datafile-app-server.json"
+    };
+
+    private String[] legacyGuardPolicyResourceNames = {
+        "policies/vDNS.policy.guard.frequency.input.json",
+        "policies/vDNS.policy.guard.minmax.input.json",
+    };
+
+    private String[] legacyOperationalPolicyResourceNames = {
+        "policies/vCPE.policy.operational.input.json",
+        "policies/vDNS.policy.operational.input.json",
+        "policies/vFirewall.policy.operational.input.json"
+    };
+    // @formatter:on
 
     /**
      * Method for cleanup after each test.
      */
     @After
     public void teardown() {
+
         try {
             if (NetworkUtil.isTcpPortOpen("localhost", 6969, 1, 1000L)) {
                 if (main != null) {
@@ -92,6 +181,7 @@ public class TestApiRestServer {
 
     @Test
     public void testHealthCheckSuccess() {
+
         try {
             main = startApiService(true);
             final Invocation.Builder invocationBuilder = sendHttpRequest(HEALTHCHECK_ENDPOINT);
@@ -105,6 +195,7 @@ public class TestApiRestServer {
 
     @Test
     public void testHealthCheckFailure() throws InterruptedException, IOException {
+
         final RestServerParameters restServerParams = new CommonTestData().getRestServerParameters(false);
         restServerParams.setName(CommonTestData.API_GROUP_NAME);
         restServer = new ApiRestServer(restServerParams);
@@ -123,6 +214,7 @@ public class TestApiRestServer {
 
     @Test
     public void testHttpsHealthCheckSuccess() {
+
         try {
             main = startApiService(false);
             final Invocation.Builder invocationBuilder = sendHttpsRequest(HEALTHCHECK_ENDPOINT);
@@ -136,6 +228,7 @@ public class TestApiRestServer {
 
     @Test
     public void testApiStatistics_200() {
+
         try {
             main = startApiService(true);
             Invocation.Builder invocationBuilder = sendHttpRequest(STATISTICS_ENDPOINT);
@@ -154,6 +247,7 @@ public class TestApiRestServer {
 
     @Test
     public void testApiStatistics_500() {
+
         final RestServerParameters restServerParams = new CommonTestData().getRestServerParameters(false);
         restServerParams.setName(CommonTestData.API_GROUP_NAME);
         restServer = new ApiRestServer(restServerParams);
@@ -171,6 +265,7 @@ public class TestApiRestServer {
 
     @Test
     public void testHttpsApiStatistics() {
+
         try {
             main = startApiService(false);
             final Invocation.Builder invocationBuilder = sendHttpsRequest(STATISTICS_ENDPOINT);
@@ -184,6 +279,7 @@ public class TestApiRestServer {
 
     @Test
     public void testApiStatisticsConstructorIsPrivate() {
+
         try {
             final Constructor<ApiStatisticsManager> constructor = ApiStatisticsManager.class.getDeclaredConstructor();
             assertTrue(Modifier.isPrivate(constructor.getModifiers()));
@@ -194,7 +290,411 @@ public class TestApiRestServer {
         }
     }
 
+    @Test
+    public void testCreatePolicyTypes() {
+
+        assertThatCode(() -> {
+            main = startApiService(true);
+            for (String resrcName : toscaPolicyTypeResourceNames) {
+                Response rawResponse = createResource(POLICYTYPES, resrcName, true);
+                assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus());
+                ToscaServiceTemplate response = rawResponse.readEntity(ToscaServiceTemplate.class);
+                assertNotNull(response);
+                assertFalse(response.getPolicyTypes().get(0).isEmpty());
+            }
+        }).doesNotThrowAnyException();
+    }
+
+    @Test
+    public void testReadPolicyTypes() {
+
+        assertThatCode(() -> {
+            main = startApiService(true);
+            Response rawResponse = readResource(POLICYTYPES, true);
+            assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus());
+            ToscaServiceTemplate response = rawResponse.readEntity(ToscaServiceTemplate.class);
+            assertTrue(response.getPolicyTypes().get(0).isEmpty());
+
+            rawResponse = readResource(POLICYTYPES_TCA, true);
+            assertEquals(Response.Status.NOT_FOUND.getStatusCode(), rawResponse.getStatus());
+            ErrorResponse error = rawResponse.readEntity(ErrorResponse.class);
+            assertEquals("policy type with ID onap.policies.monitoring.cdap.tca.hi.lo.app:null does not exist",
+                    error.getErrorMessage());
+
+            rawResponse = readResource(POLICYTYPES_TCA_VERSION, true);
+            assertEquals(Response.Status.NOT_FOUND.getStatusCode(), rawResponse.getStatus());
+            error = rawResponse.readEntity(ErrorResponse.class);
+            assertEquals("policy type with ID onap.policies.monitoring.cdap.tca.hi.lo.app:1.0.0 does not exist",
+                    error.getErrorMessage());
+
+            rawResponse = readResource(POLICYTYPES_TCA_LATEST, true);
+            assertEquals(Response.Status.NOT_FOUND.getStatusCode(), rawResponse.getStatus());
+            error = rawResponse.readEntity(ErrorResponse.class);
+            assertEquals("policy type with ID onap.policies.monitoring.cdap.tca.hi.lo.app:null does not exist",
+                    error.getErrorMessage());
+
+            rawResponse = readResource(POLICYTYPES_COLLECTOR, true);
+            assertEquals(Response.Status.NOT_FOUND.getStatusCode(), rawResponse.getStatus());
+            error = rawResponse.readEntity(ErrorResponse.class);
+            assertEquals("policy type with ID "
+                + "onap.policies.monitoring.dcaegen2.collectors.datafile.datafile-app-server:null does not exist",
+                    error.getErrorMessage());
+
+            rawResponse = readResource(POLICYTYPES_COLLECTOR_VERSION, true);
+            assertEquals(Response.Status.NOT_FOUND.getStatusCode(), rawResponse.getStatus());
+            error = rawResponse.readEntity(ErrorResponse.class);
+            assertEquals("policy type with ID "
+                + "onap.policies.monitoring.dcaegen2.collectors.datafile.datafile-app-server:1.0.0 does not exist",
+                    error.getErrorMessage());
+
+            rawResponse = readResource(POLICYTYPES_COLLECTOR_LATEST, true);
+            assertEquals(Response.Status.NOT_FOUND.getStatusCode(), rawResponse.getStatus());
+            error = rawResponse.readEntity(ErrorResponse.class);
+            assertEquals("policy type with ID "
+                + "onap.policies.monitoring.dcaegen2.collectors.datafile.datafile-app-server:null does not exist",
+                    error.getErrorMessage());
+        }).doesNotThrowAnyException();
+    }
+
+    @Test
+    public void testDeletePolicyType() {
+
+        assertThatCode(() -> {
+            main = startApiService(true);
+            Response rawResponse = deleteResource(POLICYTYPES_TCA_VERSION, true);
+            assertEquals(Response.Status.NOT_FOUND.getStatusCode(), rawResponse.getStatus());
+            ErrorResponse error = rawResponse.readEntity(ErrorResponse.class);
+            assertEquals("policy type with ID onap.policies.monitoring.cdap.tca.hi.lo.app:1.0.0 does not exist",
+                    error.getErrorMessage());
+
+            rawResponse = deleteResource(POLICYTYPES_COLLECTOR_VERSION, true);
+            assertEquals(Response.Status.NOT_FOUND.getStatusCode(), rawResponse.getStatus());
+            error = rawResponse.readEntity(ErrorResponse.class);
+            assertEquals("policy type with ID "
+                + "onap.policies.monitoring.dcaegen2.collectors.datafile.datafile-app-server:1.0.0 does not exist",
+                    error.getErrorMessage());
+        }).doesNotThrowAnyException();
+    }
+
+    @Test
+    public void testCreatePolicies() {
+
+        assertThatCode(() -> {
+            main = startApiService(true);
+            for (String resrcName : toscaPolicyResourceNames) {
+                Response rawResponse = createResource(POLICYTYPES_TCA_POLICIES, resrcName, true);
+                assertEquals(Response.Status.NOT_FOUND.getStatusCode(), rawResponse.getStatus());
+                ErrorResponse error = rawResponse.readEntity(ErrorResponse.class);
+                assertEquals("policy type with ID onap.policies.monitoring.cdap.tca.hi.lo.app:1.0.0 does not exist",
+                        error.getErrorMessage());
+            }
+        }).doesNotThrowAnyException();
+    }
+
+    @Test
+    public void testReadPolicies() {
+
+        assertThatCode(() -> {
+            main = startApiService(true);
+            Response rawResponse = readResource(POLICYTYPES_TCA_POLICIES, true);
+            assertEquals(Response.Status.NOT_FOUND.getStatusCode(), rawResponse.getStatus());
+            ErrorResponse error = rawResponse.readEntity(ErrorResponse.class);
+            assertEquals("policy with ID null:null and "
+                + "type onap.policies.monitoring.cdap.tca.hi.lo.app:1.0.0 does not exist",
+                    error.getErrorMessage());
+
+            rawResponse = readResource(POLICYTYPES_TCA_POLICIES_VCPE, true);
+            assertEquals(Response.Status.NOT_FOUND.getStatusCode(), rawResponse.getStatus());
+            error = rawResponse.readEntity(ErrorResponse.class);
+            assertEquals("policy with ID onap.restart.tca:null and "
+                + "type onap.policies.monitoring.cdap.tca.hi.lo.app:1.0.0 does not exist",
+                    error.getErrorMessage());
+
+            rawResponse = readResource(POLICYTYPES_TCA_POLICIES_VCPE_VERSION, true);
+            assertEquals(Response.Status.NOT_FOUND.getStatusCode(), rawResponse.getStatus());
+            error = rawResponse.readEntity(ErrorResponse.class);
+            assertEquals("policy with ID onap.restart.tca:1.0.0 and "
+                + "type onap.policies.monitoring.cdap.tca.hi.lo.app:1.0.0 does not exist",
+                    error.getErrorMessage());
+
+            rawResponse = readResource(POLICYTYPES_TCA_POLICIES_VCPE_LATEST, true);
+            assertEquals(Response.Status.NOT_FOUND.getStatusCode(), rawResponse.getStatus());
+            error = rawResponse.readEntity(ErrorResponse.class);
+            assertEquals("policy with ID onap.restart.tca:null and "
+                + "type onap.policies.monitoring.cdap.tca.hi.lo.app:1.0.0 does not exist",
+                    error.getErrorMessage());
+        }).doesNotThrowAnyException();
+    }
+
+    @Test
+    public void testDeletePolicies() {
+
+        assertThatCode(() -> {
+            main = startApiService(true);
+            Response rawResponse = deleteResource(POLICYTYPES_TCA_POLICIES_VCPE_VERSION, true);
+            assertEquals(Response.Status.NOT_FOUND.getStatusCode(), rawResponse.getStatus());
+            ErrorResponse error = rawResponse.readEntity(ErrorResponse.class);
+            assertEquals("policy with ID onap.restart.tca:1.0.0 and "
+                + "type onap.policies.monitoring.cdap.tca.hi.lo.app:1.0.0 does not exist",
+                    error.getErrorMessage());
+        }).doesNotThrowAnyException();
+    }
+
+    @Test
+    public void testCreateGuardPolicies() {
+
+        assertThatCode(() -> {
+            main = startApiService(true);
+            for (String resrcName : legacyGuardPolicyResourceNames) {
+                Response rawResponse = createGuardPolicy(GUARD_POLICIES, resrcName, true);
+                assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus());
+            }
+        }).doesNotThrowAnyException();
+    }
+
+    @Test
+    public void testCreateOperationalPolicies() {
+
+        assertThatCode(() -> {
+            main = startApiService(true);
+            for (String resrcName : legacyOperationalPolicyResourceNames) {
+                Response rawResponse = createOperationalPolicy(OPS_POLICIES, resrcName, true);
+                assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus());
+            }
+        }).doesNotThrowAnyException();
+    }
+
+    @Test
+    public void testReadGuardPolicies() {
+
+        assertThatCode(() -> {
+            main = startApiService(true);
+            Response rawResponse = readResource(GUARD_POLICIES_VDNS_FL, true);
+            assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), rawResponse.getStatus());
+            ErrorResponse error = rawResponse.readEntity(ErrorResponse.class);
+            assertEquals("no policy found for policy ID: guard.frequency.scaleout",
+                    error.getErrorMessage());
+
+            rawResponse = readResource(GUARD_POLICIES_VDNS_FL_VERSION, true);
+            assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), rawResponse.getStatus());
+            error = rawResponse.readEntity(ErrorResponse.class);
+            assertEquals("no policy found for policy ID: guard.frequency.scaleout",
+                    error.getErrorMessage());
+
+            rawResponse = readResource(GUARD_POLICIES_VDNS_MINMAX, true);
+            assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), rawResponse.getStatus());
+            error = rawResponse.readEntity(ErrorResponse.class);
+            assertEquals("no policy found for policy ID: guard.minmax.scaleout",
+                    error.getErrorMessage());
+
+            rawResponse = readResource(GUARD_POLICIES_VDNS_MINMAX_VERSION, true);
+            assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), rawResponse.getStatus());
+            error = rawResponse.readEntity(ErrorResponse.class);
+            assertEquals("no policy found for policy ID: guard.minmax.scaleout",
+                    error.getErrorMessage());
+        }).doesNotThrowAnyException();
+    }
+
+    @Test
+    public void testReadOperationalPolicies() {
+
+        assertThatCode(() -> {
+            main = startApiService(true);
+            Response rawResponse = readResource(OPS_POLICIES_VCPE, true);
+            assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), rawResponse.getStatus());
+            ErrorResponse error = rawResponse.readEntity(ErrorResponse.class);
+            assertEquals("no policy found for policy ID: operational.restart",
+                    error.getErrorMessage());
+
+            rawResponse = readResource(OPS_POLICIES_VCPE_VERSION, true);
+            assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), rawResponse.getStatus());
+            error = rawResponse.readEntity(ErrorResponse.class);
+            assertEquals("no policy found for policy ID: operational.restart",
+                    error.getErrorMessage());
+
+            rawResponse = readResource(OPS_POLICIES_VDNS, true);
+            assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), rawResponse.getStatus());
+            error = rawResponse.readEntity(ErrorResponse.class);
+            assertEquals("no policy found for policy ID: operational.scaleout",
+                    error.getErrorMessage());
+
+            rawResponse = readResource(OPS_POLICIES_VDNS_VERSION, true);
+            assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), rawResponse.getStatus());
+            error = rawResponse.readEntity(ErrorResponse.class);
+            assertEquals("no policy found for policy ID: operational.scaleout",
+                    error.getErrorMessage());
+
+            rawResponse = readResource(OPS_POLICIES_VFIREWALL, true);
+            assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), rawResponse.getStatus());
+            error = rawResponse.readEntity(ErrorResponse.class);
+            assertEquals("no policy found for policy ID: operational.modifyconfig",
+                    error.getErrorMessage());
+
+            rawResponse = readResource(OPS_POLICIES_VFIREWALL_VERSION, true);
+            assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), rawResponse.getStatus());
+            error = rawResponse.readEntity(ErrorResponse.class);
+            assertEquals("no policy found for policy ID: operational.modifyconfig",
+                    error.getErrorMessage());
+        }).doesNotThrowAnyException();
+    }
+
+    @Test
+    public void testDeleteGuardPolicy() {
+
+        assertThatCode(() -> {
+            main = startApiService(true);
+            Response rawResponse = deleteResource(GUARD_POLICIES_VDNS_FL_VERSION, true);
+            assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), rawResponse.getStatus());
+            ErrorResponse error = rawResponse.readEntity(ErrorResponse.class);
+            assertEquals("no policy found for policy ID: guard.frequency.scaleout",
+                    error.getErrorMessage());
+        }).doesNotThrowAnyException();
+    }
+
+    @Test
+    public void testDeleteOperationalPolicy() {
+
+        assertThatCode(() -> {
+            main = startApiService(true);
+            Response rawResponse = deleteResource(OPS_POLICIES_VCPE_VERSION, true);
+            assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), rawResponse.getStatus());
+            ErrorResponse error = rawResponse.readEntity(ErrorResponse.class);
+            assertEquals("no policy found for policy ID: operational.restart",
+                    error.getErrorMessage());
+        }).doesNotThrowAnyException();
+    }
+
+    @Test
+    public void testHttpsCreatePolicyTypes() {
+
+        assertThatCode(() -> {
+            main = startApiService(false);
+            for (String resrcName : toscaPolicyTypeResourceNames) {
+                Response rawResponse = createResource(POLICYTYPES, resrcName, false);
+                assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus());
+                ToscaServiceTemplate response = rawResponse.readEntity(ToscaServiceTemplate.class);
+                assertNotNull(response);
+                assertFalse(response.getPolicyTypes().get(0).isEmpty());
+            }
+        }).doesNotThrowAnyException();
+    }
+
+    @Test
+    public void testHttpsCreatePolicies() {
+
+        assertThatCode(() -> {
+            main = startApiService(false);
+            for (String resrcName : toscaPolicyResourceNames) {
+                Response rawResponse = createResource(POLICYTYPES_TCA_POLICIES, resrcName, false);
+                assertEquals(Response.Status.NOT_FOUND.getStatusCode(), rawResponse.getStatus());
+                ErrorResponse error = rawResponse.readEntity(ErrorResponse.class);
+                assertEquals("policy type with ID onap.policies.monitoring.cdap.tca.hi.lo.app:1.0.0 does not exist",
+                        error.getErrorMessage());
+            }
+        }).doesNotThrowAnyException();
+    }
+
+    @Test
+    public void testHttpsCreateGuardPolicies() {
+
+        assertThatCode(() -> {
+            main = startApiService(false);
+            for (String resrcName : legacyGuardPolicyResourceNames) {
+                Response rawResponse = createGuardPolicy(GUARD_POLICIES, resrcName, false);
+                assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus());
+            }
+        }).doesNotThrowAnyException();
+    }
+
+    @Test
+    public void testHttpsCreateOperationalPolicies() {
+
+        assertThatCode(() -> {
+            main = startApiService(false);
+            for (String resrcName : legacyOperationalPolicyResourceNames) {
+                Response rawResponse = createOperationalPolicy(OPS_POLICIES, resrcName, false);
+                assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus());
+            }
+        }).doesNotThrowAnyException();
+    }
+
+    private Response createResource(String endpoint, String resourceName, boolean http) throws Exception {
+
+        ToscaServiceTemplate rawServiceTemplate = standardCoder.decode(
+                ResourceUtils.getResourceAsString(resourceName), ToscaServiceTemplate.class);
+        final Invocation.Builder invocationBuilder;
+
+        if (http) {
+            invocationBuilder = sendHttpRequest(endpoint);
+        } else {
+            invocationBuilder = sendHttpsRequest(endpoint);
+        }
+
+        Entity<ToscaServiceTemplate> entity = Entity.entity(rawServiceTemplate, MediaType.APPLICATION_JSON);
+        return invocationBuilder.post(entity);
+    }
+
+    private Response createGuardPolicy(String endpoint, String resourceName, boolean http) throws Exception {
+
+        LegacyGuardPolicyInput rawGuardPolicy = standardCoder.decode(
+                ResourceUtils.getResourceAsString(resourceName), LegacyGuardPolicyInput.class);
+        final Invocation.Builder invocationBuilder;
+
+        if (http) {
+            invocationBuilder = sendHttpRequest(endpoint);
+        } else {
+            invocationBuilder = sendHttpsRequest(endpoint);
+        }
+
+        Entity<LegacyGuardPolicyInput> entity = Entity.entity(rawGuardPolicy, MediaType.APPLICATION_JSON);
+        return invocationBuilder.post(entity);
+    }
+
+    private Response createOperationalPolicy(String endpoint, String resourceName, boolean http) throws Exception {
+
+        LegacyOperationalPolicy rawOpsPolicy = standardCoder.decode(
+                ResourceUtils.getResourceAsString(resourceName), LegacyOperationalPolicy.class);
+        final Invocation.Builder invocationBuilder;
+
+        if (http) {
+            invocationBuilder = sendHttpRequest(endpoint);
+        } else {
+            invocationBuilder = sendHttpsRequest(endpoint);
+        }
+
+        Entity<LegacyOperationalPolicy> entity = Entity.entity(rawOpsPolicy, MediaType.APPLICATION_JSON);
+        return invocationBuilder.post(entity);
+    }
+
+    private Response readResource(String endpoint, boolean http) throws Exception {
+
+        final Invocation.Builder invocationBuilder;
+
+        if (http) {
+            invocationBuilder = sendHttpRequest(endpoint);
+        } else {
+            invocationBuilder = sendHttpsRequest(endpoint);
+        }
+
+        return invocationBuilder.get();
+
+    }
+
+    private Response deleteResource(String endpoint, boolean http) throws Exception {
+
+        final Invocation.Builder invocationBuilder;
+
+        if (http) {
+            invocationBuilder = sendHttpRequest(endpoint);
+        } else {
+            invocationBuilder = sendHttpsRequest(endpoint);
+        }
+
+        return invocationBuilder.delete();
+    }
+
     private Main startApiService(final boolean http) {
+
         final String[] apiConfigParameters = new String[2];
         if (http) {
             apiConfigParameters[0] = "-c";
@@ -211,16 +711,22 @@ public class TestApiRestServer {
     }
 
     private void stopApiService(final Main main) throws PolicyApiException {
+
         main.shutdown();
     }
 
     private Invocation.Builder sendHttpRequest(final String endpoint) throws Exception {
+
         final ClientConfig clientConfig = new ClientConfig();
 
         final HttpAuthenticationFeature feature = HttpAuthenticationFeature.basic("healthcheck", "zb!XztG34");
         clientConfig.register(feature);
 
         final Client client = ClientBuilder.newClient(clientConfig);
+
+        client.property(ClientProperties.METAINF_SERVICES_LOOKUP_DISABLE, "true");
+        client.register(GsonMessageBodyHandler.class);
+
         final WebTarget webTarget = client.target("http://localhost:6969/policy/api/v1/" + endpoint);
 
         final Invocation.Builder invocationBuilder = webTarget.request(MediaType.APPLICATION_JSON);
@@ -255,6 +761,9 @@ public class TestApiRestServer {
         final HttpAuthenticationFeature feature = HttpAuthenticationFeature.basic("healthcheck", "zb!XztG34");
         client.register(feature);
 
+        client.property(ClientProperties.METAINF_SERVICES_LOOKUP_DISABLE, "true");
+        client.register(GsonMessageBodyHandler.class);
+
         final WebTarget webTarget = client.target("https://localhost:6969/policy/api/v1/" + endpoint);
 
         final Invocation.Builder invocationBuilder = webTarget.request(MediaType.APPLICATION_JSON);
@@ -266,6 +775,7 @@ public class TestApiRestServer {
     }
 
     private void updateApiStatistics() {
+
         ApiStatisticsManager.updateTotalApiCallCount();
         ApiStatisticsManager.updateApiCallSuccessCount();
         ApiStatisticsManager.updateApiCallFailureCount();
@@ -284,11 +794,13 @@ public class TestApiRestServer {
     }
 
     private void validateStatisticsReport(final StatisticsReport report, final int code) {
+
         assertEquals(code, report.getCode());
     }
 
     private void validateHealthCheckReport(final String name, final String url, final boolean healthy, final int code,
             final String message, final HealthCheckReport report) {
+
         assertEquals(name, report.getName());
         assertEquals(url, report.getUrl());
         assertEquals(healthy, report.isHealthy());
index 085255f..76641aa 100644 (file)
@@ -67,6 +67,7 @@ public class TestLegacyGuardPolicyProvider {
 
         standardCoder = new StandardCoder();
         providerParams = new PolicyModelsProviderParameters();
+        providerParams.setDatabaseDriver("org.h2.Driver");
         providerParams.setDatabaseUrl("jdbc:h2:mem:testdb");
         providerParams.setDatabaseUser("policy");
         providerParams.setDatabasePassword(Base64.getEncoder().encodeToString("P01icY".getBytes()));
index e9adae7..8aa1979 100644 (file)
@@ -64,6 +64,7 @@ public class TestLegacyOperationalPolicyProvider {
 
         standardCoder = new StandardCoder();
         providerParams = new PolicyModelsProviderParameters();
+        providerParams.setDatabaseDriver("org.h2.Driver");
         providerParams.setDatabaseUrl("jdbc:h2:mem:testdb");
         providerParams.setDatabaseUser("policy");
         providerParams.setDatabasePassword(Base64.getEncoder().encodeToString("P01icY".getBytes()));
index 7720575..653f467 100644 (file)
@@ -67,6 +67,7 @@ public class TestPolicyProvider {
 
         standardCoder = new StandardCoder();
         providerParams = new PolicyModelsProviderParameters();
+        providerParams.setDatabaseDriver("org.h2.Driver");
         providerParams.setDatabaseUrl("jdbc:h2:mem:testdb");
         providerParams.setDatabaseUser("policy");
         providerParams.setDatabasePassword(Base64.getEncoder().encodeToString("P01icY".getBytes()));
index 76825b2..9dc7726 100644 (file)
@@ -64,6 +64,7 @@ public class TestPolicyTypeProvider {
 
         standardCoder = new StandardCoder();
         providerParams = new PolicyModelsProviderParameters();
+        providerParams.setDatabaseDriver("org.h2.Driver");
         providerParams.setDatabaseUrl("jdbc:h2:mem:testdb");
         providerParams.setDatabaseUser("policy");
         providerParams.setDatabasePassword(Base64.getEncoder().encodeToString("P01icY".getBytes()));
index 8812ebf..cfd7d16 100644 (file)
@@ -2,20 +2,19 @@
 <!--
   ============LICENSE_START=======================================================
    Copyright (C) 2019 Nordix Foundation.
-   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=========================================================
 -->
         <class>org.onap.policy.models.pdp.persistence.concepts.JpaPdp</class>
 
         <properties>
-            <property name="javax.persistence.jdbc.driver" value="org.h2.Driver" />
-            <property name="javax.persistence.jdbc.url" value="jdbc:h2:mem:testdb" />
-            <property name="javax.persistence.jdbc.user" value="policy" />
-            <property name="javax.persistence.jdbc.password" value="P01icY" />
-            <property name="eclipselink.ddl-generation" value="drop-and-create-tables" />
-            <property name="eclipselink.ddl-generation.output-mode" value="database" />
-            <property name="eclipselink.logging.level" value="INFO" />
-        </properties>
-    </persistence-unit>
-
-    <persistence-unit name="ToscaConceptMariaDBTest" transaction-type="RESOURCE_LOCAL">
-        <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
-
-        <class>org.onap.policy.models.dao.converters.CDataConditioner</class>
-        <class>org.onap.policy.models.dao.converters.Uuid2String</class>
-        <class>org.onap.policy.models.base.PfConceptKey</class>
-        <class>org.onap.policy.models.tosca.simple.concepts.JpaToscaPolicyType</class>
-        <class>org.onap.policy.models.tosca.simple.concepts.JpaToscaPolicy</class>
-        <class>org.onap.policy.models.pdp.persistence.concepts.JpaPdpGroup</class>
-        <class>org.onap.policy.models.pdp.persistence.concepts.JpaPdpSubGroup</class>
-        <class>org.onap.policy.models.pdp.persistence.concepts.JpaPdp</class>
-
-        <properties>
-            <property name="javax.persistence.jdbc.driver" value="org.mariadb.jdbc.Driver" />
-            <property name="javax.persistence.jdbc.url" value="jdbc:mariadb://localhost:3306/policy" />
-            <property name="javax.persistence.jdbc.user" value="policy" />
-            <property name="javax.persistence.jdbc.password" value="P01icY" />
             <property name="javax.persistence.schema-generation.database.action" value="create" />
-
-            <!-- property name="eclipselink.logging.level" value="ALL" />
-            <property name="eclipselink.logging.level.jpa" value="ALL" />
-            <property name="eclipselink.logging.level.ddl" value="ALL" />
-            <property name="eclipselink.logging.level.connection" value="ALL" />
-            <property name="eclipselink.logging.level.sql" value="ALL" />
-            <property name="eclipselink.logging.level.transaction" value="ALL" />
-            <property name="eclipselink.logging.level.sequencing" value="ALL" />
-            <property name="eclipselink.logging.level.server" value="ALL" />
-            <property name="eclipselink.logging.level.query" value="ALL" />
-            <property name="eclipselink.logging.level.properties" value="ALL" /-->
-
-            <property name="eclipselink.ddl-generation" value="create-or-extend-tables" />
+            <property name="eclipselink.ddl-generation" value="drop-and-create-tables" />
             <property name="eclipselink.ddl-generation.output-mode" value="database" />
             <property name="eclipselink.logging.level" value="INFO" />
         </properties>
     </persistence-unit>
-</persistence>
+</persistence>
\ No newline at end of file
index c64271c..be9f581 100644 (file)
@@ -9,9 +9,10 @@
     "databaseProviderParameters": {
         "name": "PolicyProviderParameterGroup",
         "implementation": "org.onap.policy.models.provider.impl.DatabasePolicyModelsProviderImpl",
-        "databaseUrl": "jdbc:mariadb://localhost:3306/policy",
+        "databaseDriver": "org.h2.Driver",
+        "databaseUrl": "jdbc:h2:mem:testdb",
         "databaseUser": "policy",
         "databasePassword": "UDAxaWNZ",
-        "persistenceUnit": "ToscaConceptMariaDBTest"
+        "persistenceUnit": "ToscaConceptTest"
     }
 }
index 878dc1f..d7774fc 100644 (file)
@@ -10,6 +10,7 @@
     "databaseProviderParameters": {
         "name": "PolicyProviderParameterGroup",
         "implementation": "org.onap.policy.models.provider.impl.DatabasePolicyModelsProviderImpl",
+        "databaseDriver": "org.h2.Driver",
         "databaseUrl": "jdbc:h2:mem:testdb",
         "databaseUser": "policy",
         "databasePassword": "UDAxaWNZ",
index 80fb823..24cc69f 100644 (file)
@@ -5,5 +5,13 @@
         "port":6969,
         "userName":"healthcheck",
         "password":"zb!XztG34"
+    },
+    "databaseProviderParameters": {
+        "name": "PolicyProviderParameterGroup",
+        "implementation": "org.onap.policy.models.provider.impl.DatabasePolicyModelsProviderImpl",
+        "databaseUrl": "jdbc:h2:mem:testdb",
+        "databaseUser": "policy",
+        "databasePassword": "UDAxaWNZ",
+        "persistenceUnit": "ToscaConceptTest"
     }
 }
index 67e461e..339c20b 100644 (file)
@@ -9,6 +9,7 @@
     "databaseProviderParameters": {
         "name": "PolicyProviderParameterGroup",
         "implementation": "org.onap.policy.models.provider.impl.DatabasePolicyModelsProviderImpl",
+        "databaseDriver": "org.h2.Driver",
         "databaseUrl": "jdbc:h2:mem:testdb",
         "databaseUser": "policy",
         "databasePassword": "UDAxaWNZ",
index 2600d20..8ac1080 100644 (file)
@@ -9,6 +9,7 @@
     "databaseProviderParameters": {
         "name": "PolicyProviderParameterGroup",
         "implementation": "org.onap.policy.models.provider.impl.DatabasePolicyModelsProviderImpl",
+        "databaseDriver": "org.h2.Driver",
         "databaseUrl": "jdbc:h2:mem:testdb",
         "databaseUser": "policy",
         "databasePassword": "UDAxaWNZ",
index ed2fbde..6f93389 100644 (file)
@@ -8,6 +8,7 @@
     "databaseProviderParameters": {
         "name": "PolicyProviderParameterGroup",
         "implementation": "org.onap.policy.models.provider.impl.DatabasePolicyModelsProviderImpl",
+        "databaseDriver": "org.h2.Driver",
         "databaseUrl": "jdbc:h2:mem:testdb",
         "databaseUser": "policy",
         "databasePassword": "UDAxaWNZ",
index 2dbfe8c..45a7d41 100644 (file)
@@ -1,6 +1,6 @@
 {
   "policy-id" : "guard.minmax.scaleout",
-  "contents" : {
+  "content" : {
         "actor": "SO",
         "recipe": "scaleOut",
         "targets": ".*",
index 2188cb2..d2f9584 100644 (file)
@@ -1,48 +1,50 @@
 {
     "tosca_definitions_version": "tosca_simple_yaml_1_0_0",
-    "policies": [
-        {
-            "onap.scaleout.tca": {
-                "type": "onap.policies.monitoring.cdap.tca.hi.lo.app",
-                "version": "1.0.0",
-                "metadata": {
-                    "policy-id": "onap.scaleout.tca"
-                },
-                "properties": {
-                    "tca_policy": {
-                        "domain": "measurementsForVfScaling",
-                        "metricsPerEventName": [
-                            {
-                                "eventName": "vLoadBalancer",
-                                "controlLoopSchemaType": "VNF",
-                                "policyScope": "type=configuration",
-                                "policyName": "onap.scaleout.tca",
-                                "policyVersion": "v0.0.1",
-                                "thresholds": [
-                                    {
-                                        "closedLoopControlName": "ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3",
-                                        "closedLoopEventStatus": "ONSET",
-                                        "version": "1.0.2",
-                                        "fieldPath": "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated",
-                                        "thresholdValue": 500,
-                                        "direction": "LESS_OR_EQUAL",
-                                        "severity": "MAJOR"
-                                    },
-                                    {
-                                        "closedLoopControlName": "ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3",
-                                        "closedLoopEventStatus": "ONSET",
-                                        "version": "1.0.2",
-                                        "fieldPath": "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated",
-                                        "thresholdValue": 5000,
-                                        "direction": "GREATER_OR_EQUAL",
-                                        "severity": "CRITICAL"
-                                    }
-                                ]
-                            }
-                        ]
+    "topology_template": {
+        "policies": [
+            {
+                "onap.scaleout.tca": {
+                    "type": "onap.policies.monitoring.cdap.tca.hi.lo.app",
+                    "version": "1.0.0",
+                    "metadata": {
+                        "policy-id": "onap.scaleout.tca"
+                    },
+                    "properties": {
+                        "tca_policy": {
+                            "domain": "measurementsForVfScaling",
+                            "metricsPerEventName": [
+                                {
+                                    "eventName": "vLoadBalancer",
+                                    "controlLoopSchemaType": "VNF",
+                                    "policyScope": "type=configuration",
+                                    "policyName": "onap.scaleout.tca",
+                                    "policyVersion": "v0.0.1",
+                                    "thresholds": [
+                                        {
+                                            "closedLoopControlName": "ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3",
+                                            "closedLoopEventStatus": "ONSET",
+                                            "version": "1.0.2",
+                                            "fieldPath": "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated",
+                                            "thresholdValue": 500,
+                                            "direction": "LESS_OR_EQUAL",
+                                            "severity": "MAJOR"
+                                        },
+                                        {
+                                            "closedLoopControlName": "ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3",
+                                            "closedLoopEventStatus": "ONSET",
+                                            "version": "1.0.2",
+                                            "fieldPath": "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated",
+                                            "thresholdValue": 5000,
+                                            "direction": "GREATER_OR_EQUAL",
+                                            "severity": "CRITICAL"
+                                        }
+                                    ]
+                                }
+                            ]
+                        }
                     }
                 }
             }
-        }
-    ]
+        ]
+    }
 }
\ No newline at end of file
index 93545a0..a0046fb 100644 (file)
@@ -1,45 +1,50 @@
 {
     "tosca_definitions_version": "tosca_simple_yaml_1_0_0",
-    "policies": [
-        {
-            "onap.vfirewall.tca": {
-                "type": "onap.policy.monitoring.cdap.tca.hi.lo.app",
-                "version": "1.0.0",
-                "properties": {
-                    "tca_policy": {
-                        "domain": "measurementsForVfScaling",
-                        "metricsPerEventName": [
-                            {
-                                "eventName": "vLoadBalancer",
-                                "controlLoopSchemaType": "VNF",
-                                "policyScope": "resource=vLoadBalancer;type=configuration",
-                                "policyName": "onap.vfirewall.tca",
-                                "policyVersion": "v0.0.1",
-                                "thresholds": [
-                                    {
-                                        "closedLoopControlName": "ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a",
-                                        "closedLoopEventStatus": "ONSET",
-                                        "version": "1.0.2",
-                                        "fieldPath": "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated",
-                                        "thresholdValue": 500,
-                                        "direction": "LESS_OR_EQUAL",
-                                        "severity": "MAJOR"
-                                    },
-                                    {
-                                        "closedLoopControlName": "ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a",
-                                        "closedLoopEventStatus": "ONSET",
-                                        "version": "1.0.2",
-                                        "fieldPath": "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated",
-                                        "thresholdValue": 5000,
-                                        "direction": "GREATER_OR_EQUAL",
-                                        "severity": "CRITICAL"
-                                    }
-                                ]
-                            }
-                        ]
+    "topology_template": {
+        "policies": [
+            {
+                "onap.vfirewall.tca": {
+                    "type": "onap.policies.monitoring.cdap.tca.hi.lo.app",
+                    "version": "1.0.0",
+                    "metadata": {
+                        "policy-id": "onap.vfirewall.tca"
+                    },
+                    "properties": {
+                        "tca_policy": {
+                            "domain": "measurementsForVfScaling",
+                            "metricsPerEventName": [
+                                {
+                                    "eventName": "vLoadBalancer",
+                                    "controlLoopSchemaType": "VNF",
+                                    "policyScope": "resource=vLoadBalancer;type=configuration",
+                                    "policyName": "onap.vfirewall.tca",
+                                    "policyVersion": "v0.0.1",
+                                    "thresholds": [
+                                        {
+                                            "closedLoopControlName": "ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a",
+                                            "closedLoopEventStatus": "ONSET",
+                                            "version": "1.0.2",
+                                            "fieldPath": "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated",
+                                            "thresholdValue": 500,
+                                            "direction": "LESS_OR_EQUAL",
+                                            "severity": "MAJOR"
+                                        },
+                                        {
+                                            "closedLoopControlName": "ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a",
+                                            "closedLoopEventStatus": "ONSET",
+                                            "version": "1.0.2",
+                                            "fieldPath": "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated",
+                                            "thresholdValue": 5000,
+                                            "direction": "GREATER_OR_EQUAL",
+                                            "severity": "CRITICAL"
+                                        }
+                                    ]
+                                }
+                            ]
+                        }
                     }
                 }
             }
-        }
-    ]
+        ]
+    }
 }
\ No newline at end of file
index f85013d..9c7c92f 100644 (file)
@@ -11,7 +11,8 @@
     "databaseProviderParameters": {
         "name": "PolicyProviderParameterGroup",
         "implementation": "org.onap.policy.models.provider.impl.DatabasePolicyModelsProviderImpl",
-        "databaseUrl": "jdbc:mariadb://policydb:3306/policy",
+        "databaseDriver": "org.mariadb.jdbc.Driver",
+        "databaseUrl": "jdbc:mariadb://mariadb:3306/policyadmin",
         "databaseUser": "policy_user",
         "databasePassword": "cG9saWN5X3VzZXI=",
         "persistenceUnit": "PolicyMariaDb"
index ab36813..6ee3c72 100644 (file)
@@ -11,7 +11,8 @@
     "databaseProviderParameters": {
         "name": "PolicyProviderParameterGroup",
         "implementation": "org.onap.policy.models.provider.impl.DatabasePolicyModelsProviderImpl",
-        "databaseUrl": "jdbc:mariadb://policydb:3306/policy",
+        "databaseDriver": "org.mariadb.jdbc.Driver",
+        "databaseUrl": "jdbc:mariadb://mariadb:3306/policyadmin",
         "databaseUser": "policy_user",
         "databasePassword": "cG9saWN5X3VzZXI=",
         "persistenceUnit": "PolicyMariaDb"