/*-
* ============LICENSE_START=======================================================
- * Copyright (C) 2019 Nordix Foundation.
+ * Copyright (C) 2019-2021 Nordix Foundation.
+ * 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");
* you may not use this file except in compliance with the License.
package org.onap.policy.models.provider.impl;
-import com.google.gson.Gson;
-
+import java.time.Instant;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
import javax.ws.rs.core.Response;
-
import lombok.NonNull;
-
-import org.onap.policy.common.utils.resources.TextFileUtils;
-import org.onap.policy.models.base.PfConceptKey;
+import org.onap.policy.common.utils.coder.StandardCoder;
+import org.onap.policy.common.utils.resources.ResourceUtils;
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.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;
-import org.onap.policy.models.tosca.concepts.ToscaServiceTemplate;
-import org.onap.policy.models.tosca.serialization.legacy.LegacyGuardPolicy;
-import org.onap.policy.models.tosca.serialization.legacy.LegacyOperationalPolicy;
-import org.onap.policy.models.tosca.serialization.simple.ToscaServiceTemplateMessageBodyHandler;
+import org.onap.policy.models.provider.PolicyModelsProviderParameters;
+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.ToscaPolicyType;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaTypedEntityFilter;
/**
- * This class provides a dummy implementation of the Policy Models Provider for the ONAP Policy
- * Framework.
+ * This class provides a dummy implementation of the Policy Models Provider for the ONAP Policy Framework.
*
* @author Liam Fallon (liam.fallon@est.tech)
+ * @author Chenfei Gao (cgao@research.att.com)
*/
public class DummyPolicyModelsProviderImpl implements PolicyModelsProvider {
+ /**
+ * Constructor that takes the parameters.
+ *
+ * @param parameters the parameters for the provider
+ */
+ public DummyPolicyModelsProviderImpl(final PolicyModelsProviderParameters parameters) {
+ // Default constructor
+ }
+
+ @Override
+ public void init() throws PfModelException {
+ // Not required on the dummy provider
+ }
+
+ @Override
+ public void close() {
+ // Not required on the dummy provider
+ }
+
+
+ @Override
+ public List<ToscaServiceTemplate> getServiceTemplateList(String name, String version) throws PfModelException {
+ return new ArrayList<>();
+ }
+
@Override
- public ToscaServiceTemplate getPolicyTypes(@NonNull PfConceptKey policyTypeKey) throws PfModelException {
- return getDummyResponse("src/main/resources/dummyimpl/DummyToscaPolicyTypeGetResponse.json");
+ public List<ToscaServiceTemplate> getFilteredServiceTemplateList(
+ @NonNull ToscaEntityFilter<ToscaServiceTemplate> filter) throws PfModelException {
+ return new ArrayList<>();
}
@Override
- public ToscaServiceTemplate createPolicyTypes(@NonNull ToscaServiceTemplate serviceTemplate)
+ public ToscaServiceTemplate createServiceTemplate(@NonNull ToscaServiceTemplate serviceTemplate)
throws PfModelException {
return serviceTemplate;
}
@Override
- public ToscaServiceTemplate updatePolicyTypes(@NonNull ToscaServiceTemplate serviceTemplate)
+ public ToscaServiceTemplate updateServiceTemplate(@NonNull ToscaServiceTemplate serviceTemplate)
throws PfModelException {
return serviceTemplate;
}
@Override
- public ToscaServiceTemplate deletePolicyTypes(@NonNull PfConceptKey policyTypeKey) throws PfModelException {
- return getDummyResponse("src/main/resources/dummyimpl/DummyToscaPolicyTypeDeleteResponse.json");
+ public ToscaServiceTemplate deleteServiceTemplate(@NonNull String name, @NonNull String version)
+ throws PfModelException {
+ return getDummyResponse("dummyimpl/DummyToscaServiceTemplateDeleteResponse.json");
+ }
+
+ @Override
+ public ToscaServiceTemplate getPolicyTypes(final String name, final String version) throws PfModelException {
+ return getDummyResponse("dummyimpl/DummyToscaPolicyTypeGetResponse.json");
+ }
+
+ @Override
+ public List<ToscaPolicyType> getPolicyTypeList(final String name, final String version) throws PfModelException {
+ return new ArrayList<>();
+ }
+
+ @Override
+ public ToscaServiceTemplate getFilteredPolicyTypes(ToscaEntityFilter<ToscaPolicyType> filter)
+ throws PfModelException {
+ return getDummyResponse("dummyimpl/DummyToscaPolicyTypeGetResponse.json");
}
@Override
- public ToscaServiceTemplate getPolicies(@NonNull PfConceptKey policyKey) throws PfModelException {
- return getDummyResponse("src/main/resources/dummyimpl/DummyToscaPolicyGetResponse.json");
+ public List<ToscaPolicyType> getFilteredPolicyTypeList(ToscaEntityFilter<ToscaPolicyType> filter) {
+ return new ArrayList<>();
}
@Override
- public ToscaServiceTemplate createPolicies(@NonNull ToscaServiceTemplate serviceTemplate) throws PfModelException {
+ public ToscaServiceTemplate createPolicyTypes(final ToscaServiceTemplate serviceTemplate) throws PfModelException {
return serviceTemplate;
}
@Override
- public ToscaServiceTemplate updatePolicies(@NonNull ToscaServiceTemplate serviceTemplate) throws PfModelException {
+ public ToscaServiceTemplate updatePolicyTypes(final ToscaServiceTemplate serviceTemplate) throws PfModelException {
return serviceTemplate;
}
@Override
- public ToscaServiceTemplate deletePolicies(@NonNull PfConceptKey policyKey) throws PfModelException {
- return getDummyResponse("src/main/resources/dummyimpl/DummyToscaPolicyDeleteResponse.json");
+ public ToscaServiceTemplate deletePolicyType(final String name, final String version) throws PfModelException {
+ return getDummyResponse("dummyimpl/DummyToscaPolicyTypeDeleteResponse.json");
}
@Override
- public LegacyOperationalPolicy getOperationalPolicy(@NonNull String policyId) throws PfModelException {
- return new LegacyOperationalPolicy();
+ public ToscaServiceTemplate getPolicies(final String name, final String version) throws PfModelException {
+ return getDummyResponse("dummyimpl/DummyToscaPolicyGetResponse.json");
}
@Override
- public LegacyOperationalPolicy createOperationalPolicy(@NonNull LegacyOperationalPolicy legacyOperationalPolicy)
- throws PfModelException {
- return legacyOperationalPolicy;
+ public List<ToscaPolicy> getPolicyList(final String name, final String version) throws PfModelException {
+ return new ArrayList<>();
}
@Override
- public LegacyOperationalPolicy updateOperationalPolicy(@NonNull LegacyOperationalPolicy legacyOperationalPolicy)
+ public ToscaServiceTemplate getFilteredPolicies(ToscaTypedEntityFilter<ToscaPolicy> filter)
throws PfModelException {
- return legacyOperationalPolicy;
+ return getDummyResponse("dummyimpl/DummyToscaPolicyGetResponse.json");
}
@Override
- public LegacyOperationalPolicy deleteOperationalPolicy(@NonNull String policyId) throws PfModelException {
- return new LegacyOperationalPolicy();
+ public List<ToscaPolicy> getFilteredPolicyList(ToscaTypedEntityFilter<ToscaPolicy> filter) throws PfModelException {
+ return new ArrayList<>();
}
@Override
- public LegacyGuardPolicy getGuardPolicy(@NonNull String policyId) throws PfModelException {
- return new LegacyGuardPolicy();
+ public ToscaServiceTemplate createPolicies(final ToscaServiceTemplate serviceTemplate) throws PfModelException {
+ return serviceTemplate;
}
@Override
- public LegacyGuardPolicy createGuardPolicy(@NonNull LegacyGuardPolicy legacyGuardPolicy) throws PfModelException {
- return legacyGuardPolicy;
+ public ToscaServiceTemplate updatePolicies(final ToscaServiceTemplate serviceTemplate) throws PfModelException {
+ return serviceTemplate;
}
@Override
- public LegacyGuardPolicy updateGuardPolicy(@NonNull LegacyGuardPolicy legacyGuardPolicy) throws PfModelException {
- return legacyGuardPolicy;
+ public ToscaServiceTemplate deletePolicy(final String name, final String version) throws PfModelException {
+ return getDummyResponse("dummyimpl/DummyToscaPolicyDeleteResponse.json");
}
@Override
- public LegacyGuardPolicy deleteGuardPolicy(@NonNull String policyId) throws PfModelException {
- return new LegacyGuardPolicy();
+ public List<PdpGroup> getPdpGroups(final String name) throws PfModelException {
+ return new ArrayList<>();
}
@Override
- public Object getPdpGroups(@NonNull Object somePdpGroupFilter) throws PfModelException {
- return null;
+ public List<PdpGroup> getFilteredPdpGroups(PdpGroupFilter filter) throws PfModelException {
+ return new ArrayList<>();
}
@Override
- public Object createPdpGroups(@NonNull Object somePdpGroupSpecification) throws PfModelException {
- return null;
+ public List<PdpGroup> createPdpGroups(final List<PdpGroup> pdpGroups) throws PfModelException {
+ return new ArrayList<>();
}
@Override
- public Object updatePdpGroups(@NonNull Object somePdpGroupSpecification) throws PfModelException {
- return null;
+ public List<PdpGroup> updatePdpGroups(final List<PdpGroup> pdpGroups) throws PfModelException {
+ return new ArrayList<>();
}
@Override
- public Object deletePdpGroups(@NonNull Object somePdpGroupFilter) throws PfModelException {
+ public void updatePdpSubGroup(final String pdpGroupName, final PdpSubGroup pdpSubGroup) throws PfModelException {
+ // Not implemented
+ }
+
+ @Override
+ public void updatePdp(String pdpGroupName, String pdpSubGroup, Pdp pdp) throws PfModelException {
+ // Not implemented
+ }
+
+ @Override
+ public PdpGroup deletePdpGroup(final String name) throws PfModelException {
return null;
}
+ @Override
+ public List<PdpStatistics> getPdpStatistics(final String name, final Instant timestamp) throws PfModelException {
+ return new ArrayList<>();
+ }
+
+ @Override
+ public List<PdpStatistics> getFilteredPdpStatistics(String name, String pdpGroupName, String pdpSubGroup,
+ Instant startTimeStamp, Instant endTimeStamp, String sortOrder, int getRecordNum) {
+ // Not implemented
+ return new ArrayList<>();
+ }
+
+ @Override
+ public List<PdpStatistics> createPdpStatistics(final List<PdpStatistics> pdpStatisticsList)
+ throws PfModelException {
+ // Not implemented
+ return new ArrayList<>();
+ }
+
+ @Override
+ public List<PdpStatistics> updatePdpStatistics(final List<PdpStatistics> pdpStatisticsList)
+ throws PfModelException {
+ // Not implemented
+ return new ArrayList<>();
+ }
+
+ @Override
+ public List<PdpStatistics> deletePdpStatistics(final String name, final Instant timestamp) {
+ // Not implemented
+ return new ArrayList<>();
+ }
+
+ @Override
+ public List<PdpPolicyStatus> getAllPolicyStatus() throws PfModelException {
+ // Not implemented
+ return new ArrayList<>();
+ }
+
+ @Override
+ public List<PdpPolicyStatus> getAllPolicyStatus(@NonNull ToscaConceptIdentifierOptVersion policy)
+ throws PfModelException {
+ // Not implemented
+ return new ArrayList<>();
+ }
+
+ @Override
+ public List<PdpPolicyStatus> getGroupPolicyStatus(String groupName) throws PfModelException {
+ // Not implemented
+ return new ArrayList<>();
+ }
+
+ @Override
+ public void cudPolicyStatus(Collection<PdpPolicyStatus> createObjs, Collection<PdpPolicyStatus> updateObjs,
+ Collection<PdpPolicyStatus> deleteObjs) {
+ // Not implemented
+ }
+
/**
* Return a ToscaServicetemplate dummy response.
*
* @param fileName the file name containing the dummy response
* @return the ToscaServiceTemplate with the dummy response
*/
- private ToscaServiceTemplate getDummyResponse(@NonNull final String fileName) {
- Gson gson = new ToscaServiceTemplateMessageBodyHandler().getGson();
+ protected ToscaServiceTemplate getDummyResponse(final String fileName) {
+ StandardCoder standardCoder = new StandardCoder();
ToscaServiceTemplate serviceTemplate;
try {
- serviceTemplate = gson.fromJson(TextFileUtils.getTextFileAsString(fileName), ToscaServiceTemplate.class);
+ serviceTemplate =
+ standardCoder.decode(ResourceUtils.getResourceAsString(fileName), ToscaServiceTemplate.class);
+ if (serviceTemplate == null) {
+ throw new PfModelException(Response.Status.INTERNAL_SERVER_ERROR, "error reading specified file");
+ }
} catch (Exception exc) {
throw new PfModelRuntimeException(Response.Status.INTERNAL_SERVER_ERROR, "error serializing object", exc);
}