From: Determe, Sebastien (sd378r) Date: Thu, 16 Feb 2017 17:31:20 +0000 (-0800) Subject: Rework Database access classes X-Git-Tag: v1.1.0~446 X-Git-Url: https://gerrit.onap.org/r/gitweb?a=commitdiff_plain;h=refs%2Fchanges%2F69%2F5369%2F2;p=so.git 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) --- diff --git a/mso-api-handlers/mso-requests-db/src/main/java/org/openecomp/mso/requestsdb/RequestsDatabase.java b/mso-api-handlers/mso-requests-db/src/main/java/org/openecomp/mso/requestsdb/RequestsDatabase.java index 8961b26a80..9abd871b5f 100644 --- a/mso-api-handlers/mso-requests-db/src/main/java/org/openecomp/mso/requestsdb/RequestsDatabase.java +++ b/mso-api-handlers/mso-requests-db/src/main/java/org/openecomp/mso/requestsdb/RequestsDatabase.java @@ -39,35 +39,35 @@ import org.hibernate.persister.entity.AbstractEntityPersister; import org.openecomp.mso.logger.MsoLogger; -public final class RequestsDatabase { - - private static MsoLogger msoLogger = MsoLogger.getMsoLogger (MsoLogger.Catalog.GENERAL); - - private static final String SOURCE = "source"; - private static final String START_TIME = "startTime"; - private static final String REQUEST_TYPE = "requestType"; - private static final String SERVICE_INSTANCE_ID = "serviceInstanceId"; - private static final String SERVICE_INSTANCE_NAME = "serviceInstanceName"; - private static final String VNF_INSTANCE_NAME = "vnfName"; - private static final String VNF_INSTANCE_ID = "vnfId"; - private static final String VOLUME_GROUP_INSTANCE_NAME = "volumeGroupName"; - private static final String VOLUME_GROUP_INSTANCE_ID = "volumeGroupId"; - private static final String VFMODULE_INSTANCE_NAME = "vfModuleName"; - private static final String VFMODULE_INSTANCE_ID = "vfModuleId"; - private static final String NETWORK_INSTANCE_NAME = "networkName"; - private static final String NETWORK_INSTANCE_ID = "networkId"; - private static final String GLOBAL_SUBSCRIBER_ID = "globalSubscriberId"; - private static final String SERVICE_NAME_VERSION_ID = "serviceNameVersionId"; - private static final String SERVICE_ID = "serviceId"; - private static final String SERVICE_VERSION = "serviceVersion"; - private static final String SERVICE_TYPE = "serviceType"; - private static final String REQUEST_ID = "requestId"; - private static MockRequestsDatabase mockDB = null; +public class RequestsDatabase { + + protected static MsoLogger msoLogger = MsoLogger.getMsoLogger (MsoLogger.Catalog.GENERAL); + + protected static final String SOURCE = "source"; + protected static final String START_TIME = "startTime"; + protected static final String REQUEST_TYPE = "requestType"; + protected static final String SERVICE_INSTANCE_ID = "serviceInstanceId"; + protected static final String SERVICE_INSTANCE_NAME = "serviceInstanceName"; + protected static final String VNF_INSTANCE_NAME = "vnfName"; + protected static final String VNF_INSTANCE_ID = "vnfId"; + protected static final String VOLUME_GROUP_INSTANCE_NAME = "volumeGroupName"; + protected static final String VOLUME_GROUP_INSTANCE_ID = "volumeGroupId"; + protected static final String VFMODULE_INSTANCE_NAME = "vfModuleName"; + protected static final String VFMODULE_INSTANCE_ID = "vfModuleId"; + protected static final String NETWORK_INSTANCE_NAME = "networkName"; + protected static final String NETWORK_INSTANCE_ID = "networkId"; + protected static final String GLOBAL_SUBSCRIBER_ID = "globalSubscriberId"; + protected static final String SERVICE_NAME_VERSION_ID = "serviceNameVersionId"; + protected static final String SERVICE_ID = "serviceId"; + protected static final String SERVICE_VERSION = "serviceVersion"; + + protected static final String REQUEST_ID = "requestId"; + protected static MockRequestsDatabase mockDB = null; /** * Avoids creating an instance of this utility class. */ - private RequestsDatabase () { + protected RequestsDatabase () { } public static boolean healthCheck () { diff --git a/mso-api-handlers/mso-requests-db/src/main/resources/hibernate-requests-ajsc.cfg.xml b/mso-api-handlers/mso-requests-db/src/main/resources/hibernate-requests-ajsc.cfg.xml deleted file mode 100644 index 14bd7b5e69..0000000000 --- a/mso-api-handlers/mso-requests-db/src/main/resources/hibernate-requests-ajsc.cfg.xml +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - - org.hibernate.dialect.MySQL5Dialect - false - true - - - - - - 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 - - - - - - - - - - - - - - - -