From e926efbc4d5dde8ade1a5521f5be1294079df057 Mon Sep 17 00:00:00 2001 From: Jim Hahn Date: Thu, 7 Jan 2021 09:07:05 -0500 Subject: Add PDP-Policy deployment table to DB Added a table to record the PDP policy deployment status, which is required for making PAP stateless. Issue-ID: POLICY-2648 Change-Id: Ibe40ce00aca7a600051edcac49e55651c1c0164f Signed-off-by: Jim Hahn --- .../models/provider/PolicyModelsProvider.java | 24 ++++++++++++++++++++++ .../impl/DatabasePolicyModelsProviderImpl.java | 18 +++++++++++++++- .../impl/DummyPolicyModelsProviderImpl.java | 16 ++++++++++++++- 3 files changed, 56 insertions(+), 2 deletions(-) (limited to 'models-provider/src/main/java') 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 1e8fd24ff..65876629c 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 @@ -2,6 +2,7 @@ * ============LICENSE_START======================================================= * Copyright (C) 2019-2020 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. @@ -21,6 +22,7 @@ package org.onap.policy.models.provider; +import java.util.Collection; import java.util.Date; import java.util.List; import lombok.NonNull; @@ -28,6 +30,7 @@ import org.onap.policy.models.base.PfModelException; import org.onap.policy.models.pdp.concepts.Pdp; import org.onap.policy.models.pdp.concepts.PdpGroup; import org.onap.policy.models.pdp.concepts.PdpGroupFilter; +import org.onap.policy.models.pdp.concepts.PdpPolicyStatus; import org.onap.policy.models.pdp.concepts.PdpStatistics; import org.onap.policy.models.pdp.concepts.PdpSubGroup; import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicy; @@ -367,4 +370,25 @@ public interface PolicyModelsProvider extends AutoCloseable { * @throws PfModelException on errors deleting PDP statistics */ public List deletePdpStatistics(@NonNull String name, Date timestamp) throws PfModelException; + + /** + * Gets the policy deployments for a PDP group. + * + * @param groupName the name of the PDP group of interest, null to get results for all + * PDP groups + * @return the deployments found + * @throws PfModelException on errors getting PDP groups + */ + public List getGroupPolicyStatus(@NonNull final String groupName) + throws PfModelException; + + /** + * Creates, updates, and deletes collections of policy status. + * + * @param createObjs the objects to create + * @param updateObjs the objects to update + * @param deleteObjs the objects to delete + */ + public void cudPolicyStatus(Collection createObjs, + Collection updateObjs, Collection deleteObjs); } 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 c80ca3194..f7c58cf19 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 @@ -1,7 +1,7 @@ /*- * ============LICENSE_START======================================================= * Copyright (C) 2019-2021 Nordix Foundation. - * Modifications Copyright (C) 2019-2020 AT&T Intellectual Property. All rights reserved. + * Modifications Copyright (C) 2019-2021 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"); @@ -22,6 +22,7 @@ package org.onap.policy.models.provider.impl; +import java.util.Collection; import java.util.Date; import java.util.List; import java.util.Properties; @@ -37,6 +38,7 @@ import org.onap.policy.models.dao.impl.DefaultPfDao; import org.onap.policy.models.pdp.concepts.Pdp; import org.onap.policy.models.pdp.concepts.PdpGroup; import org.onap.policy.models.pdp.concepts.PdpGroupFilter; +import org.onap.policy.models.pdp.concepts.PdpPolicyStatus; import org.onap.policy.models.pdp.concepts.PdpStatistics; import org.onap.policy.models.pdp.concepts.PdpSubGroup; import org.onap.policy.models.pdp.persistence.provider.PdpProvider; @@ -345,6 +347,20 @@ public class DatabasePolicyModelsProviderImpl implements PolicyModelsProvider { return new PdpStatisticsProvider().deletePdpStatistics(pfDao, name, timestamp); } + @Override + public List getGroupPolicyStatus(@NonNull String groupName) + throws PfModelException { + assertInitialized(); + return new PdpProvider().getGroupPolicyStatus(pfDao, groupName); + } + + @Override + public void cudPolicyStatus(Collection createObjs, + Collection updateObjs, Collection deleteObjs) { + assertInitialized(); + new PdpProvider().cudPolicyStatus(pfDao, createObjs, updateObjs, deleteObjs); + } + /** * Check if the model provider is initialized. */ 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 1d892272c..f0b968c10 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 @@ -1,7 +1,7 @@ /*- * ============LICENSE_START======================================================= * Copyright (C) 2019-2020 Nordix Foundation. - * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2019, 2021 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"); @@ -23,6 +23,7 @@ package org.onap.policy.models.provider.impl; import java.util.ArrayList; +import java.util.Collection; import java.util.Date; import java.util.List; import javax.ws.rs.core.Response; @@ -34,6 +35,7 @@ import org.onap.policy.models.base.PfModelRuntimeException; import org.onap.policy.models.pdp.concepts.Pdp; import org.onap.policy.models.pdp.concepts.PdpGroup; import org.onap.policy.models.pdp.concepts.PdpGroupFilter; +import org.onap.policy.models.pdp.concepts.PdpPolicyStatus; import org.onap.policy.models.pdp.concepts.PdpStatistics; import org.onap.policy.models.pdp.concepts.PdpSubGroup; import org.onap.policy.models.provider.PolicyModelsProvider; @@ -238,6 +240,18 @@ public class DummyPolicyModelsProviderImpl implements PolicyModelsProvider { return new ArrayList<>(); } + @Override + public List getGroupPolicyStatus(String groupName) throws PfModelException { + // Not implemented + return new ArrayList<>(); + } + + @Override + public void cudPolicyStatus(Collection createObjs, Collection updateObjs, + Collection deleteObjs) { + // Not implemented + } + /** * Return a ToscaServicetemplate dummy response. * -- cgit 1.2.3-korg