aboutsummaryrefslogtreecommitdiffstats
path: root/mso-catalog-db/src/main/java/org/openecomp
diff options
context:
space:
mode:
authorDeterme, Sebastien (sd378r) <sd378r@intl.att.com>2017-02-16 09:31:20 -0800
committerSébastien Determe <sd378r@intl.att.com>2017-02-17 11:57:10 +0000
commitd84744112fc95ec8b2cc204c77829fec8726006d (patch)
tree594e65f84a9fbcec40bd4ae0fa6153e20a572d64 /mso-catalog-db/src/main/java/org/openecomp
parentbb1680054ed64b7b788cf6b4fd438aad91f930b3 (diff)
Rework Database access classes
The Catalog Db and Requests DB have been reworked to be extendable by project using MSO opensource. Useless hibernate cfg.xml file have been removed too. Change-Id: I15579bde3913c9faf8eded6f92d6b5239cca512c Signed-off-by: Determe, Sebastien (sd378r) <sd378r@intl.att.com>
Diffstat (limited to 'mso-catalog-db/src/main/java/org/openecomp')
-rw-r--r--mso-catalog-db/src/main/java/org/openecomp/mso/db/catalog/CatalogDatabase.java74
1 files changed, 59 insertions, 15 deletions
diff --git a/mso-catalog-db/src/main/java/org/openecomp/mso/db/catalog/CatalogDatabase.java b/mso-catalog-db/src/main/java/org/openecomp/mso/db/catalog/CatalogDatabase.java
index 35158a4..70b9618 100644
--- a/mso-catalog-db/src/main/java/org/openecomp/mso/db/catalog/CatalogDatabase.java
+++ b/mso-catalog-db/src/main/java/org/openecomp/mso/db/catalog/CatalogDatabase.java
@@ -48,21 +48,22 @@ import org.openecomp.mso.logger.MsoLogger;
*/
public class CatalogDatabase implements Closeable {
- private static final String NETWORK_TYPE = "networkType";
- private static final String ACTION = "action";
- private static final String VNF_TYPE = "vnfType";
- private static final String SERVICE_TYPE = "serviceType";
- private static final String VNF_COMPONENT_TYPE = "vnfComponentType";
- private static final String MODEL_NAME = "modelName";
- private static final String TYPE = "type";
- private static final String VF_MODULE_ID = "vfModuleId";
- private static boolean initialized = false;
- private static SessionFactory sessionFactory;
- private static ServiceRegistry serviceRegistry;
-
- private static final MsoLogger LOGGER = MsoLogger.getMsoLogger (MsoLogger.Catalog.GENERAL);
-
- private Session session = null;
+ protected static final String NETWORK_TYPE = "networkType";
+ protected static final String ACTION = "action";
+ protected static final String VNF_TYPE = "vnfType";
+ protected static final String SERVICE_TYPE = "serviceType";
+ protected static final String VNF_COMPONENT_TYPE = "vnfComponentType";
+ protected static final String MODEL_NAME = "modelName";
+ protected static final String TYPE = "type";
+ protected static final String VF_MODULE_ID = "vfModuleId";
+ protected static boolean initialized = false;
+ protected static SessionFactory sessionFactory;
+ protected static ServiceRegistry serviceRegistry;
+ protected static final String SERVICE_NAME_VERSION_ID= "serviceNameVersionId";
+
+ protected static final MsoLogger LOGGER = MsoLogger.getMsoLogger (MsoLogger.Catalog.GENERAL);
+
+ protected Session session = null;
public CatalogDatabase () {
}
@@ -388,6 +389,49 @@ public class CatalogDatabase implements Closeable {
}
/**
+ * Return a Service recipe that matches a given SERVICE_NAME_VERSION_ID
+ * (MODEL_VERSION_ID) and ACTION
+ *
+ * @param modelVersionId
+ * @param action
+ * @return ServiceRecipe object or null if none found
+ */
+ public ServiceRecipe getServiceRecipe(String modelVersionId,
+ String action) {
+
+ long startTime = System.currentTimeMillis();
+ LOGGER.debug("Catalog database - get Service recipe with modeVersionId=" + modelVersionId
+ + " and action=" + action);
+
+ try {
+ String hql;
+
+ hql = "SELECT new ServiceRecipe(SR.id, SR.serviceId, SR.action, SR.description, " +
+ "SR.orchestrationUri, SR.serviceParamXSD, case when SR.recipeTimeout is null then 0 else SR.recipeTimeout end, " +
+ "case when SR.serviceTimeoutInterim is null then 0 else SR.serviceTimeoutInterim end, SR.created) " +
+ "FROM Service as S RIGHT OUTER JOIN S.recipes SR " +
+ "WHERE SR.serviceId = S.id AND S.serviceNameVersionId = :serviceNameVersionId AND SR.action = :action";
+ Query query = getSession().createQuery(hql);
+ query.setParameter(SERVICE_NAME_VERSION_ID, modelVersionId);
+ query.setParameter(ACTION, action);
+
+ @SuppressWarnings("unchecked")
+ List<ServiceRecipe> recipeResultList = query.list();
+ if (recipeResultList.isEmpty()) {
+ LOGGER.debug("Catalog database - recipeResultList is null");
+ return null;
+ }
+ Collections.sort(recipeResultList, new MavenLikeVersioningComparator());
+ Collections.reverse(recipeResultList);
+ LOGGER.debug("Catalog database - recipeResultList contains " + recipeResultList.get(0).toString());
+
+ return recipeResultList.get(0);
+ } finally {
+ LOGGER.recordMetricEvent(startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getServiceRecipe", null);
+ }
+ }
+
+ /**
* Return a newest version of Service recipe that matches a given SERVICE_ID and ACTION
*
* @param serviceId