summaryrefslogtreecommitdiffstats
path: root/mso-catalog-db
diff options
context:
space:
mode:
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>