X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=models-provider%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fpolicy%2Fmodels%2Fprovider%2FPolicyModelsProvider.java;h=5321e8597bb054f5ce17589db7d7bab64ed1b778;hb=d72a2ab96255ccc7a9c3a3506eab5509cbcf9ac9;hp=1e8fd24ff40321759847ef4c9454fb017a9cc196;hpb=8ad3f95cdcec48b8315a5febfd4ec07bae7aabba;p=policy%2Fmodels.git 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..5321e8597 100644 --- a/models-provider/src/main/java/org/onap/policy/models/provider/PolicyModelsProvider.java +++ b/models-provider/src/main/java/org/onap/policy/models/provider/PolicyModelsProvider.java @@ -1,7 +1,8 @@ /*- * ============LICENSE_START======================================================= - * Copyright (C) 2019-2020 Nordix Foundation. + * Copyright (C) 2019-2021 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,21 +22,25 @@ package org.onap.policy.models.provider; -import java.util.Date; +import java.time.Instant; +import java.util.Collection; import java.util.List; import lombok.NonNull; import org.onap.policy.models.base.PfModelException; +import org.onap.policy.models.pap.concepts.PolicyAudit; +import org.onap.policy.models.pap.persistence.provider.PolicyAuditProvider.AuditFilter; 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.ToscaConceptIdentifierOptVersion; +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.ToscaPolicyType; -import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyTypeFilter; import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate; -import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplateFilter; +import org.onap.policy.models.tosca.authorative.concepts.ToscaTypedEntityFilter; /** * This interface describes the operations that are provided to users and components for reading objects from and @@ -72,8 +77,8 @@ public interface PolicyModelsProvider extends AutoCloseable { * @return the service templates found * @throws PfModelException on errors getting service templates */ - public List getFilteredServiceTemplateList(@NonNull final ToscaServiceTemplateFilter filter) - throws PfModelException; + public List getFilteredServiceTemplateList( + @NonNull final ToscaEntityFilter filter) throws PfModelException; /** * Create service template. @@ -133,7 +138,7 @@ public interface PolicyModelsProvider extends AutoCloseable { * @return the policy types found * @throws PfModelException on errors getting policy types */ - public ToscaServiceTemplate getFilteredPolicyTypes(@NonNull final ToscaPolicyTypeFilter filter) + public ToscaServiceTemplate getFilteredPolicyTypes(@NonNull final ToscaEntityFilter filter) throws PfModelException; /** @@ -143,7 +148,7 @@ public interface PolicyModelsProvider extends AutoCloseable { * @return the policy types found * @throws PfModelException on errors getting policy types */ - public List getFilteredPolicyTypeList(@NonNull final ToscaPolicyTypeFilter filter) + public List getFilteredPolicyTypeList(@NonNull final ToscaEntityFilter filter) throws PfModelException; /** @@ -204,7 +209,8 @@ public interface PolicyModelsProvider extends AutoCloseable { * @return the policies found * @throws PfModelException on errors getting policies */ - public ToscaServiceTemplate getFilteredPolicies(@NonNull final ToscaPolicyFilter filter) throws PfModelException; + public ToscaServiceTemplate getFilteredPolicies(@NonNull final ToscaTypedEntityFilter filter) + throws PfModelException; /** * Get filtered policies. @@ -213,7 +219,8 @@ public interface PolicyModelsProvider extends AutoCloseable { * @return the policies found * @throws PfModelException on errors getting policies */ - public List getFilteredPolicyList(@NonNull final ToscaPolicyFilter filter) throws PfModelException; + public List getFilteredPolicyList(@NonNull final ToscaTypedEntityFilter filter) + throws PfModelException; /** * Create policies. @@ -319,7 +326,7 @@ public interface PolicyModelsProvider extends AutoCloseable { * @return the statistics found * @throws PfModelException on errors getting statistics */ - public List getPdpStatistics(final String name, final Date timestamp) throws PfModelException; + public List getPdpStatistics(final String name, final Instant timestamp) throws PfModelException; /** @@ -336,7 +343,7 @@ public interface PolicyModelsProvider extends AutoCloseable { * @throws PfModelException on errors getting policies */ public List getFilteredPdpStatistics(String name, @NonNull String pdpGroupName, String pdpSubGroup, - Date startTimeStamp, Date endTimeStamp, String sortOrder, int getRecordNum) throws PfModelException; + Instant startTimeStamp, Instant endTimeStamp, String sortOrder, int getRecordNum) throws PfModelException; /** * Creates PDP statistics. @@ -366,5 +373,56 @@ public interface PolicyModelsProvider extends AutoCloseable { * @return the PDP statistics deleted * @throws PfModelException on errors deleting PDP statistics */ - public List deletePdpStatistics(@NonNull String name, Date timestamp) throws PfModelException; + public List deletePdpStatistics(@NonNull String name, Instant timestamp) throws PfModelException; + + /** + * Gets all policy deployments. + * + * @return the deployments found + * @throws PfModelException on errors getting PDP groups + */ + public List getAllPolicyStatus() throws PfModelException; + + /** + * Gets all deployments for a policy. + * + * @return the deployments found + * @throws PfModelException on errors getting PDP groups + */ + public List getAllPolicyStatus(@NonNull ToscaConceptIdentifierOptVersion policy) + 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); + + /** + * Creates records for audit actions on policies. + * + * @param auditRecords the objects to create + */ + public void createAuditRecords(@NonNull List auditRecords); + + /** + * Collect the audit records. + * @param auditFilter filter for search + * @param numRecords max number of records to be collected + * @return list of {@link PolicyAudit} or empty if none or not match with filter + */ + public List getAuditRecords(AuditFilter auditFilter, @NonNull Integer numRecords); }