From 1c9d2d26b1f34567dc6d3e9c51a4fb78c9fc13d4 Mon Sep 17 00:00:00 2001 From: "ning.xi" Date: Wed, 11 Dec 2019 15:55:59 +0800 Subject: pdp statistics database provider implementation Issue-ID: POLICY-1629 Signed-off-by: ning.xi Change-Id: Ife65d50c862ed90c3c9a3cea91a2b9a8d874fa14 --- .../models/provider/PolicyModelsProvider.java | 54 ++++++++--- .../impl/DatabasePolicyModelsProviderImpl.java | 101 +++++++++++++-------- .../impl/DummyPolicyModelsProviderImpl.java | 30 +++++- 3 files changed, 130 insertions(+), 55 deletions(-) (limited to 'models-provider/src/main/java/org') 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 bd28c3238..2e1c71426 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 @@ -20,11 +20,10 @@ package org.onap.policy.models.provider; +import java.util.Date; import java.util.List; import java.util.Map; - import lombok.NonNull; - import org.onap.policy.models.base.PfModelException; import org.onap.policy.models.pdp.concepts.Pdp; import org.onap.policy.models.pdp.concepts.PdpGroup; @@ -354,17 +353,50 @@ public interface PolicyModelsProvider extends AutoCloseable { * @return the statistics found * @throws PfModelException on errors getting statistics */ - public List getPdpStatistics(final String name) throws PfModelException; + public List getPdpStatistics(final String name, final Date timestamp) throws PfModelException; + + + /** + * Get filtered PdpStatistics. + * + * @param name the pdpInstance name for the PDP statistics to get + * @param pdpGroupName pdpGroupName to filter statistics + * @param pdpSubGroup pdpSubGroupType name to filter statistics + * @param startTimeStamp startTimeStamp to filter statistics + * @param endTimeStamp endTimeStamp to filter statistics + * @return the PDP statistics found + * @throws PfModelException on errors getting policies + */ + public List getFilteredPdpStatistics(String name, @NonNull String pdpGroupName, String pdpSubGroup, + Date startTimeStamp, Date endTimeStamp) throws PfModelException; + + /** + * Creates PDP statistics. + * + * @param pdpStatisticsList a specification of the PDP statistics to create + * @return the PDP statistics created + * @throws PfModelException on errors creating PDP statistics + */ + public List createPdpStatistics(@NonNull List pdpStatisticsList) + throws PfModelException; + + /** + * Updates PDP statistics. + * + * @param pdpStatisticsList a specification of the PDP statistics to update + * @return the PDP statistics updated + * @throws PfModelException on errors updating PDP statistics + */ + public List updatePdpStatistics(@NonNull List pdpStatisticsList) + throws PfModelException; /** - * Update PDP statistics for a PDP. + * Delete a PDP statistics. * - * @param pdpGroupName the name of the PDP group containing the PDP that the statistics are for - * @param pdpType the PDP type of the subgroup containing the PDP that the statistics are for - * @param pdpInstanceId the instance ID of the PDP to update statistics for - * @param pdpStatistics the PDP statistics - * @throws PfModelException on errors updating statistics + * @param name the name of the policy to get, null to get all PDP statistics + * @param timestamp the timestamp of statistics to delete, null to delete all statistics record of given pdp + * @return the PDP statistics deleted + * @throws PfModelException on errors deleting PDP statistics */ - public void updatePdpStatistics(@NonNull final String pdpGroupName, @NonNull final String pdpType, - @NonNull final String pdpInstanceId, @NonNull final PdpStatistics pdpStatistics) throws PfModelException; + public List deletePdpStatistics(@NonNull String name, Date timestamp) throws PfModelException; } 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 9971454bd..1ac24585f 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 @@ -22,14 +22,12 @@ package org.onap.policy.models.provider.impl; import java.util.Base64; +import java.util.Date; import java.util.List; import java.util.Map; import java.util.Properties; - import javax.ws.rs.core.Response; - import lombok.NonNull; - import org.eclipse.persistence.config.PersistenceUnitProperties; import org.onap.policy.models.base.PfModelException; import org.onap.policy.models.base.PfModelRuntimeException; @@ -43,6 +41,7 @@ import org.onap.policy.models.pdp.concepts.PdpGroupFilter; 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; +import org.onap.policy.models.pdp.persistence.provider.PdpStatisticsProvider; import org.onap.policy.models.provider.PolicyModelsProvider; import org.onap.policy.models.provider.PolicyModelsProviderParameters; import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicy; @@ -140,71 +139,71 @@ public class DatabasePolicyModelsProviderImpl implements PolicyModelsProvider { @Override public ToscaServiceTemplate getPolicyTypes(final String name, final String version) throws PfModelException { - assertInitilized(); + assertInitialized(); return new AuthorativeToscaProvider().getPolicyTypes(pfDao, name, version); } @Override public List getPolicyTypeList(final String name, final String version) throws PfModelException { - assertInitilized(); + assertInitialized(); return new AuthorativeToscaProvider().getPolicyTypeList(pfDao, name, version); } @Override public ToscaServiceTemplate getFilteredPolicyTypes(@NonNull ToscaPolicyTypeFilter filter) throws PfModelException { - assertInitilized(); + assertInitialized(); return new AuthorativeToscaProvider().getFilteredPolicyTypes(pfDao, filter); } @Override public List getFilteredPolicyTypeList(@NonNull ToscaPolicyTypeFilter filter) throws PfModelException { - assertInitilized(); + assertInitialized(); return new AuthorativeToscaProvider().getFilteredPolicyTypeList(pfDao, filter); } @Override public ToscaServiceTemplate createPolicyTypes(@NonNull final ToscaServiceTemplate serviceTemplate) throws PfModelException { - assertInitilized(); + assertInitialized(); return new AuthorativeToscaProvider().createPolicyTypes(pfDao, serviceTemplate); } @Override public ToscaServiceTemplate updatePolicyTypes(@NonNull final ToscaServiceTemplate serviceTemplate) throws PfModelException { - assertInitilized(); + assertInitialized(); return new AuthorativeToscaProvider().updatePolicyTypes(pfDao, serviceTemplate); } @Override public ToscaServiceTemplate deletePolicyType(@NonNull final String name, @NonNull final String version) throws PfModelException { - assertInitilized(); + assertInitialized(); return new AuthorativeToscaProvider().deletePolicyType(pfDao, name, version); } @Override public ToscaServiceTemplate getPolicies(final String name, final String version) throws PfModelException { - assertInitilized(); + assertInitialized(); return new AuthorativeToscaProvider().getPolicies(pfDao, name, version); } @Override public List getPolicyList(final String name, final String version) throws PfModelException { - assertInitilized(); + assertInitialized(); return new AuthorativeToscaProvider().getPolicyList(pfDao, name, version); } @Override public ToscaServiceTemplate getFilteredPolicies(@NonNull ToscaPolicyFilter filter) throws PfModelException { - assertInitilized(); + assertInitialized(); return new AuthorativeToscaProvider().getFilteredPolicies(pfDao, filter); } @Override public List getFilteredPolicyList(@NonNull ToscaPolicyFilter filter) throws PfModelException { - assertInitilized(); + assertInitialized(); return new AuthorativeToscaProvider().getFilteredPolicyList(pfDao, filter); } @@ -212,108 +211,109 @@ public class DatabasePolicyModelsProviderImpl implements PolicyModelsProvider { @Override public ToscaServiceTemplate createPolicies(@NonNull final ToscaServiceTemplate serviceTemplate) throws PfModelException { - assertInitilized(); + assertInitialized(); return new AuthorativeToscaProvider().createPolicies(pfDao, serviceTemplate); } @Override public ToscaServiceTemplate updatePolicies(@NonNull final ToscaServiceTemplate serviceTemplate) throws PfModelException { - assertInitilized(); + assertInitialized(); return new AuthorativeToscaProvider().updatePolicies(pfDao, serviceTemplate); } @Override public ToscaServiceTemplate deletePolicy(@NonNull final String name, @NonNull final String version) throws PfModelException { - assertInitilized(); + assertInitialized(); return new AuthorativeToscaProvider().deletePolicy(pfDao, name, version); } @Override public LegacyOperationalPolicy getOperationalPolicy(@NonNull final String policyId, final String policyVersion) throws PfModelException { - assertInitilized(); + assertInitialized(); return new LegacyProvider().getOperationalPolicy(pfDao, policyId, policyVersion); } @Override public LegacyOperationalPolicy createOperationalPolicy( @NonNull final LegacyOperationalPolicy legacyOperationalPolicy) throws PfModelException { - assertInitilized(); + assertInitialized(); return new LegacyProvider().createOperationalPolicy(pfDao, legacyOperationalPolicy); } @Override public LegacyOperationalPolicy updateOperationalPolicy( @NonNull final LegacyOperationalPolicy legacyOperationalPolicy) throws PfModelException { - assertInitilized(); + assertInitialized(); return new LegacyProvider().updateOperationalPolicy(pfDao, legacyOperationalPolicy); } @Override public LegacyOperationalPolicy deleteOperationalPolicy(@NonNull final String policyId, @NonNull final String policyVersion) throws PfModelException { - assertInitilized(); + assertInitialized(); return new LegacyProvider().deleteOperationalPolicy(pfDao, policyId, policyVersion); } @Override public Map getGuardPolicy(@NonNull final String policyId, final String policyVersion) throws PfModelException { - assertInitilized(); + assertInitialized(); return new LegacyProvider().getGuardPolicy(pfDao, policyId, policyVersion); } @Override public Map createGuardPolicy( @NonNull final LegacyGuardPolicyInput legacyGuardPolicy) throws PfModelException { - assertInitilized(); + assertInitialized(); return new LegacyProvider().createGuardPolicy(pfDao, legacyGuardPolicy); } @Override public Map updateGuardPolicy( @NonNull final LegacyGuardPolicyInput legacyGuardPolicy) throws PfModelException { - assertInitilized(); + assertInitialized(); return new LegacyProvider().updateGuardPolicy(pfDao, legacyGuardPolicy); } @Override public Map deleteGuardPolicy(@NonNull final String policyId, @NonNull final String policyVersion) throws PfModelException { - assertInitilized(); + assertInitialized(); return new LegacyProvider().deleteGuardPolicy(pfDao, policyId, policyVersion); } @Override public List getPdpGroups(final String name) throws PfModelException { - assertInitilized(); + assertInitialized(); return new PdpProvider().getPdpGroups(pfDao, name); } + @Override public List getFilteredPdpGroups(@NonNull PdpGroupFilter filter) throws PfModelException { - assertInitilized(); + assertInitialized(); return new PdpProvider().getFilteredPdpGroups(pfDao, filter); } @Override public List createPdpGroups(@NonNull final List pdpGroups) throws PfModelException { - assertInitilized(); + assertInitialized(); return new PdpProvider().createPdpGroups(pfDao, pdpGroups); } @Override public List updatePdpGroups(@NonNull final List pdpGroups) throws PfModelException { - assertInitilized(); + assertInitialized(); return new PdpProvider().updatePdpGroups(pfDao, pdpGroups); } @Override public void updatePdpSubGroup(@NonNull final String pdpGroupName, @NonNull final PdpSubGroup pdpSubGroup) throws PfModelException { - assertInitilized(); + assertInitialized(); new PdpProvider().updatePdpSubGroup(pfDao, pdpGroupName, pdpSubGroup); } @@ -325,27 +325,50 @@ public class DatabasePolicyModelsProviderImpl implements PolicyModelsProvider { @Override public PdpGroup deletePdpGroup(@NonNull final String name) throws PfModelException { - assertInitilized(); + assertInitialized(); return new PdpProvider().deletePdpGroup(pfDao, name); } @Override - public List getPdpStatistics(final String name) throws PfModelException { - assertInitilized(); - return new PdpProvider().getPdpStatistics(pfDao, name); + public List getPdpStatistics(final String name, final Date timestamp) throws PfModelException { + assertInitialized(); + return new PdpStatisticsProvider().getPdpStatistics(pfDao, name, timestamp); } @Override - public void updatePdpStatistics(@NonNull final String pdpGroupName, @NonNull final String pdpType, - @NonNull final String pdpInstanceId, @NonNull final PdpStatistics pdpStatistics) throws PfModelException { - assertInitilized(); - new PdpProvider().updatePdpStatistics(pfDao, pdpGroupName, pdpType, pdpInstanceId, pdpStatistics); + public List getFilteredPdpStatistics(final String name, @NonNull final String pdpGroupName, + final String pdpSubGroup, final Date startTimeStamp, final Date endTimeStamp) throws PfModelException { + assertInitialized(); + return new PdpStatisticsProvider().getFilteredPdpStatistics(pfDao, name, pdpGroupName, pdpSubGroup, + startTimeStamp, endTimeStamp); + } + + @Override + public List createPdpStatistics(@NonNull final List pdpStatisticsList) + throws PfModelException { + assertInitialized(); + return new PdpStatisticsProvider().createPdpStatistics(pfDao, pdpStatisticsList); + } + + @Override + public List updatePdpStatistics(@NonNull final List pdpStatisticsList) + throws PfModelException { + assertInitialized(); + return new PdpStatisticsProvider().updatePdpStatistics(pfDao, pdpStatisticsList); + } + + + @Override + public List deletePdpStatistics(@NonNull final String name, final Date timestamp) + throws PfModelException { + assertInitialized(); + return new PdpStatisticsProvider().deletePdpStatistics(pfDao, name, timestamp); } /** * Check if the model provider is initialized. */ - private void assertInitilized() { + private void assertInitialized() { if (pfDao == null) { String errorMessage = "policy models provider is not initilaized"; LOGGER.warn(errorMessage); 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 acc000c61..2c88bcacd 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 @@ -22,12 +22,11 @@ package org.onap.policy.models.provider.impl; import java.util.ArrayList; +import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; - import javax.ws.rs.core.Response; - import org.onap.policy.common.utils.coder.StandardCoder; import org.onap.policy.common.utils.resources.ResourceUtils; import org.onap.policy.models.base.PfModelException; @@ -229,14 +228,35 @@ public class DummyPolicyModelsProviderImpl implements PolicyModelsProvider { } @Override - public List getPdpStatistics(final String name) throws PfModelException { + public List getPdpStatistics(final String name, final Date timestamp) throws PfModelException { + return new ArrayList<>(); + } + + @Override + public List getFilteredPdpStatistics(String name, String pdpGroupName, String pdpSubGroup, + Date startTimeStamp, Date endTimeStamp) { + // Not implemented + return new ArrayList<>(); + } + + @Override + public List createPdpStatistics(final List pdpStatisticsList) + throws PfModelException { + // Not implemented + return new ArrayList<>(); + } + + @Override + public List updatePdpStatistics(final List pdpStatisticsList) + throws PfModelException { + // Not implemented return new ArrayList<>(); } @Override - public void updatePdpStatistics(final String pdpGroupName, final String pdpType, final String pdpInstanceId, - final PdpStatistics pdppStatistics) throws PfModelException { + public List deletePdpStatistics(final String name, final Date timestamp) { // Not implemented + return null; } /** -- cgit 1.2.3-korg