From d84744112fc95ec8b2cc204c77829fec8726006d Mon Sep 17 00:00:00 2001 From: "Determe, Sebastien (sd378r)" Date: Thu, 16 Feb 2017 09:31:20 -0800 Subject: 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) --- .../openecomp/mso/db/catalog/CatalogDatabase.java | 74 ++++++++++++++++----- .../main/resources/hibernate-catalog-ajsc.cfg.xml | 75 ---------------------- 2 files changed, 59 insertions(+), 90 deletions(-) delete mode 100644 mso-catalog-db/src/main/resources/hibernate-catalog-ajsc.cfg.xml (limited to 'mso-catalog-db/src') 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 35158a46b4..70b9618265 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 () { } @@ -387,6 +388,49 @@ public class CatalogDatabase implements Closeable { return resultList.get (0); } + /** + * 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 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 * diff --git a/mso-catalog-db/src/main/resources/hibernate-catalog-ajsc.cfg.xml b/mso-catalog-db/src/main/resources/hibernate-catalog-ajsc.cfg.xml deleted file mode 100644 index 7f28a36346..0000000000 --- a/mso-catalog-db/src/main/resources/hibernate-catalog-ajsc.cfg.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - - - - org.hibernate.dialect.MySQL5Dialect - false - true - - - - - - - - - - - - - - - - -- cgit 1.2.3-korg