aboutsummaryrefslogtreecommitdiffstats
path: root/mso-catalog-db
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
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')
-rw-r--r--mso-catalog-db/src/main/java/org/openecomp/mso/db/catalog/CatalogDatabase.java74
-rw-r--r--mso-catalog-db/src/main/resources/hibernate-catalog-ajsc.cfg.xml75
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>