diff options
author | Determe, Sebastien (sd378r) <sd378r@intl.att.com> | 2017-02-16 09:31:20 -0800 |
---|---|---|
committer | Sébastien Determe <sd378r@intl.att.com> | 2017-02-17 11:57:10 +0000 |
commit | d84744112fc95ec8b2cc204c77829fec8726006d (patch) | |
tree | 594e65f84a9fbcec40bd4ae0fa6153e20a572d64 /mso-catalog-db | |
parent | bb1680054ed64b7b788cf6b4fd438aad91f930b3 (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')
-rw-r--r-- | mso-catalog-db/src/main/java/org/openecomp/mso/db/catalog/CatalogDatabase.java | 74 | ||||
-rw-r--r-- | mso-catalog-db/src/main/resources/hibernate-catalog-ajsc.cfg.xml | 75 |
2 files changed, 59 insertions, 90 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 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 () { } @@ -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 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 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - ============LICENSE_START======================================================= - ECOMP MSO - ================================================================================ - Copyright (C) 2017 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. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - ============LICENSE_END========================================================= - --> - - -<!DOCTYPE hibernate-configuration SYSTEM "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> - -<hibernate-configuration> - <session-factory> - <property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property> - <property name="hibernate.show_sql">false</property> - <property name="hibernate.format_sql">true</property> - - <mapping resource="VnfResource.hbm.xml"/> - <mapping resource="VnfRecipe.hbm.xml"/> - <mapping resource="HeatTemplate.hbm.xml"/> - <mapping resource="Service.hbm.xml"/> - <mapping resource="NetworkResource.hbm.xml"/> - <mapping resource="NetworkRecipe.hbm.xml"/> - <mapping resource="HeatEnvironment.hbm.xml"/> - <mapping resource="HeatNestedTemplate.hbm.xml"/> - <mapping resource="VnfComponent.hbm.xml"/> - <mapping resource="VnfComponentsRecipe.hbm.xml"/> - <mapping resource="VfModule.hbm.xml"/> - <mapping resource="VfModuleToHeatFiles.hbm.xml"/> - <!-- <property name="connection.url">${CATALOG_CONNECTION_URL}</property> - <property name="connection.username">${CATALOG_USERNAME}</property> - <property name="connection.password">${CATALOG_PASSWORD}</property> - <property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property> - <property name="hibernate.default_schema">mso_catalog</property> - <property name="connection.driver_class">org.mariadb.jdbc.Driver</property> - <property name="hibernate.current_session_context_class">thread</property> - <property name="hibernate.show_sql">false</property> - <property name="hibernate.format_sql">true</property> - - - <property name="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property> - <property name="hibernate.c3p0.min_size">${CATALOG_MIN_POOL_SIZE}</property> - <property name="hibernate.c3p0.max_size">${CATALOG_MAX_POOL_SIZE}</property> - <property name="hibernate.c3p0.timeout">${CATALOG_TIMEOUT}</property> - <property name="hibernate.c3p0.max_statements">50</property> - <property name="hibernate.c3p0.idle_test_period">1000</property> - <property name="hibernate.connection.provider_class">org.hibernate.service.jdbc.connections.internal.C3P0ConnectionProvider</property> - - - <mapping resource="VnfResource.hbm.xml"/> - <mapping resource="VnfRecipe.hbm.xml"/> - <mapping resource="HeatTemplate.hbm.xml"/> - <mapping resource="CloudSite.hbm.xml"/> - <mapping resource="Service.hbm.xml"/> - <mapping resource="NetworkResource.hbm.xml"/> - <mapping resource="NetworkRecipe.hbm.xml"/> - <mapping resource="HeatEnvironment.hbm.xml"/> - <mapping resource="HeatNestedTemplate.hbm.xml"/> - <mapping resource="VnfComponent.hbm.xml"/> - <mapping resource="VnfComponentsRecipe.hbm.xml"/> --> - </session-factory> -</hibernate-configuration> |