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=b87341faa1f9aa98f5cdc9df7b2e35e112b06fb3;hb=810a3becf84ddebd4f2ddac75ce126b9e7e433cf;hp=b0494ff6005eddec90a14436e6ef555a55280c26;hpb=8c57c0f7d3a17bdbdc9b21f5f0d778a299a31df7;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 b0494ff60..b87341faa 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,6 +1,8 @@ /*- * ============LICENSE_START======================================================= - * Copyright (C) 2019 Nordix Foundation. + * Copyright (C) 2019-2022 Nordix Foundation. + * Modifications Copyright (C) 2020, 2022 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. @@ -20,23 +22,25 @@ package org.onap.policy.models.provider; +import java.util.Collection; import java.util.List; import java.util.Map; - import lombok.NonNull; - -import org.apache.commons.lang3.tuple.Pair; import org.onap.policy.models.base.PfModelException; +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.PdpGroups; -import org.onap.policy.models.pdp.concepts.PdpStatistics; +import org.onap.policy.models.pdp.concepts.PdpGroupFilter; +import org.onap.policy.models.pdp.concepts.PdpPolicyStatus; 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.ToscaEntityKey; +import org.onap.policy.models.tosca.authorative.concepts.ToscaNodeTemplate; import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicy; import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyType; 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.LegacyGuardPolicyOutput; -import org.onap.policy.models.tosca.legacy.concepts.LegacyOperationalPolicy; +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 @@ -52,6 +56,61 @@ public interface PolicyModelsProvider extends AutoCloseable { */ public void init() throws PfModelException; + @Override + public void close() throws PfModelException; + + /** + * Get service templates. + * + * @param name the name of the topology template to get, set to null to get all service templates + * @param version the version of the service template to get, set to null to get all service templates + * @return the topology templates found + * @throws PfModelException on errors getting service templates + */ + public List getServiceTemplateList(final String name, final String version) + throws PfModelException; + + /** + * Get filtered service templates. + * + * @param filter the filter for the service templates to get + * @return the service templates found + * @throws PfModelException on errors getting service templates + */ + public List getFilteredServiceTemplateList( + @NonNull final ToscaEntityFilter filter) throws PfModelException; + + /** + * Create service template. + * + * @param serviceTemplate the service template to be created + * @return the created service template + * @throws PfModelException on errors creating the service template + */ + public ToscaServiceTemplate createServiceTemplate(@NonNull final ToscaServiceTemplate serviceTemplate) + throws PfModelException; + + /** + * Update service template. + * + * @param serviceTemplate the service template to be updated + * @return the updated service template + * @throws PfModelException on errors updating the service template + */ + public ToscaServiceTemplate updateServiceTemplate(@NonNull final ToscaServiceTemplate serviceTemplate) + throws PfModelException; + + /** + * Delete service template. + * + * @param name the name of the service template to delete. + * @param version the version of the service template to delete. + * @return the TOSCA service template that was deleted + * @throws PfModelException on errors deleting policy types + */ + public ToscaServiceTemplate deleteServiceTemplate(@NonNull final String name, @NonNull final String version) + throws PfModelException; + /** * Get policy types. * @@ -73,22 +132,24 @@ public interface PolicyModelsProvider extends AutoCloseable { public List getPolicyTypeList(final String name, final String version) throws PfModelException; /** - * Get latest policy types. + * Get filtered policy types. * - * @param name the name of the policy type to get, set to null to get all policy types + * @param filter the filter for the policy types to get * @return the policy types found * @throws PfModelException on errors getting policy types */ - public ToscaServiceTemplate getLatestPolicyTypes(final String name) throws PfModelException; + public ToscaServiceTemplate getFilteredPolicyTypes(@NonNull final ToscaEntityFilter filter) + throws PfModelException; /** - * Get latest policy types. + * Get filtered policy types. * - * @param name the name of the policy type to get, set to null to get all policy types + * @param filter the filter for the policy types to get * @return the policy types found * @throws PfModelException on errors getting policy types */ - public List getLatestPolicyTypeList(final String name) throws PfModelException; + public List getFilteredPolicyTypeList(@NonNull final ToscaEntityFilter filter) + throws PfModelException; /** * Create policy types. @@ -101,7 +162,7 @@ public interface PolicyModelsProvider extends AutoCloseable { throws PfModelException; /** - * Create policy types. + * Update policy types. * * @param serviceTemplate the service template containing the definition of the policy types to be modified * @return the TOSCA service template containing the modified policy types @@ -116,7 +177,7 @@ public interface PolicyModelsProvider extends AutoCloseable { * @param name the name of the policy type to delete. * @param version the version of the policy type to delete. * @return the TOSCA service template containing the policy type that was deleted - * @throws PfModelException on errors deleting policy types + * @throws PfModelException on errors deleting the policy type */ public ToscaServiceTemplate deletePolicyType(@NonNull final String name, @NonNull final String version) throws PfModelException; @@ -142,31 +203,24 @@ public interface PolicyModelsProvider extends AutoCloseable { public List getPolicyList(final String name, final String version) throws PfModelException; /** - * Get policies for a policy type name. + * Get filtered policies. * - * @param policyTypeName the name of the policy type for which to get policies + * @param filter the filter for the policies to get * @return the policies found * @throws PfModelException on errors getting policies */ - public List getPolicyList4PolicyType(@NonNull final String policyTypeName) throws PfModelException; - - /** - * Get latest policies. - * - * @param name the name of the policy to get, null to get all policies - * @return the policies found - * @throws PfModelException on errors getting policies - */ - public ToscaServiceTemplate getLatestPolicies(final String name) throws PfModelException; + public ToscaServiceTemplate getFilteredPolicies(@NonNull final ToscaTypedEntityFilter filter) + throws PfModelException; /** - * Get latest policies. + * Get filtered policies. * - * @param name the name of the policy to get, null to get all policies + * @param filter the filter for the policies to get * @return the policies found * @throws PfModelException on errors getting policies */ - public List getLatestPolicyList(final String name) throws PfModelException; + public List getFilteredPolicyList(@NonNull final ToscaTypedEntityFilter filter) + throws PfModelException; /** * Create policies. @@ -199,111 +253,75 @@ public interface PolicyModelsProvider extends AutoCloseable { public ToscaServiceTemplate deletePolicy(@NonNull final String name, @NonNull final String version) throws PfModelException; - /** - * Get legacy operational policy. - * - * @param policyId ID of the policy. - * @return the policies found - * @throws PfModelException on errors getting policies - */ - public LegacyOperationalPolicy getOperationalPolicy(@NonNull final String policyId) throws PfModelException; /** - * Create legacy operational policy. + * Create tosca node templates. * - * @param legacyOperationalPolicy the definition of the policy to be created. - * @return the created policy - * @throws PfModelException on errors creating policies - */ - public LegacyOperationalPolicy createOperationalPolicy( - @NonNull final LegacyOperationalPolicy legacyOperationalPolicy) throws PfModelException; - - /** - * Update legacy operational policy. - * - * @param legacyOperationalPolicy the definition of the policy to be updated - * @return the updated policy - * @throws PfModelException on errors updating policies + * @param serviceTemplate the definitions of the new node templates to be created. + * @return the tosca node templates that were created + * @throws PfModelException on errors creating tosca node templates */ - public LegacyOperationalPolicy updateOperationalPolicy( - @NonNull final LegacyOperationalPolicy legacyOperationalPolicy) throws PfModelException; + public ToscaServiceTemplate createToscaNodeTemplates(@NonNull final ToscaServiceTemplate serviceTemplate) + throws PfModelException; /** - * Delete legacy operational policy. + * Update tosca node templates. * - * @param policyId ID of the policy. - * @return the deleted policy - * @throws PfModelException on errors deleting policies + * @param serviceTemplate with node templates to be updated. + * @return the service template with node templates that were updated + * @throws PfModelException on errors updating tosca node templates */ - public LegacyOperationalPolicy deleteOperationalPolicy(@NonNull final String policyId) throws PfModelException; + public ToscaServiceTemplate updateToscaNodeTemplates(@NonNull final ToscaServiceTemplate serviceTemplate) + throws PfModelRuntimeException, PfModelException; /** - * Get legacy guard policy. + * Delete a tosca node template. * - * @param policyId ID of the policy. - * @return the policies found - * @throws PfModelException on errors getting policies + * @param name the name of the node template to delete. + * @param version the version of the node template to delete. + * @return the service template with node templates that was deleted + * @throws PfModelException on errors deleting a node template */ - public Map getGuardPolicy(@NonNull final String policyId) throws PfModelException; + public ToscaServiceTemplate deleteToscaNodeTemplate(@NonNull final String name, @NonNull final String version) + throws PfModelException; - /** - * Create legacy guard policy. - * - * @param legacyGuardPolicy the definition of the policy to be created. - * @return the created policy - * @throws PfModelException on errors creating policies - */ - public Map createGuardPolicy( - @NonNull final LegacyGuardPolicyInput legacyGuardPolicy) throws PfModelException; /** - * Update legacy guard policy. + * Get filtered node template metadataSet entities. * - * @param legacyGuardPolicy the definition of the policy to be updated - * @return the updated policy - * @throws PfModelException on errors updating policies + * @return the list of metadataSet found + * @throws PfModelException on errors getting node template metadataSet */ - public Map updateGuardPolicy( - @NonNull final LegacyGuardPolicyInput legacyGuardPolicy) throws PfModelException; + public List>> getNodeTemplateMetadataSets(final String name, + final String version) + throws PfModelException; /** - * Delete legacy guard policy. + * Get filtered node template entities. * - * @param policyId ID of the policy. - * @return the deleted policy - * @throws PfModelException on errors deleting policies + * @return the list of nodeTemplates found + * @throws PfModelException on errors getting node template */ - public Map deleteGuardPolicy(@NonNull final String policyId) - throws PfModelException; + public List getToscaNodeTemplate(final String name, final String version) + throws PfModelException; /** * Get PDP groups. * * @param name the name of the policy to get, null to get all PDP groups - * @param version the version of the policy to get, null to get all versions of a PDP group * @return the PDP groups found * @throws PfModelException on errors getting PDP groups */ - public PdpGroups getPdpGroups(final String name, final String version) throws PfModelException; + public List getPdpGroups(final String name) throws PfModelException; /** - * Get latest PDP Groups. + * Get filtered PDP groups. * - * @param name the name of the PDP group to get, null to get all PDP groups + * @param filter the filter for the PDP groups to get * @return the PDP groups found * @throws PfModelException on errors getting policies */ - public PdpGroups getLatestPdpGroups(final String name) throws PfModelException; - - /** - * Get a filtered list of PDP groups. - * - * @param pdpType The PDP type filter for the returned PDP groups - * @param supportedPolicyTypes a list of policy type name/version pairs that the PDP groups must support. - * @return the PDP groups found - */ - public PdpGroups getFilteredPdpGroups(@NonNull final String pdpType, - @NonNull final List> supportedPolicyTypes); + public List getFilteredPdpGroups(@NonNull final PdpGroupFilter filter) throws PfModelException; /** * Creates PDP groups. @@ -312,7 +330,7 @@ public interface PolicyModelsProvider extends AutoCloseable { * @return the PDP groups created * @throws PfModelException on errors creating PDP groups */ - public PdpGroups createPdpGroups(@NonNull final PdpGroups pdpGroups) throws PfModelException; + public List createPdpGroups(@NonNull final List pdpGroups) throws PfModelException; /** * Updates PDP groups. @@ -321,59 +339,71 @@ public interface PolicyModelsProvider extends AutoCloseable { * @return the PDP groups updated * @throws PfModelException on errors updating PDP groups */ - public PdpGroups updatePdpGroups(@NonNull final PdpGroups pdpGroups) throws PfModelException; - + public List updatePdpGroups(@NonNull final List pdpGroups) throws PfModelException; /** * Update a PDP subgroup. * * @param pdpGroupName the name of the PDP group of the PDP subgroup - * @param pdpGroupVersion the version of the PDP group of the PDP subgroup * @param pdpSubGroup the PDP subgroup to be updated * @throws PfModelException on errors updating PDP subgroups */ - public void updatePdpSubGroup(@NonNull final String pdpGroupName, @NonNull final String pdpGroupVersion, - @NonNull final PdpSubGroup pdpSubGroup) throws PfModelException; + public void updatePdpSubGroup(@NonNull final String pdpGroupName, @NonNull final PdpSubGroup pdpSubGroup) + throws PfModelException; + + /** + * Update a PDP. + * + * @param pdpGroupName the name of the PDP group of the PDP subgroup + * @param pdpSubGroup the PDP subgroup to be updated + * @param pdp the PDP to be updated + * @throws PfModelException on errors updating PDP subgroups + */ + public void updatePdp(@NonNull final String pdpGroupName, @NonNull final String pdpSubGroup, @NonNull final Pdp pdp) + throws PfModelException; /** * Delete a PDP group. * * @param name the name of the policy to get, null to get all PDP groups - * @param version the version of the policy to get, null to get all versions of a PDP group * @return the PDP group deleted * @throws PfModelException on errors deleting PDP groups */ - public PdpGroup deletePdpGroup(@NonNull final String name, @NonNull final String version) throws PfModelException; + public PdpGroup deletePdpGroup(@NonNull final String name) throws PfModelException; /** - * Get PDP statistics. + * Gets all policy deployments. * - * @param name the name of the PDP group to get statistics for, null to get all PDP groups - * @param version the version of the PDP group to get statistics for, null to get all versions of a PDP group - * @return the statistics found - * @throws PfModelException on errors getting statistics + * @return the deployments found + * @throws PfModelException on errors getting PDP groups */ - public List getPdpStatistics(final String name, final String version) throws PfModelException; + public List getAllPolicyStatus() throws PfModelException; /** - * Update PDP statistics for a PDP. + * Gets all deployments for a policy. * - * @param pdpGroupName the name of the PDP group containing the PDP that the statistics are for - * @param pdpGroupVersion the version 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 - * @throws PfModelException on errors updating statistics + * @return the deployments found + * @throws PfModelException on errors getting PDP groups */ - public void updatePdpStatistics(@NonNull final String pdpGroupName, @NonNull final String pdpGroupVersion, - @NonNull final String pdpType, @NonNull final String pdpInstanceId, - @NonNull final PdpStatistics pdppStatistics) throws PfModelException; + public List getAllPolicyStatus(@NonNull ToscaConceptIdentifierOptVersion policy) + throws PfModelException; /** - * Get deployed policies. + * Gets the policy deployments for a PDP group. * - * @param name the name of the policy to get, null to get all policies - * @return the policies deployed as a map of policy lists keyed by PDP group - * @throws PfModelException on errors getting policies + * @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 Map> getDeployedPolicyList(final String name) throws PfModelException; + public void cudPolicyStatus(Collection createObjs, Collection updateObjs, + Collection deleteObjs); }