summaryrefslogtreecommitdiffstats
path: root/models-tosca/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'models-tosca/src/main')
-rw-r--r--models-tosca/src/main/java/org/onap/policy/models/tosca/authorative/provider/AuthorativeToscaProvider.java8
-rw-r--r--models-tosca/src/main/java/org/onap/policy/models/tosca/simple/provider/SimpleToscaProvider.java124
-rw-r--r--models-tosca/src/main/java/org/onap/policy/models/tosca/utils/ToscaUtils.java29
3 files changed, 149 insertions, 12 deletions
diff --git a/models-tosca/src/main/java/org/onap/policy/models/tosca/authorative/provider/AuthorativeToscaProvider.java b/models-tosca/src/main/java/org/onap/policy/models/tosca/authorative/provider/AuthorativeToscaProvider.java
index 8c6e492f7..7999f620b 100644
--- a/models-tosca/src/main/java/org/onap/policy/models/tosca/authorative/provider/AuthorativeToscaProvider.java
+++ b/models-tosca/src/main/java/org/onap/policy/models/tosca/authorative/provider/AuthorativeToscaProvider.java
@@ -1,6 +1,6 @@
/*-
* ============LICENSE_START=======================================================
- * Copyright (C) 2019 Nordix Foundation.
+ * Copyright (C) 2019-2020 Nordix Foundation.
* Modifications Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -28,6 +28,7 @@ import java.util.Map;
import java.util.TreeMap;
import lombok.NonNull;
+
import org.onap.policy.models.base.PfConceptKey;
import org.onap.policy.models.base.PfModelException;
import org.onap.policy.models.dao.PfDao;
@@ -64,8 +65,9 @@ public class AuthorativeToscaProvider {
LOGGER.debug("->getPolicyTypes: name={}, version={}", name, version);
- ToscaServiceTemplate serviceTemplate =
- new SimpleToscaProvider().getPolicyTypes(dao, name, version).toAuthorative();
+ JpaToscaServiceTemplate jpaServiceTemplate = new SimpleToscaProvider().getPolicyTypes(dao, name, version);
+
+ ToscaServiceTemplate serviceTemplate = jpaServiceTemplate.toAuthorative();
LOGGER.debug("<-getPolicyTypes: name={}, version={}, serviceTemplate={}", name, version, serviceTemplate);
return serviceTemplate;
diff --git a/models-tosca/src/main/java/org/onap/policy/models/tosca/simple/provider/SimpleToscaProvider.java b/models-tosca/src/main/java/org/onap/policy/models/tosca/simple/provider/SimpleToscaProvider.java
index 30ab89491..cce6fd9ee 100644
--- a/models-tosca/src/main/java/org/onap/policy/models/tosca/simple/provider/SimpleToscaProvider.java
+++ b/models-tosca/src/main/java/org/onap/policy/models/tosca/simple/provider/SimpleToscaProvider.java
@@ -1,6 +1,6 @@
/*-
* ============LICENSE_START=======================================================
- * Copyright (C) 2019 Nordix Foundation.
+ * Copyright (C) 2019-2020 Nordix Foundation.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -36,6 +36,8 @@ import org.onap.policy.models.base.PfKey;
import org.onap.policy.models.base.PfModelException;
import org.onap.policy.models.base.PfModelRuntimeException;
import org.onap.policy.models.dao.PfDao;
+import org.onap.policy.models.tosca.simple.concepts.JpaToscaDataType;
+import org.onap.policy.models.tosca.simple.concepts.JpaToscaDataTypes;
import org.onap.policy.models.tosca.simple.concepts.JpaToscaPolicies;
import org.onap.policy.models.tosca.simple.concepts.JpaToscaPolicy;
import org.onap.policy.models.tosca.simple.concepts.JpaToscaPolicyType;
@@ -55,6 +57,116 @@ public class SimpleToscaProvider {
private static final Logger LOGGER = LoggerFactory.getLogger(SimpleToscaProvider.class);
/**
+ * Get data types.
+ *
+ * @param dao the DAO to use to access the database
+ * @param name the name of the data type to get, set to null to get all policy types
+ * @param version the version of the data type to get, set to null to get all versions
+ * @return the data types found
+ * @throws PfModelException on errors getting data types
+ */
+ public JpaToscaServiceTemplate getDataTypes(@NonNull final PfDao dao, final String name, final String version)
+ throws PfModelException {
+ LOGGER.debug("->getDataTypes: name={}, version={}", name, version);
+
+ // Create the structure of the TOSCA service template to contain the data type
+ JpaToscaServiceTemplate serviceTemplate = new JpaToscaServiceTemplate();
+ serviceTemplate.setDataTypes(new JpaToscaDataTypes());
+
+ // Add the data type to the TOSCA service template
+ List<JpaToscaDataType> jpaDataTypeList = dao.getFiltered(JpaToscaDataType.class, name, version);
+ serviceTemplate.getDataTypes().getConceptMap().putAll(asConceptMap(jpaDataTypeList));
+
+ LOGGER.debug("<-getDataTypes: name={}, version={}, serviceTemplate={}", name, version, serviceTemplate);
+ return serviceTemplate;
+ }
+
+ /**
+ * Create data types.
+ *
+ * @param dao the DAO to use to access the database
+ * @param serviceTemplate the service template containing the definition of the data types to be created
+ * @return the TOSCA service template containing the created data types
+ * @throws PfModelException on errors creating data types
+ */
+ public JpaToscaServiceTemplate createDataTypes(@NonNull final PfDao dao,
+ @NonNull final JpaToscaServiceTemplate serviceTemplate) throws PfModelException {
+ LOGGER.debug("->createDataTypes: serviceTempalate={}", serviceTemplate);
+
+ ToscaUtils.assertDataTypesExist(serviceTemplate);
+
+ for (JpaToscaDataType dataType : serviceTemplate.getDataTypes().getAll(null)) {
+ dao.create(dataType);
+ }
+
+ // Return the created Data types
+ JpaToscaDataTypes returnDataTypes = new JpaToscaDataTypes();
+
+ for (PfConceptKey dataTypeKey : serviceTemplate.getDataTypes().getConceptMap().keySet()) {
+ returnDataTypes.getConceptMap().put(dataTypeKey, dao.get(JpaToscaDataType.class, dataTypeKey));
+ }
+
+ JpaToscaServiceTemplate returnServiceTemplate = new JpaToscaServiceTemplate();
+ returnServiceTemplate.setDataTypes(returnDataTypes);
+
+ LOGGER.debug("<-createDataTypes: returnServiceTempalate={}", returnServiceTemplate);
+ return returnServiceTemplate;
+ }
+
+ /**
+ * Update Data types.
+ *
+ * @param dao the DAO to use to access the database
+ * @param serviceTemplate the service template containing the definition of the data types to be modified
+ * @return the TOSCA service template containing the modified data types
+ * @throws PfModelException on errors updating Data types
+ */
+ public JpaToscaServiceTemplate updateDataTypes(@NonNull final PfDao dao,
+ @NonNull final JpaToscaServiceTemplate serviceTemplate) throws PfModelException {
+ LOGGER.debug("->updateDataTypes: serviceTempalate={}", serviceTemplate);
+
+ ToscaUtils.assertDataTypesExist(serviceTemplate);
+
+ for (JpaToscaDataType dataType : serviceTemplate.getDataTypes().getAll(null)) {
+ dao.update(dataType);
+ }
+
+ // Return the created data types
+ JpaToscaDataTypes returnDataTypes = new JpaToscaDataTypes();
+
+ for (PfConceptKey dataTypeKey : serviceTemplate.getDataTypes().getConceptMap().keySet()) {
+ returnDataTypes.getConceptMap().put(dataTypeKey, dao.get(JpaToscaDataType.class, dataTypeKey));
+ }
+
+ JpaToscaServiceTemplate returnServiceTemplate = new JpaToscaServiceTemplate();
+ returnServiceTemplate.setDataTypes(returnDataTypes);
+
+ LOGGER.debug("<-updateDataTypes: returnServiceTempalate={}", returnServiceTemplate);
+ return returnServiceTemplate;
+ }
+
+ /**
+ * Delete Data types.
+ *
+ * @param dao the DAO to use to access the database
+ * @param dataTypeKey the data type key for the Data types to be deleted, if the version of the key is null, all
+ * versions of the data type are deleted.
+ * @return the TOSCA service template containing the data types that were deleted
+ * @throws PfModelException on errors deleting data types
+ */
+ public JpaToscaServiceTemplate deleteDataType(@NonNull final PfDao dao, @NonNull final PfConceptKey dataTypeKey)
+ throws PfModelException {
+ LOGGER.debug("->deleteDataType: key={}", dataTypeKey);
+
+ JpaToscaServiceTemplate serviceTemplate = getDataTypes(dao, dataTypeKey.getName(), dataTypeKey.getVersion());
+
+ dao.delete(JpaToscaDataType.class, dataTypeKey);
+
+ LOGGER.debug("<-deleteDataType: key={}, serviceTempalate={}", dataTypeKey, serviceTemplate);
+ return serviceTemplate;
+ }
+
+ /**
* Get policy types.
*
* @param dao the DAO to use to access the database
@@ -75,7 +187,7 @@ public class SimpleToscaProvider {
List<JpaToscaPolicyType> jpaPolicyTypeList = dao.getFiltered(JpaToscaPolicyType.class, name, version);
serviceTemplate.getPolicyTypes().getConceptMap().putAll(asConceptMap(jpaPolicyTypeList));
- LOGGER.debug("<-getPolicyTypes: name={}, version={}, serviceTemplate=", name, version, serviceTemplate);
+ LOGGER.debug("<-getPolicyTypes: name={}, version={}, serviceTemplate={}", name, version, serviceTemplate);
return serviceTemplate;
}
@@ -112,7 +224,7 @@ public class SimpleToscaProvider {
}
/**
- * Create policy types.
+ * Update policy types.
*
* @param dao the DAO to use to access the database
* @param serviceTemplate the service template containing the definition of the policy types to be modified
@@ -161,7 +273,7 @@ public class SimpleToscaProvider {
dao.delete(JpaToscaPolicyType.class, policyTypeKey);
- LOGGER.debug("<-deletePolicyType: key={}, serviceTempalate=", policyTypeKey, serviceTemplate);
+ LOGGER.debug("<-deletePolicyType: key={}, serviceTempalate={}", policyTypeKey, serviceTemplate);
return serviceTemplate;
}
@@ -187,7 +299,7 @@ public class SimpleToscaProvider {
List<JpaToscaPolicy> jpaPolicyList = dao.getFiltered(JpaToscaPolicy.class, name, version);
serviceTemplate.getTopologyTemplate().getPolicies().getConceptMap().putAll(asConceptMap(jpaPolicyList));
- LOGGER.debug("<-getPolicies: name={}, version={}, serviceTemplate=", name, version, serviceTemplate);
+ LOGGER.debug("<-getPolicies: name={}, version={}, serviceTemplate={}", name, version, serviceTemplate);
return serviceTemplate;
}
@@ -273,7 +385,7 @@ public class SimpleToscaProvider {
dao.delete(JpaToscaPolicy.class, policyKey);
- LOGGER.debug("<-deletePolicy: key={}, serviceTempalate=", policyKey, serviceTemplate);
+ LOGGER.debug("<-deletePolicy: key={}, serviceTempalate={}", policyKey, serviceTemplate);
return serviceTemplate;
}
diff --git a/models-tosca/src/main/java/org/onap/policy/models/tosca/utils/ToscaUtils.java b/models-tosca/src/main/java/org/onap/policy/models/tosca/utils/ToscaUtils.java
index 1b509e2a8..23a428b65 100644
--- a/models-tosca/src/main/java/org/onap/policy/models/tosca/utils/ToscaUtils.java
+++ b/models-tosca/src/main/java/org/onap/policy/models/tosca/utils/ToscaUtils.java
@@ -1,6 +1,6 @@
/*-
* ============LICENSE_START=======================================================
- * Copyright (C) 2019 Nordix Foundation.
+ * Copyright (C) 2019-2020 Nordix Foundation.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -43,7 +43,28 @@ public final class ToscaUtils {
}
/**
- * Check if policy types have been specified is initialized.
+ * Check if data types have been specified correctly.
+ *
+ * @param serviceTemplate the service template containing data types to be checked
+ */
+ public static void assertDataTypesExist(final JpaToscaServiceTemplate serviceTemplate) {
+ if (serviceTemplate.getDataTypes() == null) {
+ String errorMessage = "no data types specified on service template";
+ LOGGER.warn(errorMessage);
+ throw new PfModelRuntimeException(Response.Status.BAD_REQUEST, errorMessage);
+ }
+
+ if (serviceTemplate.getDataTypes().getConceptMap().isEmpty()) {
+ String errorMessage = "list of data types specified on service template is empty";
+ LOGGER.warn(errorMessage);
+ throw new PfModelRuntimeException(Response.Status.BAD_REQUEST, errorMessage);
+ }
+ }
+
+ /**
+ * Check if policy types have been specified correctly.
+ *
+ * @param serviceTemplate the service template containing policy types to be checked
*/
public static void assertPolicyTypesExist(final JpaToscaServiceTemplate serviceTemplate) {
if (serviceTemplate.getPolicyTypes() == null) {
@@ -60,7 +81,9 @@ public final class ToscaUtils {
}
/**
- * Check if policy types have been specified is initialized.
+ * Check if policies have been specified correctly.
+ *
+ * @param serviceTemplate the service template containing policy types to be checked
*/
public static void assertPoliciesExist(final JpaToscaServiceTemplate serviceTemplate) {
if (serviceTemplate.getTopologyTemplate() == null) {