2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6 * Copyright (C) 2017 Huawei Technologies Co., Ltd. All rights reserved.
7 * ================================================================================
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
12 * http://www.apache.org/licenses/LICENSE-2.0
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
19 * ============LICENSE_END=========================================================
22 package org.openecomp.mso.db.catalog;
24 import java.io.Closeable;
25 import java.util.ArrayList;
26 import java.util.Arrays;
27 import java.util.Collections;
28 import java.util.HashMap;
29 import java.util.List;
33 import org.hibernate.HibernateException;
34 import org.hibernate.Query;
35 import org.hibernate.Session;
36 import org.openecomp.mso.db.AbstractSessionFactoryManager;
37 import org.openecomp.mso.db.catalog.beans.AllottedResource;
38 import org.openecomp.mso.db.catalog.beans.AllottedResourceCustomization;
39 import org.openecomp.mso.db.catalog.beans.HeatEnvironment;
40 import org.openecomp.mso.db.catalog.beans.HeatFiles;
41 import org.openecomp.mso.db.catalog.beans.HeatNestedTemplate;
42 import org.openecomp.mso.db.catalog.beans.HeatTemplate;
43 import org.openecomp.mso.db.catalog.beans.HeatTemplateParam;
44 import org.openecomp.mso.db.catalog.beans.Model;
45 import org.openecomp.mso.db.catalog.beans.ModelRecipe;
46 import org.openecomp.mso.db.catalog.beans.NetworkRecipe;
47 import org.openecomp.mso.db.catalog.beans.NetworkResource;
48 import org.openecomp.mso.db.catalog.beans.NetworkResourceCustomization;
49 import org.openecomp.mso.db.catalog.beans.Service;
50 import org.openecomp.mso.db.catalog.beans.ServiceMacroHolder;
51 import org.openecomp.mso.db.catalog.beans.ServiceRecipe;
52 import org.openecomp.mso.db.catalog.beans.ServiceToAllottedResources;
53 import org.openecomp.mso.db.catalog.beans.ServiceToNetworks;
54 import org.openecomp.mso.db.catalog.beans.ServiceToResourceCustomization;
55 import org.openecomp.mso.db.catalog.beans.TempNetworkHeatTemplateLookup;
56 import org.openecomp.mso.db.catalog.beans.ToscaCsar;
57 import org.openecomp.mso.db.catalog.beans.VfModule;
58 import org.openecomp.mso.db.catalog.beans.VfModuleCustomization;
59 import org.openecomp.mso.db.catalog.beans.VfModuleToHeatFiles;
60 import org.openecomp.mso.db.catalog.beans.VnfComponent;
61 import org.openecomp.mso.db.catalog.beans.VnfComponentsRecipe;
62 import org.openecomp.mso.db.catalog.beans.VnfRecipe;
63 import org.openecomp.mso.db.catalog.beans.VnfResCustomToVfModuleCustom;
64 import org.openecomp.mso.db.catalog.beans.VnfResource;
65 import org.openecomp.mso.db.catalog.beans.VnfResourceCustomization;
66 import org.openecomp.mso.db.catalog.utils.MavenLikeVersioningComparator;
67 import org.openecomp.mso.db.catalog.utils.RecordNotFoundException;
68 import org.openecomp.mso.logger.MessageEnum;
69 import org.openecomp.mso.logger.MsoLogger;
72 * This class encapsulates all of the objects that can be queried from a Catalog database.
73 * Clients must use these methods to retrieve catalog objects. The session is not
74 * available for clients to do their own direct queries to the database.
78 public class CatalogDatabase implements Closeable {
80 protected final AbstractSessionFactoryManager sessionFactoryCatalogDB;
82 private static final String NETWORK_TYPE = "networkType";
83 private static final String ACTION = "action";
84 private static final String VNF_TYPE = "vnfType";
85 private static final String SERVICE_TYPE = "serviceType";
86 private static final String MODEL_UUID= "modelUUID";
87 private static final String VNF_COMPONENT_TYPE = "vnfComponentType";
88 private static final String MODEL_ID = "modelId";
89 private static final String MODEL_NAME = "modelName";
90 private static final String TYPE = "type";
91 private static final String MODEL_TYPE = "modelType";
92 private static final String MODEL_VERSION_ID = "modelVersionId";
93 private static final String MODEL_CUSTOMIZATION_UUID = "modelCustomizationUuid";
94 private static final String VF_MODULE_MODEL_UUID = "vfModuleModelUUId";
96 protected static final MsoLogger LOGGER = MsoLogger.getMsoLogger (MsoLogger.Catalog.GENERAL);
98 protected Session session = null;
100 protected CatalogDatabase (AbstractSessionFactoryManager sessionFactoryCatalog) {
101 sessionFactoryCatalogDB = sessionFactoryCatalog;
104 public static CatalogDatabase getInstance() {
105 return new CatalogDatabase(new CatalogDbSessionFactoryManager ());
108 private Session getSession () {
110 if (session == null) {
112 session = sessionFactoryCatalogDB.getSessionFactory ().openSession ();
113 session.beginTransaction ();
114 } catch (HibernateException he) {
115 LOGGER.error (MessageEnum.GENERAL_EXCEPTION_ARG, "Error creating Hibernate Session: " + he, "", "", MsoLogger.ErrorCode.DataError, "Error creating Hibernate Session: " + he);
124 * Close an open Catalog Database session.
125 * This method should always be called when a client is finished using a
126 * CatalogDatabase instance.
129 public void close () {
130 if (session != null) {
137 * Commits the current transaction on this session and starts a fresh one.
139 public void commit () {
140 getSession ().getTransaction ().commit ();
141 getSession ().beginTransaction ();
145 * Rolls back current transaction and starts a fresh one.
147 public void rollback () {
148 getSession ().getTransaction ().rollback ();
149 getSession ().beginTransaction ();
153 * Return all Heat Templates in the Catalog DB
155 * @return A list of HeatTemplate objects
157 @SuppressWarnings("unchecked")
158 public List <HeatTemplate> getAllHeatTemplates() {
159 long startTime = System.currentTimeMillis();
160 LOGGER.debug("Catalog database - get all Heat templates");
161 String hql = "FROM HeatTemplate";
162 Query query = getSession().createQuery(hql);
164 List <HeatTemplate> result = query.list();
165 LOGGER.recordMetricEvent(startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getAllHeatTemplates", null);
170 * Fetch a specific Heat Template by ID.
172 * @param templateId template id
173 * @return HeatTemplate object or null if none found
176 public HeatTemplate getHeatTemplate(int templateId) {
177 long startTime = System.currentTimeMillis();
178 LOGGER.debug ("Catalog database - get Heat template with id " + templateId);
180 HeatTemplate template = (HeatTemplate) getSession().get(HeatTemplate.class, templateId);
181 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getHeatTemplate", null);
186 * Return the newest version of a specific Heat Template (queried by Name).
188 * @param templateName template name
189 * @return HeatTemplate object or null if none found
191 public HeatTemplate getHeatTemplate(String templateName) {
193 long startTime = System.currentTimeMillis();
194 LOGGER.debug("Catalog database - get Heat template with name " + templateName);
196 String hql = "FROM HeatTemplate WHERE templateName = :template_name";
197 Query query = getSession().createQuery (hql);
198 query.setParameter("template_name", templateName);
200 @SuppressWarnings("unchecked")
201 List <HeatTemplate> resultList = query.list();
203 // See if something came back. Name is unique, so
204 if (resultList.isEmpty ()) {
205 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully. No template found", "CatalogDB", "getHeatTemplate", null);
208 resultList.sort(new MavenLikeVersioningComparator());
209 Collections.reverse(resultList);
211 LOGGER.recordMetricEvent(startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getHeatTemplate", null);
212 return resultList.get(0);
216 * Return a specific version of a specific Heat Template (queried by Name).
218 * @param templateName
220 * @return HeatTemplate object or null if none found
222 public HeatTemplate getHeatTemplate(String templateName, String version) {
224 long startTime = System.currentTimeMillis();
225 LOGGER.debug("Catalog database - get Heat template with name " + templateName
229 String hql = "FROM HeatTemplate WHERE templateName = :template_name AND version = :version";
230 Query query = getSession().createQuery(hql);
231 query.setParameter("template_name", templateName);
232 query.setParameter("version", version);
234 @SuppressWarnings("unchecked")
235 List <HeatTemplate> resultList = query.list();
237 // See if something came back.
238 if (resultList.isEmpty()) {
239 LOGGER.recordMetricEvent(startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully. No template found.", "CatalogDB", "getHeatTemplate", null);
242 // Name + Version is unique, so should only be one element
243 LOGGER.recordMetricEvent(startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getHeatTemplate", null);
244 return resultList.get(0);
248 * Return a specific Heat Template by ARTIFACT_UUID).
250 * @param artifactUuid
251 * @return HeatTemplate object or null if none found
254 public HeatTemplate getHeatTemplateByArtifactUuid(String artifactUuid) {
255 long startTime = System.currentTimeMillis ();
256 LOGGER.debug ("Catalog database - get Heat template with artifactUuid " + artifactUuid);
258 // Will this work if the id is a string?
259 HeatTemplate template = (HeatTemplate) getSession ().get (HeatTemplate.class, artifactUuid);
260 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getHeatTemplate", null);
265 * Return a specific Heat Template by ARTIFACT_UUID using standard query method. unique record expected.
267 * @param artifactUuid
268 * @return HeatTemplate object or null if none found
270 public HeatTemplate getHeatTemplateByArtifactUuidRegularQuery(String artifactUuid) {
271 long startTime = System.currentTimeMillis();
272 LOGGER.debug("Catalog database - get Heat template (regular query) with artifactUuid " + artifactUuid);
274 String hql = "FROM HeatTemplate WHERE artifactUuid = :artifactUuidValue";
275 HashMap<String, String> variables = new HashMap<>();
276 variables.put("artifactUuidValue", artifactUuid);
277 HeatTemplate template = (HeatTemplate) this.executeQuerySingleRow(hql, variables, true);
279 if (template == null) {
280 LOGGER.recordMetricEvent(startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "NotFound", "CatalogDB", "getHeatTemplateByArtifactUuidRegularQuery", null);
282 LOGGER.recordMetricEvent(startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getHeatTemplateByArtifactUuidRegularQuery", null);
287 public List<HeatTemplateParam> getParametersForHeatTemplate(String heatTemplateArtifactUuid) {
288 LOGGER.debug ("Catalog database - getParametersForHeatTemplate with artifactUuid " + heatTemplateArtifactUuid);
290 String hql = "FROM HeatTemplateParams WHERE artifactUuid = :artifactUuidValue";
291 Query query = getSession().createQuery(hql);
292 query.setParameter ("artifactUuidValue", heatTemplateArtifactUuid);
293 List<HeatTemplateParam> resultList = new ArrayList<>();
295 resultList = query.list ();
296 } catch (org.hibernate.HibernateException he) {
297 LOGGER.debug("Hibernate Exception - while searching HeatTemplateParams for: heatTemplateArtifactUuid='" + heatTemplateArtifactUuid + "'" + he.getMessage());
298 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " Hibernate exception searching HeatTemplateParams for artifactUuid=" + heatTemplateArtifactUuid, "", "", MsoLogger.ErrorCode.DataError, "Hibernate exception searching for artifactUuid=" + heatTemplateArtifactUuid);
300 } catch (Exception e) {
301 LOGGER.debug("Generic Exception - while searching HeatTemplateParam for: artifactUuid='" + heatTemplateArtifactUuid + "'" + e.getMessage());
302 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " Generic exception searching HeatTemplate for artifactUuid=" + heatTemplateArtifactUuid, "", "", MsoLogger.ErrorCode.DataError, "Generic exception searching for artifactUuid=" + heatTemplateArtifactUuid);
311 * Return a specific Heat Environment by ARTIFACT_UUID using standard query method. unique record expected.
313 * @param artifactUuid
314 * @return HeatEnvironment object or null if none found
316 public HeatEnvironment getHeatEnvironmentByArtifactUuid(String artifactUuid) {
317 long startTime = System.currentTimeMillis();
318 LOGGER.debug("Catalog database - get Heat Environment with artifactUuid " + artifactUuid);
320 String hql = "FROM HeatEnvironment WHERE artifactUuid = :artifactUuidValue";
321 Query query = getSession().createQuery(hql);
322 query.setParameter("artifactUuidValue", artifactUuid);
323 HeatEnvironment environment = null;
325 environment = (HeatEnvironment) query.uniqueResult();
326 } catch (org.hibernate.NonUniqueResultException nure) {
327 LOGGER.debug("Non Unique Result Exception - the Catalog Database does not match a unique row for Envt - data integrity error: artifactUuid='" + artifactUuid +"'", nure);
328 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " non unique result for heatEnvironment artifactUuid=" + artifactUuid, "", "", MsoLogger.ErrorCode.DataError, "Non unique result for artifactUuid==" + artifactUuid);
329 } catch (org.hibernate.HibernateException he) {
330 LOGGER.debug("Hibernate Exception - while searching for envt: artifactUuid='" + artifactUuid + "' " + he.getMessage());
331 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " Hibernate exception searching envt for artifactUuid=" + artifactUuid, "", "", MsoLogger.ErrorCode.DataError, "Hibernate exception searching envt for artifactUuid=" + artifactUuid);
334 } catch (Exception e) {
335 LOGGER.debug("Generic Exception - while searching for: artifactUuid='" + artifactUuid + "' " + e.getMessage());
336 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " Generic exception searching envt for artifactUuid=" + artifactUuid, "", "", MsoLogger.ErrorCode.DataError, "Generic exception searching envt for artifactUuid=" + artifactUuid);
341 if (environment == null) {
342 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "NotFound", "CatalogDB", "getHeatEnvironmentByArtifactUuid", null);
344 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getHeatEnvironmentByArtifactUuid", null);
350 * Fetch a Service definition by InvariantUUID
352 public Service getServiceByInvariantUUID (String modelInvariantUUID) {
354 long startTime = System.currentTimeMillis();
355 LOGGER.debug("Catalog database - get service with Invariant UUID " + modelInvariantUUID);
357 String hql = "FROM Service WHERE modelInvariantUUID = :model_invariant_uuid";
358 Query query = getSession().createQuery(hql);
359 query.setParameter ("model_invariant_uuid", modelInvariantUUID);
361 @SuppressWarnings("unchecked")
362 List <Service> resultList = query.list ();
364 // See if something came back.
365 if (resultList.isEmpty ()) {
366 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully. Service not found", "CatalogDB", "getServiceByName", null);
369 resultList.sort(new MavenLikeVersioningComparator());
370 Collections.reverse (resultList);
372 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getServiceByName", null);
373 return resultList.get (0);
377 * Fetch a Service definition
379 public Service getService (String modelName) {
381 long startTime = System.currentTimeMillis();
382 LOGGER.debug("Catalog database - get service with name " + modelName);
384 String hql = "FROM Service WHERE modelName = :MODEL_NAME";
385 Query query = getSession().createQuery(hql);
386 query.setParameter("MODEL_NAME", modelName);
388 Service service = null;
390 service = (Service) query.uniqueResult();
391 } catch (org.hibernate.NonUniqueResultException nure) {
392 LOGGER.debug("Non Unique Result Exception - the Catalog Database does not match a unique row - data integrity error: modelName='" + modelName + "'");
393 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " non unique result for modelName=" + modelName, "", "", MsoLogger.ErrorCode.DataError, "Non unique result for modelName=" + modelName);
395 } catch (org.hibernate.HibernateException he) {
396 LOGGER.debug("Hibernate Exception - while searching for: modelName='" + modelName + "' " + he.getMessage());
397 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " Hibernate exception searching for modelName=" + modelName, "", "", MsoLogger.ErrorCode.DataError, "Hibernate exception searching for modelName=" + modelName);
399 } catch (Exception e) {
400 LOGGER.debug("Generic Exception - while searching for: modelName='" + modelName + " " + e.getMessage());
401 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " Generic exception searching for modelName=" + modelName, "", "", MsoLogger.ErrorCode.DataError, "Generic exception searching for modelName=" + modelName);
404 if (service == null) {
405 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "NotFound", "CatalogDB", "getService", null);
407 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getService", null);
413 public Service getServiceByModelUUID (String modelUUID) {
415 long startTime = System.currentTimeMillis();
416 LOGGER.debug("Catalog database - get service with Model UUID " + modelUUID);
418 String hql = "FROM Service WHERE modelUUID = :MODEL_UUID";
419 HashMap<String, String> parameters = new HashMap<>();
420 parameters.put("MODEL_UUID", modelUUID);
423 Service service = this.executeQuerySingleRow(hql, parameters, true);
427 service = (Service) query.uniqueResult ();
428 } catch (org.hibernate.NonUniqueResultException nure) {
429 LOGGER.debug("Non Unique Result Exception - the Catalog Database does not match a unique row - data integrity error: modelUUID='" + modelUUID + "'");
430 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " non unique result for modelUUID=" + modelUUID, "", "", MsoLogger.ErrorCode.DataError, "Non unique result for modelUUID=" + modelUUID);
432 } catch (org.hibernate.HibernateException he) {
433 LOGGER.debug("Hibernate Exception - while searching for: modelUUID='" + modelUUID + "' " + he.getMessage());
434 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " Hibernate exception searching for modelUUID=" + modelUUID, "", "", MsoLogger.ErrorCode.DataError, "Hibernate exception searching for modelUUID=" + modelUUID);
436 } catch (Exception e) {
437 LOGGER.debug("Generic Exception - while searching for: modelUUID='" + modelUUID + " " + e.getMessage());
438 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " Generic exception searching for modelUUID=" + modelUUID, "", "", MsoLogger.ErrorCode.DataError, "Generic exception searching for modelUUID=" + modelUUID);
442 if (service == null) {
443 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "NotFound", "CatalogDB", "getServiceByModelUUID", null);
445 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getServiceByModelUUID", null);
452 * Fetch the Common Service API definition using Http Method + serviceNameVersionId
454 public Service getService(Map<String, String> map, String httpMethod) {
456 String serviceNameVersionId = map.get("serviceNameVersionId");
458 String serviceId = "not_set";
459 String serviceVersion = "not_set";
461 if(serviceNameVersionId != null && serviceNameVersionId.length() > 0){
462 LOGGER.debug ("Catalog database - get service modelUUID with id " + serviceNameVersionId);
464 String hql = "FROM Service WHERE MODEL_UUID = :MODEL_UUID and http_method = :http_method";
465 query = getSession().createQuery(hql);
466 query.setParameter("MODEL_UUID", serviceNameVersionId);
468 serviceId = map.get("serviceId");
469 serviceVersion = map.get("serviceVersion");
470 LOGGER.debug("Catalog database - get serviceId with id " + serviceId + " and serviceVersion with " + serviceVersion);
472 String hql = "FROM Service WHERE service_id = :service_id and service_version = :service_version and http_method = :http_method";
473 query = getSession().createQuery(hql);
474 query.setParameter("service_id", serviceId);
475 query.setParameter("service_version", serviceVersion);
478 query.setParameter("http_method", httpMethod);
480 long startTime = System.currentTimeMillis();
481 Service service = null;
483 service = (Service) query.uniqueResult();
484 } catch (org.hibernate.NonUniqueResultException nure) {
485 LOGGER.debug("Non Unique Result Exception - data integrity error: service_id='" + serviceId + "', serviceVersion='" + serviceVersion + "'");
486 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " non unique result for service_id=" + serviceId + " and serviceVersion=" + serviceVersion, "", "", MsoLogger.ErrorCode.DataError, "Non unique result for service_id=" + serviceId);
489 } catch (org.hibernate.HibernateException he) {
490 LOGGER.debug("Hibernate Exception - while searching for: service_id='" + serviceId + "', serviceVersion='" + serviceVersion + "' " + he.getMessage());
491 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " Hibernate exception searching for service_id=" + serviceId + " and serviceVersion=" + serviceVersion, "", "", MsoLogger.ErrorCode.DataError, "Hibernate exception searching for service_id=" + serviceId);
494 } catch (Exception e) {
495 LOGGER.debug("Generic Exception - while searching for: service_id='" + serviceId + "', serviceVersion='" + serviceVersion + "' " + e.getMessage());
496 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " Generic exception searching for service_id=" + serviceId + " and serviceVersion=" + serviceVersion, "", "", MsoLogger.ErrorCode.DataError, "Generic exception searching for service_id=" + serviceId);
500 if (service == null) {
501 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "NotFound", "CatalogDB", "getService", null);
503 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getService", null);
509 * Return the newest version of a Service (queried by Name).
512 * @return Service object or null if none found
514 public Service getServiceByModelName(String modelName){
516 long startTime = System.currentTimeMillis();
517 LOGGER.debug("Catalog database - get service with name " + modelName);
519 String hql = "FROM Service WHERE modelName = :MODEL_NAME";
520 Query query = getSession().createQuery(hql);
521 query.setParameter("MODEL_NAME", modelName);
523 @SuppressWarnings("unchecked")
524 List <Service> resultList = query.list();
526 // See if something came back.
527 if (resultList.isEmpty()) {
528 LOGGER.recordMetricEvent(startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully. Service not found", "CatalogDB", "getServiceByModelName", null);
531 resultList.sort(new MavenLikeVersioningComparator());
532 Collections.reverse(resultList);
534 LOGGER.recordMetricEvent(startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getServiceByModelName", null);
535 return resultList.get(0);
538 public Service getServiceByVersionAndInvariantId(String modelInvariantId, String modelVersion) throws Exception {
539 long startTime = System.currentTimeMillis();
540 LOGGER.debug("Catalog database - get service with modelInvariantId: " + modelInvariantId + " and modelVersion: " + modelVersion);
542 String hql = "FROM Service WHERE modelInvariantUUID = :MODEL_INVARIANT_UUID AND version = :VERSION_STR";
543 Query query = getSession().createQuery(hql);
544 query.setParameter("MODEL_INVARIANT_UUID", modelInvariantId);
545 query.setParameter("VERSION_STR", modelVersion);
547 Service result = null;
549 result = (Service) query.uniqueResult();
550 } catch (org.hibernate.NonUniqueResultException nure) {
551 LOGGER.debug("Non Unique Result Exception - the Catalog Database does not match a unique row - data integrity error: modelInvariantId='" + modelInvariantId + "', modelVersion='" + modelVersion + "'", nure);
552 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " non unique result for modelInvariantId=" + modelInvariantId + " and modelVersion=" + modelVersion, "", "", MsoLogger.ErrorCode.DataError, "Non unique result for modelInvariantId=" + modelInvariantId);
553 throw new Exception("Non Unique Result Exception - the Catalog Database does not match a unique row - data integrity error: modelInvariantId='" + modelInvariantId + "', modelVersion='" + modelVersion + "'");
555 // See if something came back.
557 LOGGER.recordMetricEvent(startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully. Service not found", "CatalogDB", "getServiceByVersionAndInvariantId", null);
561 LOGGER.recordMetricEvent(startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getServiceByVersionAndInvariantId", null);
566 * Return a newest version of Service recipe that matches a given SERVICE_ID and ACTION
568 * @param serviceModelUUID
570 * @return ServiceRecipe object or null if none found
573 public ServiceRecipe getServiceRecipe (int serviceModelUUID, String action) {
578 hql = new StringBuilder ("FROM ServiceRecipe WHERE serviceModelUUID = :serviceModelUUID");
580 hql = new StringBuilder ("FROM ServiceRecipe WHERE serviceModelUUID = :serviceModelUUID AND action = :action ");
583 long startTime = System.currentTimeMillis ();
584 LOGGER.debug ("Catalog database - get Service recipe with serviceModelUUID " + Integer.toString(serviceModelUUID)
589 Query query = getSession ().createQuery (hql.toString ());
590 query.setParameter ("serviceModelUUID", serviceModelUUID);
592 query.setParameter (ACTION, action);
595 @SuppressWarnings("unchecked")
596 List <ServiceRecipe> resultList = query.list ();
598 if (resultList.isEmpty ()) {
599 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully. Service recipe not found", "CatalogDB", "getServiceRecipe", null);
603 resultList.sort(new MavenLikeVersioningComparator());
604 Collections.reverse (resultList);
606 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getServiceRecipe", null);
607 return resultList.get (0);
611 * Return a newest version of Service recipe that matches a given SERVICE_MODEL_UUID and ACTION
613 * @param serviceModelUuid
615 * @return ServiceRecipe object or null if none found
617 public ServiceRecipe getServiceRecipeByServiceModelUuid(String serviceModelUuid, String action) {
622 hql = new StringBuilder("FROM ServiceRecipe WHERE serviceModelUuid = :serviceModelUuid");
624 hql = new StringBuilder("FROM ServiceRecipe WHERE serviceModelUuid = :serviceModelUuid AND action = :action ");
627 long startTime = System.currentTimeMillis ();
628 LOGGER.debug("Catalog database - get Service recipe with serviceModelUuid " + serviceModelUuid
633 Query query = getSession().createQuery(hql.toString());
634 query.setParameter("serviceModelUuid", serviceModelUuid);
636 query.setParameter(ACTION, action);
639 @SuppressWarnings("unchecked")
640 List <ServiceRecipe> resultList = query.list();
642 if (resultList.isEmpty()) {
643 LOGGER.recordMetricEvent(startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully. Service recipe not found", "CatalogDB", "getServiceRecipe", null);
647 resultList.sort(new MavenLikeVersioningComparator());
648 Collections.reverse(resultList);
650 LOGGER.recordMetricEvent(startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getServiceRecipe", null);
651 return resultList.get(0);
654 public List<ServiceRecipe> getServiceRecipes(String serviceModelUuid) {
658 hql = new StringBuilder("FROM ServiceRecipe WHERE serviceModelUUID = :serviceModelUUID");
660 long startTime = System.currentTimeMillis();
661 LOGGER.debug("Catalog database - get Service recipe with serviceModelUUID " + serviceModelUuid);
663 Query query = getSession().createQuery(hql.toString());
664 query.setParameter("serviceModelUUID", serviceModelUuid);
666 @SuppressWarnings("unchecked")
667 List <ServiceRecipe> resultList = query.list();
669 if (resultList.isEmpty()) {
670 LOGGER.recordMetricEvent(startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully. Service recipe not found", "CatalogDB", "getServiceRecipes", null);
671 return Collections.EMPTY_LIST;
674 resultList.sort(new MavenLikeVersioningComparator());
675 Collections.reverse(resultList);
677 LOGGER.recordMetricEvent(startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getServiceRecipes", null);
683 * Return the VNF component data - queried by the VNFs ID and the component type.
687 * @return VnfComponent object or null if none found
690 public VnfComponent getVnfComponent (int vnfId, String type) {
692 long startTime = System.currentTimeMillis();
693 LOGGER.debug ("Catalog database - get VnfComponent where vnfId="+ vnfId+ " AND componentType="+ type);
695 String hql = "FROM VnfComponent WHERE vnfId = :vnf_id AND componentType = :type";
696 Query query = getSession ().createQuery (hql);
697 query.setParameter ("vnf_id", vnfId);
698 query.setParameter ("type", type);
700 VnfComponent result = null;
702 result = (VnfComponent) query.uniqueResult();
703 } catch (org.hibernate.NonUniqueResultException nure) {
704 LOGGER.debug("Non Unique Result Exception - the Catalog Database does not match a unique row - data integrity error: vnf_id='" + vnfId + "', componentType='" + type + "'");
705 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " non unique result for vnf_id=" + vnfId + " and componentType=" + type, "", "", MsoLogger.ErrorCode.DataError, "Non unique result for vnf_id=" + vnfId);
708 } catch (org.hibernate.HibernateException he) {
709 LOGGER.debug("Hibernate Exception - while searching for: vnf_id='" + vnfId + "', componentType='" + type + "' " + he.getMessage());
710 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " Hibernate exception searching for vnf_id=" + vnfId + " and componentType=" + type, "", "", MsoLogger.ErrorCode.DataError, "Hibernate exception searching for vnf_id=" + vnfId);
713 } catch (Exception e) {
714 LOGGER.debug("Generic Exception - while searching for: vnf_id='" + vnfId + "', componentType='" + type + "' " + e.getMessage());
715 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " Generic exception searching for vnf_id=" + vnfId + " and componentType=" + type, "", "", MsoLogger.ErrorCode.DataError, "Generic exception searching for vnf_id=" + vnfId);
720 if (result != null) {
721 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getVnfComponent", null);
723 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully. No VNFComponent found", "CatalogDB", "getVnfComponent", null);
729 * Return the newest version of a specific VNF resource (queried by Name).
732 * @return VnfResource object or null if none found
734 public VnfResource getVnfResource (String vnfType) {
736 long startTime = System.currentTimeMillis();
737 LOGGER.debug("Catalog database - get vnf resource with model_name " + vnfType);
739 String hql = "FROM VnfResource WHERE modelName = :vnf_name";
740 Query query = getSession().createQuery(hql);
741 query.setParameter("vnf_name", vnfType);
743 @SuppressWarnings("unchecked")
744 List <VnfResource> resultList = query.list();
746 // See if something came back. Name is unique, so
747 if (resultList.isEmpty()) {
748 LOGGER.recordMetricEvent(startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully. VNF not found", "CatalogDB", "getVnfResource", null);
751 resultList.sort(new MavenLikeVersioningComparator());
752 Collections.reverse(resultList);
754 LOGGER.recordMetricEvent(startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getVnfResource", null);
755 return resultList.get(0);
759 * Return the newest version of a specific VNF resource (queried by Name).
762 * @param serviceVersion
763 * @return VnfResource object or null if none found
765 public VnfResource getVnfResource (String vnfType, String serviceVersion) {
767 long startTime = System.currentTimeMillis();
768 LOGGER.debug("Catalog database - get VNF resource with model_name " + vnfType + " and version=" + serviceVersion);
770 String hql = "FROM VnfResource WHERE modelName = :vnfName and version = :serviceVersion";
771 Query query = getSession().createQuery(hql);
772 query.setParameter("vnfName", vnfType);
773 query.setParameter("serviceVersion", serviceVersion);
775 VnfResource resource = null;
777 resource = (VnfResource) query.uniqueResult();
778 } catch (org.hibernate.NonUniqueResultException nure) {
779 LOGGER.debug("Non Unique Result Exception - the Catalog Database does not match a unique row - data integrity error: vnfType='" + vnfType + "', serviceVersion='" + serviceVersion + "'");
780 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " non unique result for vnfType=" + vnfType + " and serviceVersion=" + serviceVersion, "", "", MsoLogger.ErrorCode.DataError, "Non unique result for vnfType=" + vnfType);
783 } catch (org.hibernate.HibernateException he) {
784 LOGGER.debug("Hibernate Exception - while searching for: vnfType='" + vnfType + "', asdc_service_model_version='" + serviceVersion + "' " + he.getMessage());
785 LOGGER.debug(Arrays.toString(he.getStackTrace()));
786 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " Hibernate exception searching for vnfType=" + vnfType + " and serviceVersion=" + serviceVersion, "", "", MsoLogger.ErrorCode.DataError, "Hibernate exception searching for vnfType=" + vnfType);
789 } catch (Exception e) {
790 LOGGER.debug("Generic Exception - while searching for: vnfType='" + vnfType + "', serviceVersion='" + serviceVersion + "' " + e.getMessage());
791 LOGGER.debug(Arrays.toString(e.getStackTrace()));
792 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " Generic exception searching for vnfType=" + vnfType + " and serviceVersion=" + serviceVersion, "", "", MsoLogger.ErrorCode.DataError, "Generic exception searching for vnfType=" + vnfType);
796 if (resource == null) {
797 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "NotFound", "CatalogDB", "getVnfResource", null);
799 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getVnfResource", null);
805 * Return VnfResource (queried by modelCustomizationId).
807 * @param modelCustomizationId
808 * @return VnfResource object or null if none found
810 public VnfResource getVnfResourceByModelCustomizationId(String modelCustomizationId) {
812 long startTime = System.currentTimeMillis();
813 LOGGER.debug("Catalog database - get VNF resource with modelCustomizationId " + modelCustomizationId);
815 String hql = "SELECT vr "
816 + "FROM VnfResource as vr JOIN vr.vnfResourceCustomizations as vrc "
817 + "WHERE vrc.modelCustomizationUuid = :modelCustomizationId";
819 Query query = getSession().createQuery(hql);
820 query.setParameter("modelCustomizationId", modelCustomizationId);
822 VnfResource resource = null;
824 resource = (VnfResource) query.uniqueResult();
825 } catch(org.hibernate.NonUniqueResultException nure) {
826 LOGGER.debug("Non Unique Result Exception - the Catalog Database does not match a unique row - data integrity error: modelCustomizationUuid='" + modelCustomizationId + "'");
827 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " non unique result for modelCustomizationUuid=" + modelCustomizationId, "", "", MsoLogger.ErrorCode.DataError, "Non unique result for modelCustomizationId=" + modelCustomizationId);
830 } catch (org.hibernate.HibernateException he) {
831 LOGGER.debug("Hibernate Exception - while searching for: modelCustomizationId='" + modelCustomizationId + "' " + he.getMessage());
832 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " Hibernate exception searching for modelCustomizationId=" + modelCustomizationId, "", "", MsoLogger.ErrorCode.DataError, "Hibernate exception searching for modelCustomizationId=" + modelCustomizationId);
835 } catch (Exception e) {
836 LOGGER.debug("Generic Exception - while searching for: modelCustomizationId='" + modelCustomizationId + "' " + e.getMessage());
837 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " Generic exception searching for modelCustomizationId=" + modelCustomizationId, "", "", MsoLogger.ErrorCode.DataError, "Generic exception searching for modelCustomizationId=" + modelCustomizationId);
841 if (resource == null) {
842 LOGGER.recordMetricEvent(startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "NotFound", "CatalogDB", "getVnfResourceByModelCustomizationId", null);
844 LOGGER.recordMetricEvent(startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getVnfResourceByModelCustomizationId", null);
851 * Return the newest version of a specific VNF resource Customization (queried by modelCustomizationName and modelVersionId).
853 * @return {@link VnfResourceCustomization} object or null if none found
855 public VnfResourceCustomization getVnfResourceCustomizationByModelCustomizationName (String modelCustomizationName, String modelVersionId) {
857 long startTime = System.currentTimeMillis();
858 LOGGER.debug("Catalog database - get VNF resource Customization with modelCustomizationName " + modelCustomizationName + " serviceModelUUID " + modelVersionId);
860 String hql = "SELECT vrc FROM VnfResourceCustomization as vrc WHERE vrc.modelCustomizationUuid IN "
861 + "(SELECT src.resourceModelCustomizationUUID FROM ServiceToResourceCustomization src "
862 + "WHERE src.serviceModelUUID = :modelVersionId)"
863 + "AND vrc.modelInstanceName = :modelCustomizationName";
865 Query query = getSession().createQuery(hql);
866 query.setParameter("modelCustomizationName", modelCustomizationName);
867 query.setParameter("modelVersionId", modelVersionId);
869 @SuppressWarnings("unchecked")
870 List<VnfResourceCustomization> resultList = query.list();
872 if (resultList.isEmpty()) {
873 LOGGER.recordMetricEvent(startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully. VnfResourceCustomization not found", "CatalogDB", "getVnfResourceCustomizationByModelCustomizationName", null);
877 resultList.sort(new MavenLikeVersioningComparator());
878 Collections.reverse(resultList);
880 LOGGER.recordMetricEvent(startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getVnfResourceCustomizationByModelCustomizationName", null);
881 return resultList.get(0);
886 * Return the newest version of a specific VNF resource (queried by modelInvariantId).
888 * @param modelInvariantUuid model invariant ID
889 * @param modelVersion model version
890 * @return VnfResource object or null if none found
892 public VnfResource getVnfResourceByModelInvariantId(String modelInvariantUuid, String modelVersion) {
894 long startTime = System.currentTimeMillis();
895 LOGGER.debug("Catalog database - get VNF resource with modelInvariantUuid " + modelInvariantUuid);
897 String hql = "FROM VnfResource WHERE modelInvariantUuid = :modelInvariantUuid and version = :serviceVersion";
898 Query query = getSession().createQuery(hql);
899 query.setParameter("modelInvariantUuid", modelInvariantUuid);
900 query.setParameter("serviceVersion", modelVersion);
902 VnfResource resource = null;
904 resource = (VnfResource) query.uniqueResult();
905 } catch (org.hibernate.NonUniqueResultException nure) {
906 LOGGER.debug("Non Unique Result Exception - the Catalog Database does not match a unique row - data integrity error: modelInvariantUuid='" + modelInvariantUuid + "', serviceVersion='" + modelVersion + "'");
907 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " non unique result for modelInvariantUuid=" + modelInvariantUuid + " and serviceVersion=" + modelVersion, "", "", MsoLogger.ErrorCode.DataError, "Non unique result for modelInvariantUuid=" + modelInvariantUuid);
910 } catch (org.hibernate.HibernateException he) {
911 LOGGER.debug("Hibernate Exception - while searching for: modelInvariantUuid='" + modelInvariantUuid + "', asdc_service_model_version='" + modelVersion + "' " + he.getMessage());
912 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " Hibernate exception searching for modelInvariantUuid=" + modelInvariantUuid + " and serviceVersion=" + modelVersion, "", "", MsoLogger.ErrorCode.DataError, "Hibernate exception searching for modelInvariantUuid=" + modelInvariantUuid);
915 } catch (Exception e) {
916 LOGGER.debug("Generic Exception - while searching for: modelInvariantUuid='" + modelInvariantUuid + "', serviceVersion='" + modelVersion + "' " + e.getMessage());
917 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " Generic exception searching for modelInvariantUuid=" + modelInvariantUuid + " and serviceVersion=" + modelVersion, "", "", MsoLogger.ErrorCode.DataError, "Generic exception searching for modelInvariantUuid=" + modelInvariantUuid);
921 if (resource == null) {
922 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "NotFound", "CatalogDB", "getVnfResource", null);
924 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getVnfResource", null);
930 * Return the newest version of a specific VNF resource (queried by ID).
932 * @param id The vnf id
933 * @return VnfResource object or null if none found
936 public VnfResource getVnfResourceById (int id) {
938 long startTime = System.currentTimeMillis ();
939 LOGGER.debug ("Catalog database - get VNF resource with id " + id);
941 String hql = "FROM VnfResource WHERE id = :id";
942 Query query = getSession ().createQuery (hql);
943 query.setParameter ("id", id);
945 @SuppressWarnings("unchecked")
946 List <VnfResource> resultList = query.list ();
948 // See if something came back. Name is unique, so
949 if (resultList.isEmpty ()) {
950 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully. VnfResource not found", "CatalogDB", "getVnfResourceById", null);
953 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getVnfResourceById", null);
954 return resultList.get (0);
958 * Return the newest version of a vfModule - 1607
961 public VfModule getVfModuleModelName(String modelName) {
963 long startTime = System.currentTimeMillis();
964 LOGGER.debug("Catalog database - get vfModuleModelName with name " + modelName);
966 String hql = "FROM VfModule WHERE modelName = :model_name";
967 Query query = getSession().createQuery(hql);
968 query.setParameter("model_name", modelName);
970 @SuppressWarnings("unchecked")
971 List<VfModule> resultList = query.list();
973 // See if something came back. Name is unique, so
974 if (resultList.isEmpty()) {
975 LOGGER.recordMetricEvent(startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully. VF not found", "CatalogDB", "getVfModuleModelName", null);
978 resultList.sort(new MavenLikeVersioningComparator());
979 Collections.reverse(resultList);
981 LOGGER.recordMetricEvent(startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getVfModuleModelName", null);
982 return resultList.get(0);
985 public VfModule getVfModuleModelName(String modelName, String model_version) {
987 long startTime = System.currentTimeMillis();
988 LOGGER.debug("Catalog database - get vfModuleModelName with type='" + modelName + "' and asdc_service_model_version='" + model_version + "'");
990 String hql = "FROM VfModule WHERE Name = :model_name and version = :model_version";
991 Query query = getSession().createQuery(hql);
992 query.setParameter("modelName", modelName);
993 query.setParameter("model_version", model_version);
995 VfModule module = null;
997 module = (VfModule) query.uniqueResult();
998 } catch (org.hibernate.NonUniqueResultException nure) {
999 LOGGER.debug("Non Unique Result Exception - the Catalog Database does not match a unique row - data integrity error: type='" + modelName + "', asdc_service_model_version='" + model_version + "'");
1000 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " non unique result for type=" + modelName + " and version=" + model_version, "", "", MsoLogger.ErrorCode.DataError, "Non unique result for type=" + modelName);
1003 } catch (org.hibernate.HibernateException he) {
1004 LOGGER.debug("Hibernate Exception - while searching for: type='" + modelName + "', asdc_service_model_version='" + model_version + "' " + he.getMessage());
1005 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " Hibernate exception searching for type=" + modelName + " and version=" + model_version, "", "", MsoLogger.ErrorCode.DataError, "Hibernate exception searching for type=" + modelName);
1008 } catch (Exception e) {
1009 LOGGER.debug("Generic Exception - while searching for: type='" + modelName + "', asdc_service_model_version='" + model_version + "' " + e.getMessage());
1010 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " Generic exception searching for type=" + modelName + " and version=" + model_version, "", "", MsoLogger.ErrorCode.DataError, "Generic exception searching for type=" + modelName);
1014 if (module == null) {
1015 LOGGER.recordMetricEvent(startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "NotFound", "CatalogDB", "getVfModuleModelName", null);
1017 LOGGER.recordMetricEvent(startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getVfModuleModelName", null);
1023 * Need this for 1707 DHV. This may be a temporary solution. May
1024 * change it to get resources using service's model name.
1029 public VfModuleCustomization getVfModuleCustomizationByModelName(String modelName) {
1031 long startTime = System.currentTimeMillis();
1032 LOGGER.debug("Catalog database - get VfModuleCustomization By VfModule's ModelName: " + modelName);
1034 String hql = "SELECT VfModuleCustomization FROM VfModuleCustomization as vfmc LEFT OUTER JOIN VfModule as vfm on vfm.modelUUID = vfmc.vfModuleModelUuid where vfm.modelName = :model_name";
1035 Query query = getSession().createQuery(hql);
1036 query.setParameter("model_name", modelName);
1038 @SuppressWarnings("unchecked")
1039 List<VfModuleCustomization> resultList = query.list();
1041 // See if something came back. Name is unique, so
1042 if (resultList.isEmpty()) {
1043 LOGGER.recordMetricEvent(startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successful query but Vf module NOT found", "CatalogDB", "getVfModuleCustomizationByModelName", null);
1047 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successful query ", "CatalogDB", "getVfModuleCustomizationByModelName", null);
1048 return resultList.get(0);
1053 * Return the newest version of a specific Network resource (queried by Type).
1055 * @param networkType
1056 * @return NetworkResource object or null if none found
1058 public NetworkResource getNetworkResource(String networkType) {
1060 long startTime = System.currentTimeMillis();
1061 LOGGER.debug("Catalog database - get network resource with type " + networkType);
1063 String hql = "FROM NetworkResource WHERE model_name = :network_type";
1064 Query query = getSession().createQuery(hql);
1065 query.setParameter("network_type", networkType);
1067 @SuppressWarnings("unchecked")
1068 List <NetworkResource> resultList = query.list();
1070 // See if something came back. Name is unique, so
1071 if (resultList.isEmpty()) {
1072 LOGGER.recordMetricEvent(startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully. Network Resource not found", "CatalogDB", "getNetworkResource", null);
1076 resultList.sort(new MavenLikeVersioningComparator());
1077 Collections.reverse(resultList);
1078 LOGGER.recordMetricEvent(startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getNetworkResource", null);
1079 return resultList.get(0);
1083 * Return a VNF recipe that matches a given VNF_TYPE, ACTION, and, if specified, SERVICE_TYPE
1087 * @param serviceType The service Name, if null or empty is provided, it won't be taken into account
1088 * @return VnfRecipe object or null if none found
1090 public VnfRecipe getVnfRecipe(String vnfType, String action, String serviceType) {
1091 boolean withServiceType = false;
1093 StringBuilder hql = new StringBuilder("FROM VnfRecipe WHERE vnfType = :vnfType AND action = :action ");
1096 if (serviceType == null || serviceType.isEmpty()) {
1097 hql.append("AND serviceType is NULL ");
1099 hql.append("AND serviceType = :serviceType ");
1100 withServiceType = true;
1103 long startTime = System.currentTimeMillis();
1104 LOGGER.debug("Catalog database - get VNF recipe with name " + vnfType
1107 + " and service type "
1110 Query query = getSession().createQuery(hql.toString());
1111 query.setParameter(VNF_TYPE, vnfType);
1112 query.setParameter(ACTION, action);
1113 if (withServiceType) {
1114 query.setParameter(SERVICE_TYPE, serviceType);
1117 @SuppressWarnings("unchecked")
1118 List <VnfRecipe> resultList = query.list();
1120 if (resultList.isEmpty()) {
1121 LOGGER.recordMetricEvent(startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully. VNF recipe not found", "CatalogDB", "getVnfRecipe", null);
1125 resultList.sort(new MavenLikeVersioningComparator());
1126 Collections.reverse(resultList);
1128 LOGGER.recordMetricEvent(startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getVnfRecipe", null);
1129 return resultList.get(0);
1133 * Return a VNF recipe that matches a given VNF_TYPE and ACTION
1137 * @return VnfRecipe object or null if none found
1139 public VnfRecipe getVnfRecipe(String vnfType, String action) {
1141 long startTime = System.currentTimeMillis();
1142 LOGGER.debug("Catalog database - get VNF recipe with name " + vnfType
1146 Query query = getSession().createQuery("FROM VnfRecipe WHERE vnfType = :vnfType AND action = :action ");
1147 query.setParameter(VNF_TYPE, vnfType);
1148 query.setParameter(ACTION, action);
1150 @SuppressWarnings("unchecked")
1151 List <VnfRecipe> resultList = query.list();
1153 if (resultList.isEmpty()) {
1154 LOGGER.recordMetricEvent(startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully. VNF recipe not found", "CatalogDB", "getVnfRecipe", null);
1158 resultList.sort(new MavenLikeVersioningComparator());
1159 Collections.reverse(resultList);
1161 LOGGER.recordMetricEvent(startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getVnfRecipe", null);
1162 return resultList.get(0);
1166 * Return a VNF recipe that matches a given VF_MODULE_ID and ACTION
1170 * @return VnfRecipe object or null if none found
1172 public VnfRecipe getVnfRecipeByVfModuleId(String vnfType, String vfModuleId, String action) {
1174 long startTime = System.currentTimeMillis();
1175 LOGGER.debug("Catalog database - get VNF Recipe with vfModuleId " + vfModuleId);
1177 Query query = getSession().createQuery("FROM VnfRecipe WHERE vfModuleId = :vfModuleId and action = :action ");
1178 query.setParameter(VF_MODULE_MODEL_UUID, vfModuleId);
1179 query.setParameter(ACTION, action);
1181 @SuppressWarnings("unchecked")
1182 List <VnfRecipe> resultList = query.list();
1184 if (resultList.isEmpty()) {
1185 LOGGER.recordMetricEvent(startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully. VNF recipe Entry not found", "CatalogDB", "getVnfRecipeByVfModuleId", null);
1189 resultList.sort(new MavenLikeVersioningComparator());
1190 Collections.reverse(resultList);
1192 LOGGER.recordMetricEvent(startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully. VNF Recipe Entry found", "CatalogDB", "getVnfRecipeByVfModuleId", null);
1193 return resultList.get(0);
1196 public VfModule getVfModuleTypeByUuid(String modelCustomizationUuid) {
1197 long startTime = System.currentTimeMillis();
1198 LOGGER.debug("Catalog database - get vfModuleTypeByUuid with uuid=" + modelCustomizationUuid);
1200 String hql = "FROM VfModule WHERE modelCustomizationUuid = :modelCustomizationUuid";
1201 Query query = getSession().createQuery(hql);
1202 query.setParameter("modelCustomizationUuid", modelCustomizationUuid);
1204 VfModule module = null;
1206 module = (VfModule) query.uniqueResult();
1207 } catch (org.hibernate.NonUniqueResultException nure) {
1208 LOGGER.debug("Non Unique Result Exception - the Catalog Database does not match a unique row - data integrity error: modelCustomizationUuid='" + modelCustomizationUuid + "'");
1209 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " non unique result for modelCustomizationUuid=" + modelCustomizationUuid, "", "", MsoLogger.ErrorCode.DataError, "Non unique result for modelCustomizationUuid==" + modelCustomizationUuid);
1212 } catch (org.hibernate.HibernateException he) {
1213 LOGGER.debug("Hibernate Exception - while searching for: modelCustomizationUuid='" + modelCustomizationUuid + "' " + he.getMessage());
1214 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " Hibernate exception searching for modelCustomizationUuid=" + modelCustomizationUuid, "", "", MsoLogger.ErrorCode.DataError, "Hibernate exception searching for modelCustomizationUuid=" + modelCustomizationUuid);
1217 } catch (Exception e) {
1218 LOGGER.debug("Generic Exception - while searching for: modelCustomizationUuid='" + modelCustomizationUuid + "' " + e.getMessage());
1219 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " Generic exception searching for modelCustomizationUuid=" + modelCustomizationUuid, "", "", MsoLogger.ErrorCode.DataError, "Generic exception searching for modelCustomizationUuid=" + modelCustomizationUuid);
1223 if (module == null) {
1224 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "NotFound", "CatalogDB", "getVfModuleTypeByUuid", null);
1226 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getVfModuleTypeByUuid", null);
1232 public VfModule getVfModuleType(String type) {
1233 long startTime = System.currentTimeMillis();
1234 LOGGER.debug("Catalog database - get vfModuleType with type " + type);
1236 String hql = "FROM VfModule WHERE type = :type";
1237 Query query = getSession().createQuery(hql);
1238 query.setParameter("type", type);
1240 @SuppressWarnings("unchecked")
1241 List<VfModule> resultList = query.list();
1242 if (resultList.isEmpty()) {
1243 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully. VF not found", "CatalogDB", "getVfModuleType", null);
1246 resultList.sort(new MavenLikeVersioningComparator());
1247 Collections.reverse (resultList);
1249 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getVfModuleType", null);
1250 return resultList.get (0);
1254 public VfModule getVfModuleType(String type, String version) {
1256 long startTime = System.currentTimeMillis();
1257 LOGGER.debug ("Catalog database - get vfModuleType with type " + type + " and model_version " + version);
1259 String hql = "FROM VfModule WHERE type = :type and version = :version";
1260 Query query = getSession().createQuery(hql);
1261 query.setParameter ("type", type);
1262 query.setParameter ("version", version);
1263 VfModule module = null;
1265 module = (VfModule) query.uniqueResult ();
1266 } catch (org.hibernate.NonUniqueResultException nure) {
1267 LOGGER.debug("Non Unique Result Exception - the Catalog Database does not match a unique row - data integrity error: type='" + type + "', asdc_service_model_version='" + version + "'");
1268 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " non unique result for type=" + type + " and version=" + version, "", "", MsoLogger.ErrorCode.DataError, "Non unique result for type==" + type);
1271 } catch (org.hibernate.HibernateException he) {
1272 LOGGER.debug("Hibernate Exception - while searching for: type='" + type + "', asdc_service_model_version='" + version + "' " + he.getMessage());
1273 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " Hibernate exception searching for type=" + type + " and version=" + version, "", "", MsoLogger.ErrorCode.DataError, "Hibernate exception searching for type=" + type);
1276 } catch (Exception e) {
1277 LOGGER.debug("Generic Exception - while searching for: type='" + type + "', asdc_service_model_version='" + version + "' " + e.getMessage());
1278 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " Generic exception searching for type=" + type + " and version=" + version, "", "", MsoLogger.ErrorCode.DataError, "Generic exception searching for type=" + type);
1282 if (module == null) {
1283 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "NotFound", "CatalogDB", "getVfModuleType", null);
1285 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getVfModuleType", null);
1290 public VnfResource getVnfResourceByServiceUuid(String serviceModelInvariantUuid) {
1291 long startTime = System.currentTimeMillis();
1292 LOGGER.debug ("Catalog database - get vfModuleType with serviceModelInvariantUuid " + serviceModelInvariantUuid);
1294 String hql = "FROM VnfResource WHERE serviceModelInvariantUuid = :serviceModelInvariantUuid";
1295 Query query = getSession().createQuery(hql);
1296 query.setParameter ("serviceModelInvariantUuid", serviceModelInvariantUuid);
1297 VnfResource vnfResource = null;
1299 vnfResource = (VnfResource) query.uniqueResult();
1300 } catch (org.hibernate.NonUniqueResultException nure) {
1301 LOGGER.debug("Non Unique Result Exception - the Catalog Database does not match a unique row - data integrity error: serviceModelInvariantUuid='" + serviceModelInvariantUuid);
1302 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " non unique result for serviceModelInvariantUuid=" + serviceModelInvariantUuid, "", "", MsoLogger.ErrorCode.DataError, "Non unique result for serviceModelInvariantUuid==" + serviceModelInvariantUuid);
1305 } catch (org.hibernate.HibernateException he) {
1306 LOGGER.debug("Hibernate Exception - while searching for: serviceModelInvariantUuid='" + serviceModelInvariantUuid + "' " + he.getMessage());
1307 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " Hibernate exception searching for serviceModelInvariantUuid=" + serviceModelInvariantUuid, "", "", MsoLogger.ErrorCode.DataError, "Hibernate exception searching for serviceModelInvariantUuid=" + serviceModelInvariantUuid);
1310 } catch (Exception e) {
1311 LOGGER.debug("Generic Exception - while searching for: serviceModelInvariantUuid='" + serviceModelInvariantUuid + "' " + e.getMessage());
1312 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " Generic exception searching for serviceModelInvariantUuid=" + serviceModelInvariantUuid, "", "", MsoLogger.ErrorCode.DataError, "Generic exception searching for serviceModelInvariantUuid=" + serviceModelInvariantUuid);
1316 if (vnfResource == null) {
1317 LOGGER.recordMetricEvent(startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "NotFound", "CatalogDB", "getVfModuleType", null);
1319 LOGGER.recordMetricEvent(startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getVfModuleType", null);
1324 public VnfResource getVnfResourceByVnfUuid(String vnfResourceModelInvariantUuid) {
1325 long startTime = System.currentTimeMillis();
1326 LOGGER.debug("Catalog database - get vfModuleType with vnfResourceModelInvariantUuid " + vnfResourceModelInvariantUuid);
1328 String hql = "FROM VnfResource WHERE vnfResourceModelInvariantUuid = :vnfResourceModelInvariantUuid";
1329 Query query = getSession().createQuery(hql);
1330 query.setParameter("vnfResourceModelInvariantUuid", vnfResourceModelInvariantUuid);
1331 VnfResource vnfResource = null;
1333 vnfResource = (VnfResource) query.uniqueResult();
1334 } catch (org.hibernate.NonUniqueResultException nure) {
1335 LOGGER.debug("Non Unique Result Exception - the Catalog Database does not match a unique row - data integrity error: vnfResourceModelInvariantUuid='" + vnfResourceModelInvariantUuid);
1336 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " non unique result for vnfResourceModelInvariantUuid=" + vnfResourceModelInvariantUuid, "", "", MsoLogger.ErrorCode.DataError, "Non unique result for vnfResourceModelInvariantUuid==" + vnfResourceModelInvariantUuid);
1339 } catch (org.hibernate.HibernateException he) {
1340 LOGGER.debug("Hibernate Exception - while searching for: vnfResourceModelInvariantUuid='" + vnfResourceModelInvariantUuid + "' " + he.getMessage());
1341 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " Hibernate exception searching for vnfResourceModelInvariantUuid=" + vnfResourceModelInvariantUuid, "", "", MsoLogger.ErrorCode.DataError, "Hibernate exception searching for vnfResourceModelInvariantUuid=" + vnfResourceModelInvariantUuid);
1344 } catch (Exception e) {
1345 LOGGER.debug("Generic Exception - while searching for: vnfResourceModelInvariantUuid='" + vnfResourceModelInvariantUuid + "' " + e.getMessage());
1346 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " Generic exception searching for vnfResourceModelInvariantUuid=" + vnfResourceModelInvariantUuid, "", "", MsoLogger.ErrorCode.DataError, "Generic exception searching for vnfResourceModelInvariantUuid=" + vnfResourceModelInvariantUuid);
1350 if (vnfResource == null) {
1351 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "NotFound", "CatalogDB", "getVfModuleType", null);
1353 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getVfModuleType", null);
1358 public VnfResource getVnfResourceByType(String vnfType) {
1359 return this.getVnfResource(vnfType);
1362 public VfModule getVfModuleByModelInvariantUuid(String modelInvariantUUID) {
1363 long startTime = System.currentTimeMillis();
1364 LOGGER.debug ("Catalog database - get vfModuleTypeByModelInvariantUuid with uuid " + modelInvariantUUID);
1366 String hql = "FROM VfModule WHERE modelInvariantUUID = :modelInvariantUUID ";
1367 HashMap<String, String> parameters = new HashMap<>();
1368 parameters.put("modelInvariantUUID", modelInvariantUUID);
1369 List<VfModule> modules = this.executeQueryMultipleRows(hql, parameters, true);
1370 VfModule module = null;
1372 if (modules != null && ! modules.isEmpty()) {
1373 modules.sort(new MavenLikeVersioningComparator());
1374 Collections.reverse (modules);
1375 module = modules.get(0);
1378 if (module == null) {
1379 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "NotFound", "CatalogDB", "getVfModuleByModelInvariantUuid", null);
1381 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getVfModuleByModelInvariantUuid", null);
1386 public VfModuleCustomization getVfModuleByModelCustomizationUuid(String modelCustomizationUuid) {
1387 long startTime = System.currentTimeMillis();
1388 LOGGER.debug ("Catalog database - get vfModuleTypeByModelCustomizationUuid with uuid " + modelCustomizationUuid);
1390 String hql = "FROM VfModuleCustomization WHERE modelCustomizationUuid = :modelCustomizationUuid ";
1391 Query query = getSession().createQuery(hql);
1392 query.setParameter ("modelCustomizationUuid", modelCustomizationUuid);
1393 VfModuleCustomization module = null;
1395 module = (VfModuleCustomization) query.uniqueResult ();
1396 } catch (org.hibernate.NonUniqueResultException nure) {
1397 LOGGER.debug("Non Unique Result Exception - the Catalog Database does not match a unique row - data integrity error: modelCustomizationUuid='" + modelCustomizationUuid + "'");
1398 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " non unique result for vfModuleModelInvariantUuid=" + modelCustomizationUuid , "", "", MsoLogger.ErrorCode.DataError, "Non unique result for modelCustomizationUuid==" + modelCustomizationUuid);
1401 } catch (org.hibernate.HibernateException he) {
1402 LOGGER.debug("Hibernate Exception - while searching for: modelCustomizationUuid='" + modelCustomizationUuid + "' " + he.getMessage());
1403 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " Hibernate exception searching for modelCustomizationUuid=" + modelCustomizationUuid, "", "", MsoLogger.ErrorCode.DataError, "Hibernate exception searching for modelCustomizationUuid=" + modelCustomizationUuid);
1406 } catch (Exception e) {
1407 LOGGER.debug("Generic Exception - while searching for: modelCustomizationUuid='" + modelCustomizationUuid + "' " + e.getMessage());
1408 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " Generic exception searching for modelCustomizationUuid=" + modelCustomizationUuid, "", "", MsoLogger.ErrorCode.DataError, "Generic exception searching for modelCustomizationUuid=" + modelCustomizationUuid);
1412 if (module == null) {
1413 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "NotFound", "CatalogDB", "getVfModuleByModelCustomizationUuid", null);
1415 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getVfModuleByModelCustomizationUuid", null);
1421 public VfModule getVfModuleByModelInvariantUuidAndModelVersion(String modelInvariantUuid, String modelVersion) {
1422 long startTime = System.currentTimeMillis();
1423 LOGGER.debug ("Catalog database - get getVfModuleByModelInvariantUuidAndModelVersion with modelInvariantUuid: " + modelInvariantUuid + ", modelVersion: " + modelVersion);
1425 String hql = "FROM VfModule WHERE modelInvariantUUID = :modelInvariantUuid and version = :modelVersion";
1426 Query query = getSession().createQuery(hql);
1427 query.setParameter ("modelInvariantUuid", modelInvariantUuid);
1428 query.setParameter("modelVersion", modelVersion);
1429 VfModule module = null;
1431 module = (VfModule) query.uniqueResult ();
1432 } catch (org.hibernate.NonUniqueResultException nure) {
1433 LOGGER.debug("Non Unique Result Exception - the Catalog Database does not match a unique row - data integrity error: modelInvariantUuid='" + modelInvariantUuid + "', modelVersion='" +modelVersion + "'");
1434 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " non unique result for vfModule ModelInvariantUuid=" + modelInvariantUuid + " modelVersion=" + modelVersion, "", "", MsoLogger.ErrorCode.DataError, "Non unique result for ModelInvariantUuid==" + modelInvariantUuid + " modelVersion==" + modelVersion);
1436 } catch (org.hibernate.HibernateException he) {
1437 LOGGER.debug("Hibernate Exception - while searching for: modelInvariantUuid='" + modelInvariantUuid + "', modelVersion='" +modelVersion + "' " + he.getMessage());
1438 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " Hibernate exception searching for modelInvariantUuid=" + modelInvariantUuid + " modelVersion=" + modelVersion, "", "", MsoLogger.ErrorCode.DataError, "Hibernate exception searching for modelInvariantUuid=" + modelInvariantUuid + " modelVersion=" + modelVersion);
1440 } catch (Exception e) {
1441 LOGGER.debug("Generic Exception - while searching for: modelInvariantUuid='" + modelInvariantUuid + "', modelVersion='" +modelVersion + "' " + e.getMessage());
1442 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " Generic exception searching for modelInvariantUuid=" + modelInvariantUuid + " modelVersion=" + modelVersion, "", "", MsoLogger.ErrorCode.DataError, "Generic exception searching for modelInvariantUuid=" + modelInvariantUuid + " modelVersion=" + modelVersion);
1445 if (module == null) {
1446 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "NotFound", "CatalogDB", "getVfModuleByModelInvariantUuidAndModelVersion", null);
1448 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getVfModuleByModelInvariantUuidAndModelVersion", null);
1454 * Return the VfModuleCustomization object identified by the given modelCustomizationUuid 1707
1456 * @param modelCustomizationUuid
1457 * @return VfModuleCustomization or null if not found
1459 public VfModuleCustomization getVfModuleCustomizationByModelCustomizationId(String modelCustomizationUuid) {
1460 long startTime = System.currentTimeMillis();
1461 LOGGER.debug ("Catalog database - get getVfModuleCustomizationByModelCustomizationId with modelCustomizationUuid: " + modelCustomizationUuid);
1463 String hql = "FROM VfModuleCustomization WHERE modelCustomizationUuid = :modelCustomizationUuid";
1464 Query query = getSession().createQuery(hql);
1465 query.setParameter ("modelCustomizationUuid", modelCustomizationUuid);
1466 VfModuleCustomization VfModuleCustomization = null;
1468 VfModuleCustomization = (VfModuleCustomization) query.uniqueResult ();
1469 } catch (org.hibernate.NonUniqueResultException nure) {
1470 LOGGER.debug("Non Unique Result Exception - the Catalog Database does not match a unique row - data integrity error: modelCustomizationUuid='" + modelCustomizationUuid +"'");
1471 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " non unique result for vfModuleCustomization modelCustomizationUuid=" + modelCustomizationUuid, "", "", MsoLogger.ErrorCode.DataError, "Non unique result for modelCustomizationUuid==" + modelCustomizationUuid);
1473 } catch (org.hibernate.HibernateException he) {
1474 LOGGER.debug("Hibernate Exception - while searching for: modelCustomizationUuid='" + modelCustomizationUuid + "' " + he.getMessage());
1475 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " Hibernate exception searching for modelCustomizationUuid=" + modelCustomizationUuid, "", "", MsoLogger.ErrorCode.DataError, "Hibernate exception searching for modelCustomizationUuid=" + modelCustomizationUuid);
1477 } catch (Exception e) {
1478 LOGGER.debug("Generic Exception - while searching for: modelCustomizationUuid='" + modelCustomizationUuid + "' " + e.getMessage());
1479 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " Generic exception searching for modelCustomizationUuid=" + modelCustomizationUuid, "", "", MsoLogger.ErrorCode.DataError, "Generic exception searching for modelCustomizationUuid=" + modelCustomizationUuid);
1482 if (VfModuleCustomization != null) {
1483 LOGGER.debug("Found VMC of " + VfModuleCustomization.getModelCustomizationUuid() + ", now looking for vfModule=" + VfModuleCustomization.getVfModuleModelUuid());
1484 VfModuleCustomization.setVfModule(this.getVfModuleByModelUuid(VfModuleCustomization.getVfModuleModelUuid()));
1487 if (VfModuleCustomization == null) {
1488 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "NotFound", "CatalogDB", "getVfModuleCustomizationByModelCustomizationId", null);
1490 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getVfModuleCustomizationByModelCustomizationId", null);
1492 return VfModuleCustomization;
1496 * Return the VfModule object identified by the given modelUuid 1707
1497 * per Mike Z. - this may return more than one row - and even if it does,
1498 * the heat template will be the same - so just return any of the rows.
1501 * @return VfModule or null if not found
1503 public VfModule getVfModuleByModelUuid(String modelUuid) {
1504 long startTime = System.currentTimeMillis();
1505 LOGGER.debug ("Catalog database - get getVfModuleByModelUuid with modelUuid: " + modelUuid);
1507 String hql = "FROM VfModule WHERE modelUUID = :modelUuidValue";
1508 Query query = getSession().createQuery(hql);
1509 query.setParameter ("modelUuidValue", modelUuid);
1510 List<VfModule> vfModules = null;
1512 vfModules = query.list ();
1513 } catch (org.hibernate.HibernateException he) {
1514 LOGGER.debug("Hibernate Exception - while searching VfModule for: modelUuid='" + modelUuid + "' " + he.getMessage());
1515 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " Hibernate exception searching VfModule for modelUuid=" + modelUuid, "", "", MsoLogger.ErrorCode.DataError, "Hibernate exception searching for modelUuid=" + modelUuid);
1517 } catch (Exception e) {
1518 LOGGER.debug("Generic Exception - while searching VfModule for: modelUuid='" + modelUuid + "' " + e.getMessage());
1519 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " Generic exception searching for modelUuid=" + modelUuid, "", "", MsoLogger.ErrorCode.DataError, "Generic exception searching for modelUuid=" + modelUuid);
1523 if (vfModules == null || vfModules.isEmpty()) {
1524 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "NotFound", "CatalogDB", "getVfModuleByModelUuid", null);
1527 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getVfModuleByModelUuid", null);
1529 return vfModules.get(0);
1532 * Return the VnfResourceCustomization object identified by the given modelCustomizationUuid 1707
1533 * Note that the corresponding VnfResource Object will be put in the VnfResourceCustomization bean
1535 * @param modelCustomizationUuid
1536 * @return VnfResourceCustomization or null if not found
1538 public VnfResourceCustomization getVnfResourceCustomizationByModelCustomizationUuid(String modelCustomizationUuid) {
1539 long startTime = System.currentTimeMillis();
1540 LOGGER.debug ("Catalog database - get getVnfResourceByModelCustomizatonUuid with modelCustomizationUuid: " + modelCustomizationUuid);
1542 String hql = "FROM VnfResourceCustomization WHERE modelCustomizationUuid = :modelCustomizationUuid";
1543 Query query = getSession().createQuery(hql);
1544 query.setParameter ("modelCustomizationUuid", modelCustomizationUuid);
1545 VnfResourceCustomization vnfResourceCustomization = null;
1547 vnfResourceCustomization = (VnfResourceCustomization) query.uniqueResult ();
1548 } catch (org.hibernate.NonUniqueResultException nure) {
1549 LOGGER.debug("Non Unique Result Exception - the Catalog Database does not match a unique row in VRC - data integrity error: modelCustomizationUuid='" + modelCustomizationUuid +"'");
1550 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " non unique result for vnfResourceCustomization modelCustomizationUuid=" + modelCustomizationUuid, "", "", MsoLogger.ErrorCode.DataError, "Non unique result for modelCustomizationUuid==" + modelCustomizationUuid);
1552 } catch (org.hibernate.HibernateException he) {
1553 LOGGER.debug("Hibernate Exception - while searching VRC for: modelCustomizationUuid='" + modelCustomizationUuid + "' " + he.getMessage());
1554 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " Hibernate exception searching VRC for modelCustomizationUuid=" + modelCustomizationUuid, "", "", MsoLogger.ErrorCode.DataError, "Hibernate exception searching for modelCustomizationUuid=" + modelCustomizationUuid);
1556 } catch (Exception e) {
1557 LOGGER.debug("Generic Exception - while searching VRC for: modelCustomizationUuid='" + modelCustomizationUuid + "' " + e.getMessage());
1558 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " Generic exception searching VRC for modelCustomizationUuid=" + modelCustomizationUuid, "", "", MsoLogger.ErrorCode.DataError, "Generic exception searching for modelCustomizationUuid=" + modelCustomizationUuid);
1561 if (vnfResourceCustomization != null) {
1562 LOGGER.debug("Found VRC of " + vnfResourceCustomization.getModelCustomizationUuid() + ", now looking for vnfResource=" + vnfResourceCustomization.getVnfResourceModelUuid() );
1563 vnfResourceCustomization.setVnfResource(this.getVnfResourceByModelUuid(vnfResourceCustomization.getVnfResourceModelUuid()));
1564 LOGGER.debug("Now looking for vfModules for " + vnfResourceCustomization.getModelCustomizationUuid());
1565 vnfResourceCustomization.setVfModuleCustomizations(this.getAllVfModuleCustomizations(vnfResourceCustomization.getModelCustomizationUuid()));
1568 if (vnfResourceCustomization == null) {
1569 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "NotFound", "CatalogDB", "getVnfResourceCustomizationByModelCustomizationUuid", null);
1571 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getVnfResourceCustomizationByModelCustomizationUuid", null);
1573 return vnfResourceCustomization;
1577 * Return the VnfResourceCustomization object identified by the given modelCustomizationUuid 1707
1578 * Note that the corresponding VnfResource Object will be put in the VnfResourceCustomization bean
1580 * @param modelVersionId
1581 * @return VnfResourceCustomization or null if not found
1583 public VnfResourceCustomization getVnfResourceCustomizationByModelVersionId(String modelVersionId) {
1584 long startTime = System.currentTimeMillis();
1585 LOGGER.debug ("Catalog database - get getVnfResourceCustomizationByModelVersionId with modelVersionId: " + modelVersionId);
1587 String hql = "FROM VnfResourceCustomization WHERE vnfResourceModelUuid = :modelVersionId";
1588 Query query = getSession().createQuery(hql);
1589 query.setParameter ("modelVersionId", modelVersionId);
1590 VnfResourceCustomization vnfResourceCustomization = null;
1592 vnfResourceCustomization = (VnfResourceCustomization) query.uniqueResult ();
1593 } catch (org.hibernate.NonUniqueResultException nure) {
1594 LOGGER.debug("Non Unique Result Exception - the Catalog Database does not match a unique row in VRC - data integrity error: modelVersionId='" + modelVersionId +"'");
1595 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " non unique result for vnfResourceCustomization modelVersionId=" + modelVersionId, "", "", MsoLogger.ErrorCode.DataError, "Non unique result for modelVersionId==" + modelVersionId);
1597 } catch (org.hibernate.HibernateException he) {
1598 LOGGER.debug("Hibernate Exception - while searching VRC for: modelVersionId='" + modelVersionId + "' " + he.getMessage());
1599 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " Hibernate exception searching VRC for modelVersionId=" + modelVersionId, "", "", MsoLogger.ErrorCode.DataError, "Hibernate exception searching for modelVersionId=" + modelVersionId);
1601 } catch (Exception e) {
1602 LOGGER.debug("Generic Exception - while searching VRC for: modelVersionId='" + modelVersionId + "' " + e.getMessage());
1603 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " Generic exception searching VRC for modelVersionId=" + modelVersionId, "", "", MsoLogger.ErrorCode.DataError, "Generic exception searching for modelVersionId=" + modelVersionId);
1606 if (vnfResourceCustomization != null) {
1607 LOGGER.debug("Found VRC of " + vnfResourceCustomization.getModelCustomizationUuid() + ", now looking for vnfResource=" + vnfResourceCustomization.getVnfResourceModelUuid() );
1608 vnfResourceCustomization.setVnfResource(this.getVnfResourceByModelUuid(vnfResourceCustomization.getVnfResourceModelUuid()));
1609 LOGGER.debug("Now looking for vfModules for " + vnfResourceCustomization.getModelCustomizationUuid());
1610 vnfResourceCustomization.setVfModuleCustomizations(this.getAllVfModuleCustomizations(vnfResourceCustomization.getModelCustomizationUuid()));
1613 if (vnfResourceCustomization == null) {
1614 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "NotFound", "CatalogDB", "getVnfResourceCustomizationByModelVersionId", null);
1616 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getVnfResourceCustomizationByModelVersionId", null);
1618 return vnfResourceCustomization;
1622 * Return the VfModule object identified by the given modelCustomizationId, modelVersionId 1707
1624 * @param modelVersionId, modelCustomizationId
1625 * @return VfModule or null if not found
1627 public VfModule getVfModuleByModelCustomizationIdAndVersion(String modelCustomizationId, String modelVersionId) {
1628 long startTime = System.currentTimeMillis();
1629 LOGGER.debug ("Catalog database - get getVfModuleByModelCustomizationIdAndVersion with modelVersionId: " + modelVersionId + " modelCustomizationId: " + modelCustomizationId);
1631 // select * from vf_module vfm where vfm.MODEL_UUID IN (
1632 // select vfmc.VF_MODULE_MODEL_UUID from vf_module_customization vfmc where vfmc.MODEL_CUSTOMIZATION_UUID='222bd8f2-341d-4419-aa0e-98398fa34050')
1633 // and vfm.MODEL_UUID = 'fa1c8558-006c-4fb6-82f2-4fc0646d6b06';
1635 String hql = "Select vfm FROM VfModule as vfm WHERE vfm.modelUUID IN ("
1636 + "SELECT vfmc.vfModuleModelUuid FROM VfModuleCustomization as vfmc "
1637 + "WHERE vfmc.modelCustomizationUuid = :modelCustomizationId) "
1638 + "AND vfm.modelUUID = :modelVersionId";
1639 Query query = getSession().createQuery(hql);
1640 query.setParameter ("modelVersionId", modelVersionId);
1641 query.setParameter ("modelCustomizationId", modelCustomizationId);
1642 VfModule vfModule = null;
1644 vfModule = (VfModule) query.uniqueResult ();
1645 } catch (org.hibernate.NonUniqueResultException nure) {
1646 LOGGER.debug("Non Unique Result Exception - the Catalog Database does not match a unique row in VRC - data integrity error: modelVersionId='" + modelVersionId +"' modelCustomizationId='" + modelCustomizationId + "'");
1647 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " non unique result for vnfResourceCustomization modelVersionId=" + modelVersionId, "", "", MsoLogger.ErrorCode.DataError, "Non unique result for modelVersionId=" + modelVersionId + " modelCustomizationId=" + modelCustomizationId);
1649 } catch (org.hibernate.HibernateException he) {
1650 LOGGER.debug("Hibernate Exception - while searching VRC for: modelVersionId='" + modelVersionId + "' modelCustomizationId='" + modelCustomizationId + "' " + he.getMessage());
1651 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " Hibernate exception searching VRC for modelVersionId=" + modelVersionId, "", "", MsoLogger.ErrorCode.DataError, "Hibernate exception searching for modelVersionId=" + modelVersionId + " modelCustomizationId=" + modelCustomizationId);
1653 } catch (Exception e) {
1654 LOGGER.debug("Generic Exception - while searching VRC for: modelVersionId='" + modelVersionId + "' modelCustomizationId='" + modelCustomizationId + "' " + e.getMessage());
1655 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " Generic exception searching VRC for modelVersionId=" + modelVersionId, "", "", MsoLogger.ErrorCode.DataError, "Generic exception searching for modelVersionId=" + modelVersionId + " modelCustomizationId=" + modelCustomizationId);
1659 if (vfModule == null) {
1660 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "NotFound", "CatalogDB", "getVfModuleByModelCustomizationIdAndVersion", null);
1662 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getVfModuleByModelCustomizationIdAndVersion", null);
1668 * Return the VfModule object identified by the given modelCustomizationId, modelVersion, modelInvariantId 1707
1670 * @param modelCustomizationId, modelVersion, modelInvariantId
1671 * @return VfModule or null if not found
1673 public VfModule getVfModuleByModelCustomizationIdModelVersionAndModelInvariantId(String modelCustomizationId, String modelVersion, String modelInvariantId) {
1674 long startTime = System.currentTimeMillis();
1675 LOGGER.debug ("Catalog database - get getVfModuleByModelCustomizationIdModelVersionAndModelInvariantId with modelVersionId: " + modelVersion);
1677 //select * from vf_module vfm left outer join vf_module_customization vfmc on vfmc.VF_MODULE_MODEL_UUID = vfm.MODEL_UUID
1678 // where vfmc.MODEL_CUSTOMIZATION_UUID='52643a8e-7953-4e48-8eab-97165b2b3a4b' and vfm.MODEL_UUID = ''
1680 String hql = "Select vfm FROM VfModule as vfm LEFT OUTER JOIN VfModuleCustomization as vfmc on vfmc.vfModuleModelUuid = vfm.modelUUID"
1681 + "WHERE vfmc.modelCustomizationUuid = :modelCustomizationId AND vfm.modelInvariantUUID = :modelInvariantId AND vfm.modelVersion = :modelVersion";
1682 Query query = getSession().createQuery(hql);
1683 query.setParameter ("modelInvariantId", modelInvariantId);
1684 query.setParameter ("modelCustomizationId", modelCustomizationId);
1685 query.setParameter ("modelVersion", modelVersion);
1686 VfModule vfModule = null;
1688 vfModule = (VfModule) query.uniqueResult ();
1689 } catch (org.hibernate.NonUniqueResultException nure) {
1690 LOGGER.debug("Non Unique Result Exception - the Catalog Database does not match a unique row in VRC - data integrity error: modelInvariantId='" + modelInvariantId +"' modelVersion='" + modelVersion + "' modelCustomizationId='" + modelCustomizationId +"'");
1691 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " non unique result for vnfResourceCustomization modelInvariantId=" + modelInvariantId, "", "", MsoLogger.ErrorCode.DataError, "Non unique result for modelInvariantId=" + modelInvariantId + " modelVersion=" + modelVersion + " modelCustomizationId=" + modelCustomizationId);
1693 } catch (org.hibernate.HibernateException he) {
1694 LOGGER.debug("Hibernate Exception - while searching VRC for: modelInvariantId='" + modelInvariantId + "' modelVersion='" + modelVersion + "' modelCustomizationId='" + modelCustomizationId + "' " + he.getMessage());
1695 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " Hibernate exception searching VRC for modelInvariantId=" + modelInvariantId, "", "", MsoLogger.ErrorCode.DataError, "Hibernate exception searching for modelInvariantId=" + modelInvariantId + " modelVersion=" + modelVersion + " modelCustomizationId=" + modelCustomizationId);
1697 } catch (Exception e) {
1698 LOGGER.debug("Generic Exception - while searching VRC for: modelInvariantId='" + modelInvariantId + "' modelVersion='" + modelVersion + "' modelCustomizationId='" + modelCustomizationId + "' " + e.getMessage());
1699 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " Generic exception searching VRC for modelInvariantId=" + modelInvariantId, "", "", MsoLogger.ErrorCode.DataError, "Generic exception searching for modelInvariantId=" + modelInvariantId + " modelVersion=" + modelVersion + " modelCustomizationId=" + modelCustomizationId);
1703 if (vfModule == null) {
1704 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "NotFound", "CatalogDB", "getVfModuleByModelCustomizationIdModelVersionAndModelInvariantId", null);
1706 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getVfModuleByModelCustomizationIdModelVersionAndModelInvariantId", null);
1712 * Return the VnfResourceCustomization object identified by the given modelCustomizationName, modelInvariantId and modelVersion 1707
1714 * @param modelInvariantId, modelVersion, modelCustomizationName
1715 * @return VnfResourceCustomization or null if not found
1717 public VnfResourceCustomization getVnfResourceCustomizationByModelInvariantId(String modelInvariantId, String modelVersion, String modelCustomizationName) {
1718 long startTime = System.currentTimeMillis();
1719 LOGGER.debug ("Catalog database - get getVnfResourceCustomizationByModelInvariantId with modelInvariantId: " + modelInvariantId + ", modelVersion: "
1720 + modelVersion + ", modelCustomizationName: " + modelCustomizationName);
1722 String hql = "SELECT VnfResourceCustomization FROM VnfResourceCustomization as vrc "
1723 + "LEFT OUTER JOIN VnfResource as vr "
1724 + "on vr.modelUuid =vrc.vnfResourceModelUuid "
1725 + "WHERE vr.modelInvariantUuid = :modelInvariantId AND vr.modelVersion = :modelVersion AND vrc.modelInstanceName = :modelCustomizationName";
1727 Query query = getSession().createQuery(hql);
1728 query.setParameter ("modelInvariantId", modelInvariantId);
1729 query.setParameter("modelVersion", modelVersion);
1730 query.setParameter("modelCustomizationName", modelCustomizationName);
1731 VnfResourceCustomization vnfResourceCustomization = null;
1733 vnfResourceCustomization = (VnfResourceCustomization) query.uniqueResult ();
1734 } catch (org.hibernate.NonUniqueResultException nure) {
1735 LOGGER.debug("Non Unique Result Exception - the Catalog Database does not match a unique row in VRC - data integrity error: modelInvariantId='" + modelInvariantId +"' and modelVersion='" + modelVersion + "' modelCustomizationName='" + modelCustomizationName + "'");
1736 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " non unique result for vnfResourceCustomization modelInvariantId=" + modelInvariantId, "", "", MsoLogger.ErrorCode.DataError, "Non unique result for modelInvariantId==" + modelInvariantId+"' and modelVersion='" + modelVersion + "'modelCustomizationName='" + modelCustomizationName + "'");
1738 } catch (org.hibernate.HibernateException he) {
1739 LOGGER.debug("Hibernate Exception - while searching VRC for: modelInvariantId='" + modelInvariantId +"' and modelVersion='" + modelVersion + "'modelCustomizationName='" + modelCustomizationName + "' " + he.getMessage());
1740 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " Hibernate exception searching VRC for modelInvariantId=" + modelInvariantId, "", "", MsoLogger.ErrorCode.DataError, "Hibernate exception searching for modelInvariantId=" + modelInvariantId+"' and modelVersion='" + modelVersion + "'modelCustomizationName='" + modelCustomizationName + "'");
1742 } catch (Exception e) {
1743 LOGGER.debug("Generic Exception - while searching VRC for: modelInvariantId='" + modelInvariantId +"' and modelVersion='" + modelVersion + "' " + e.getMessage());
1744 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " Generic exception searching VRC for modelInvariantId=" + modelInvariantId, "", "", MsoLogger.ErrorCode.DataError, "Generic exception searching for modelInvariantId=" + modelInvariantId+"' and modelVersion='" + modelVersion + "'modelCustomizationName='" + modelCustomizationName + "'");
1747 if (vnfResourceCustomization != null) {
1748 LOGGER.debug("Found VRC of " + vnfResourceCustomization.getModelCustomizationUuid() + ", now looking for vnfResource=" + vnfResourceCustomization.getVnfResourceModelUuid() );
1749 vnfResourceCustomization.setVnfResource(this.getVnfResourceByModelUuid(vnfResourceCustomization.getVnfResourceModelUUID()));
1750 LOGGER.debug("Now looking for vfModules for " + vnfResourceCustomization.getModelCustomizationUuid());
1751 vnfResourceCustomization.setVfModuleCustomizations(this.getAllVfModuleCustomizations(vnfResourceCustomization.getModelCustomizationUuid()));
1754 if (vnfResourceCustomization == null) {
1755 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "NotFound", "CatalogDB", "getVnfResourceCustomizationByModelInvariantId", null);
1757 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getVnfResourceCustomizationByModelInvariantId", null);
1759 return vnfResourceCustomization;
1763 * Return list of VnfResourceCustomization objects identified by the given modelCustomizationUuid 1707
1765 * @param modelCustomizationUuid
1766 * @return List<VfModuleCustomization> or null if not found
1768 public List<VfModuleCustomization> getVfModuleCustomizationByVnfModuleCustomizationUuid(String modelCustomizationUuid) {
1769 long startTime = System.currentTimeMillis();
1770 LOGGER.debug ("Catalog database - get getVfModuleCustomizationByVnfModuleCustomizationUuid with modelCustomizationUuid: " + modelCustomizationUuid);
1772 // select * from vf_module_customization as vfmc where vfmc.MODEL_CUSTOMIZATION_UUID IN(
1773 // select vrcmc.VF_MODULE_CUST_MODEL_CUSTOMIZATION_UUID from vnf_res_custom_to_vf_module_custom as vrcmc
1774 // where vrcmc.VNF_RESOURCE_CUST_MODEL_CUSTOMIZATION_UUID = 'd279139c-4b85-48ff-8ac4-9b83a6fc6da7')
1776 String hql = "SELECT vfmc FROM VfModuleCustomization as vfmc where vfmc.modelCustomizationUuid "
1777 + "IN(select vrcmc.vfModuleCustModelCustomizationUuid from VnfResCustomToVfModuleCustom as vrcmc "
1778 + "WHERE vrcmc.vnfResourceCustModelCustomizationUuid = :modelCustomizationUuid)";
1780 Query query = getSession().createQuery(hql);
1781 query.setParameter ("modelCustomizationUuid", modelCustomizationUuid);
1782 List<VfModuleCustomization> resultList = null;
1784 resultList = query.list();
1785 } catch (org.hibernate.HibernateException he) {
1786 LOGGER.debug("Hibernate Exception - getVfModuleCustomizationByVnfModuleCustomizationUuid - while searching for: modelCustomizationUuid='" + modelCustomizationUuid + " " + he.getMessage());
1787 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " Hibernate exception - getVfModuleCustomizationByVnfModuleCustomizationUuid - searching for modelCustomizationUuid=" + modelCustomizationUuid, "", "", MsoLogger.ErrorCode.DataError, "Hibernate exception searching for modelCustomizationUuid=" + modelCustomizationUuid);
1789 } catch (Exception e) {
1790 LOGGER.debug("Exception - getVfModuleCustomizationByVnfModuleCustomizationUuid - while searching for: modelCustomizationUuid='" + modelCustomizationUuid + " " + e.getMessage());
1791 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " Hibernate exception - getVfModuleCustomizationByVnfModuleCustomizationUuid - searching for modelCustomizationUuid=" + modelCustomizationUuid, "", "", MsoLogger.ErrorCode.DataError, "Hibernate exception searching for modelCustomizationUuid=" + modelCustomizationUuid);
1795 if (resultList == null) {
1796 resultList = new ArrayList<>();
1798 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getVfModuleCustomizationByVnfModuleCustomizationUuid", null);
1803 * Return the newest version of a specific VNF resource Customization (queried by modelCustomizationName and modelVersionId).
1805 * @return {@link VnfResourceCustomization} object or null if none found
1807 public VnfResourceCustomization getVnfResourceCustomizationByVnfModelCustomizationNameAndModelVersionId (String modelCustomizationName, String modelVersionId) {
1809 long startTime = System.currentTimeMillis ();
1810 LOGGER.debug ("Catalog database - get VNF resource Customization with modelCustomizationName " + modelCustomizationName + " modelUUID " + modelVersionId);
1812 String hql = "SELECT vrc FROM VnfResourceCustomization as vrc WHERE vrc.vnfResourceModelUuid IN "
1813 + "(SELECT vr.modelUuid FROM VnfResource vr "
1814 + "WHERE vr.modelUuid = :modelVersionId)"
1815 + "AND vrc.modelInstanceName = :modelCustomizationName";
1817 Query query = getSession ().createQuery (hql);
1818 query.setParameter ("modelCustomizationName", modelCustomizationName);
1819 query.setParameter ("modelVersionId", modelVersionId);
1821 @SuppressWarnings("unchecked")
1822 List <VnfResourceCustomization> resultList = query.list ();
1824 if (resultList.isEmpty ()) {
1825 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully. VnfResourceCustomization not found", "CatalogDB", "getVnfResourceCustomizationByVnfModelCustomizationNameAndModelVersionId", null);
1829 resultList.sort(new MavenLikeVersioningComparator());
1830 Collections.reverse (resultList);
1832 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getVnfResourceCustomizationByVnfModelCustomizationNameAndModelVersionId", null);
1833 return resultList.get (0);
1836 public ArrayList<VfModuleCustomization> getAllVfModuleCustomizations(String vnfResourceCustomizationMCU) {
1837 LOGGER.debug ("Catalog database - getAllVfModuleCustomizations with vnfResourceCustomizationMCU " + vnfResourceCustomizationMCU);
1839 List<VnfResCustomToVfModuleCustom> matches = this.getVRCtoVFMC(vnfResourceCustomizationMCU, null);
1840 if (matches == null || matches.isEmpty()) {
1841 LOGGER.debug("Found no vf modules for " + vnfResourceCustomizationMCU);
1842 return new ArrayList<>();
1844 ArrayList<VfModuleCustomization> list = new ArrayList<>();
1845 for (VnfResCustomToVfModuleCustom v : matches) {
1846 String m = v.getVfModuleCustModelCustomizationUuid();
1847 LOGGER.debug("VfModule to match: " + m);
1848 VfModuleCustomization c = this.getVfModuleCustomizationByModelCustomizationId(m);
1852 LOGGER.debug("**UNABLE to find vfModule " + m);
1859 * Return the VnfResourceCustomization object identified by the given modelCustomizationUuid 1707
1860 * Note that the corresponding VnfResource Object will be put in the VnfResourceCustomization bean
1863 * @return VnfResourceCustomization or null if not found
1865 public VnfResource getVnfResourceByModelUuid(String modelUuid) {
1866 long startTime = System.currentTimeMillis();
1867 LOGGER.debug ("Catalog database - get VnfResource with modelUuid " + modelUuid);
1869 String hql = "FROM VnfResource WHERE modelUuid = :modelUuid";
1870 Query query = getSession().createQuery(hql);
1871 query.setParameter ("modelUuid", modelUuid);
1872 VnfResource vnfResource = null;
1874 vnfResource = (VnfResource) query.uniqueResult ();
1875 } catch (org.hibernate.NonUniqueResultException nure) {
1876 LOGGER.debug("Non Unique Result Exception - the Catalog Database does not match a unique Vnf_Resource row - data integrity error: modelUuid='" + modelUuid);
1877 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " non unique result for Vnf Resource modelUuid=" + modelUuid, "", "", MsoLogger.ErrorCode.DataError, "Non unique result for vnfResource modelUuid==" + modelUuid);
1879 } catch (org.hibernate.HibernateException he) {
1880 LOGGER.debug("Hibernate Exception - while searching for: VnfResource modelUuid='" + modelUuid + "' " + he.getMessage());
1881 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " Hibernate exception searching for vnfResource ModelUuid=" + modelUuid, "", "", MsoLogger.ErrorCode.DataError, "Hibernate exception searching for vnfResource modelUuid=" + modelUuid);
1883 } catch (Exception e) {
1884 LOGGER.debug("Generic Exception - while searching for: vnfResource ModelUuid='" + modelUuid + "'");
1885 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " Generic exception searching for vnfResource ModelUuid=" + modelUuid, "", "", MsoLogger.ErrorCode.DataError, "Generic exception searching for vnfResource modelUuid=" + modelUuid);
1888 if (vnfResource == null) {
1889 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "NotFound", "CatalogDB", "getVnfResourceByModelUuid", null);
1891 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getVnfResourceByModelUuid", null);
1896 public VnfResCustomToVfModuleCustom getVnfResCustomToVfModule(String vnfId, String vfId) {
1897 long startTime = System.currentTimeMillis();
1898 LOGGER.debug("Catalog database - getVnfResCustomToVfModule - vnfResourceCustModelCustUuid: " + vnfId + ", vfModuleCustModelCustomUuid=" + vfId);
1899 HashMap<String, String> parameters = new HashMap<>();
1900 parameters.put("vnfIdValue", vnfId);
1901 parameters.put("vfIdValue", vfId);
1902 VnfResCustomToVfModuleCustom vrctvmc = this.executeQuerySingleRow(
1903 "FROM VnfResCustomToVfModuleCustom where vnfResourceCustModelCustomizationUuid = :vnfIdValue and vfModuleCustModelCustomizationUuid = :vfIdValue", parameters, true);
1904 if (vrctvmc == null) {
1905 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "NotFound", "CatalogDB", "getVnfResCustomToVfModule", null);
1907 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getVnfResCustomToVfModule", null);
1912 public List<VfModule> getVfModulesForVnfResource(VnfResource vnfResource) {
1913 if (vnfResource == null)
1914 return Collections.EMPTY_LIST;
1915 String vnfResourceModelUuid = vnfResource.getModelUuid();
1917 LOGGER.debug("Catalog database - getVfModulesForVnfResource - vnfResource: " + vnfResource.toString());
1919 return this.getVfModulesForVnfResource(vnfResourceModelUuid);
1923 public List<VfModule> getVfModulesForVnfResource(String vnfResourceModelUuid) {
1924 long startTime = System.currentTimeMillis();
1925 LOGGER.debug("Catalog database - getVfModulesForVnfResource - vnfResourceModelUuid: " + vnfResourceModelUuid);
1926 Query query = getSession().createQuery("FROM VfModule where vnfResourceModelUUId = :vnfResourceModelUUId");
1927 query.setParameter("vnfResourceModelUUId", vnfResourceModelUuid);
1928 List<VfModule> resultList = null;
1930 resultList = query.list();
1931 if (resultList != null)
1932 LOGGER.debug("\tQuery found " + resultList.size() + " records.");
1934 LOGGER.debug("\tQuery found no records.");
1935 } catch (org.hibernate.HibernateException he) {
1936 LOGGER.debug("Hibernate Exception - getVfModulesForVnfResource - while searching for: vnfResourceModelUUId='" + vnfResourceModelUuid + " " + he.getMessage());
1937 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " Hibernate exception - getVfModulesForVnfResource - searching for vnfResourceModelUUId=" + vnfResourceModelUuid, "", "", MsoLogger.ErrorCode.DataError, "Hibernate exception searching for vnfResourceModelUUId=" + vnfResourceModelUuid);
1939 } catch (Exception e) {
1940 LOGGER.debug("Exception - getVfModulesForVnfResource - while searching for: vnfResourceModelUUId='" + vnfResourceModelUuid + " " + e.getMessage());
1941 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " Hibernate exception - getVfModulesForVnfResource - searching for vnfResourceModelUUId=" + vnfResourceModelUuid, "", "", MsoLogger.ErrorCode.DataError, "Hibernate exception searching for vnfResourceModelUUId=" + vnfResourceModelUuid);
1944 if (resultList == null) {
1945 resultList = new ArrayList<>();
1947 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getVfModulesForVnfResource", null);
1951 public Service getServiceByUuid (String serviceModelInvariantUuid) {
1953 long startTime = System.currentTimeMillis ();
1954 LOGGER.debug ("Catalog database - get service with ModelInvariantUuid " + serviceModelInvariantUuid);
1956 String hql = "FROM Service WHERE modelInvariantUUID = :serviceModelInvariantUuid";
1957 Query query = getSession ().createQuery (hql);
1958 query.setParameter ("serviceModelInvariantUuid", serviceModelInvariantUuid);
1960 Service service = null;
1962 service = (Service) query.uniqueResult ();
1963 } catch (org.hibernate.NonUniqueResultException nure) {
1964 LOGGER.debug("Non Unique Result Exception - the Catalog Database does not match a unique row - data integrity error: serviceModelInvariantUuid='" + serviceModelInvariantUuid + "'");
1965 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " non unique result for serviceModelInvariantUuid=" + serviceModelInvariantUuid, "", "", MsoLogger.ErrorCode.DataError, "Non unique result for serviceModelInvariantUuid=" + serviceModelInvariantUuid);
1967 } catch (org.hibernate.HibernateException he) {
1968 LOGGER.debug("Hibernate Exception - while searching for: serviceName='" + serviceModelInvariantUuid + "' " + he.getMessage());
1969 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " Hibernate exception searching for serviceModelInvariantUuid=" + serviceModelInvariantUuid, "", "", MsoLogger.ErrorCode.DataError, "Hibernate exception searching for serviceModelInvariantUuid=" + serviceModelInvariantUuid);
1971 } catch (Exception e) {
1972 LOGGER.debug("Generic Exception - while searching for: serviceModelInvariantUuid='" + serviceModelInvariantUuid + " " + e.getMessage());
1973 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " Generic exception searching for serviceModelInvariantUuid=" + serviceModelInvariantUuid, "", "", MsoLogger.ErrorCode.DataError, "Generic exception searching for serviceModelInvariantUuid=" + serviceModelInvariantUuid);
1976 if (service == null) {
1977 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "NotFound", "CatalogDB", "getService", null);
1979 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getService", null);
1985 public NetworkResource getNetworkResourceById(Integer id) {
1986 long startTime = System.currentTimeMillis ();
1987 LOGGER.debug ("Catalog database - getNetworkResource with id " + id);
1989 String hql = "FROM NetworkResource WHERE id = :id";
1990 Query query = getSession ().createQuery (hql);
1991 query.setParameter ("id", id);
1993 NetworkResource networkResource = null;
1995 networkResource = (NetworkResource) query.uniqueResult ();
1996 } catch (org.hibernate.NonUniqueResultException nure) {
1997 LOGGER.debug("Non Unique Result Exception - the Catalog Database does not match a unique row - data integrity error: NETWORK_RESOURCE.id='" + id + "'");
1998 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " non unique result for NETWORK_RESOURCE.id=" + id, "", "", MsoLogger.ErrorCode.DataError, "Non unique result for NETWORK_RESOURCE.id=" + id);
2000 } catch (org.hibernate.HibernateException he) {
2001 LOGGER.debug("Hibernate Exception - while searching for: NETWORK_RESOURCE.id='" + id + "' " + he.getMessage());
2002 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " Hibernate exception searching for NETWORK_RESOURCE.id=" + id, "", "", MsoLogger.ErrorCode.DataError, "Hibernate exception searching for NETWORK_RESOURCE.id=" + id);
2004 } catch (Exception e) {
2005 LOGGER.debug("Generic Exception - while searching for: NETWORK_RESOURCE.id='" + id + " " + e.getMessage());
2006 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " Generic exception searching for NETWORK_RESOURCE.id=" + id, "", "", MsoLogger.ErrorCode.DataError, "Generic exception searching for NETWORK_RESOURCE.id=" + id);
2010 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getNetworkResourceById", null);
2011 return networkResource;
2015 public NetworkResource getNetworkResourceById(String id) {
2016 long startTime = System.currentTimeMillis ();
2017 LOGGER.debug ("Catalog database - getNetworkResource with model_uuid " + id);
2019 String hql = "FROM NetworkResource WHERE modelUUID = :model_uuid";
2020 Query query = getSession ().createQuery (hql);
2021 query.setParameter ("model_uuid", id);
2023 List<NetworkResource> networkResources = null;
2025 networkResources = query.list ();
2026 } catch (org.hibernate.HibernateException he) {
2027 LOGGER.debug("Hibernate Exception - while searching for: NETWORK_RESOURCE.id='" + id + "' " + he.getMessage());
2028 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " Hibernate exception searching for NETWORK_RESOURCE.model_uuid=" + id, "", "", MsoLogger.ErrorCode.DataError, "Hibernate exception searching for NETWORK_RESOURCE.model_uuid=" + id);
2030 } catch (Exception e) {
2031 LOGGER.debug("Generic Exception - while searching for: NETWORK_RESOURCE.id='" + id + " " + e.getMessage());
2032 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " Generic exception searching for NETWORK_RESOURCE.model_uuid=" + id, "", "", MsoLogger.ErrorCode.DataError, "Generic exception searching for NETWORK_RESOURCE.model_uuid=" + id);
2036 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getNetworkResourceById", null);
2037 if (networkResources == null || networkResources.isEmpty())
2040 return networkResources.get(0);
2045 public static boolean isEmptyOrNull(String str) {
2048 if ("null".equals(str))
2055 public List<ServiceToResourceCustomization> getSTR(String serviceModelUuid, String resourceModelCustomizationUuid, String modelType) {
2056 LOGGER.debug("Catalog database: getSTR - smu=" + serviceModelUuid + ", rmcu=" + resourceModelCustomizationUuid + ", modelType = " + modelType);
2058 if (isEmptyOrNull(serviceModelUuid) && isEmptyOrNull(resourceModelCustomizationUuid) && isEmptyOrNull(modelType))
2061 StringBuilder hql = new StringBuilder("FROM ServiceToResourceCustomization WHERE ");
2062 boolean first = true;
2063 if (serviceModelUuid != null && !serviceModelUuid.equals("")) {
2064 hql.append("serviceModelUUID = :smu");
2067 if (resourceModelCustomizationUuid != null && !resourceModelCustomizationUuid.equals("")) {
2069 hql.append(" AND ");
2071 hql.append("resourceModelCustomizationUUID = :rmcu");
2074 if (modelType != null && !modelType.equals("")) {
2076 hql.append(" AND ");
2079 hql.append("modelType = :modelType");
2082 Query query = getSession().createQuery(hql.toString());
2083 if (hql.toString().contains(":smu"))
2084 query.setParameter("smu", serviceModelUuid);
2085 if (hql.toString().contains(":rmcu"))
2086 query.setParameter("rmcu", resourceModelCustomizationUuid);
2087 if (hql.toString().contains(":modelType"))
2088 query.setParameter("modelType", modelType);
2089 LOGGER.debug("query - " + hql.toString());
2091 @SuppressWarnings("unchecked")
2092 List<ServiceToResourceCustomization> resultList = query.list();
2093 if (resultList == null || resultList.isEmpty()) {
2094 LOGGER.debug("Found no matches to the query - " + hql.toString());
2095 return new ArrayList<>();
2100 public List<VnfResCustomToVfModuleCustom> getVRCtoVFMC (String vrc_mcu, String vfmc_mcu) {
2101 LOGGER.debug("Catalog database: getVRCtoVFMC - vrc_mcu=" + vrc_mcu + ", vfmc_mcu=" + vfmc_mcu);
2103 if (isEmptyOrNull(vrc_mcu) && isEmptyOrNull(vfmc_mcu))
2106 StringBuilder hql = new StringBuilder("FROM VnfResCustomToVfModuleCustom WHERE ");
2107 boolean first = true;
2108 if (vrc_mcu != null && !vrc_mcu.equals("")) {
2109 hql.append("vnfResourceCustModelCustomizationUuid = :vrc_mcu");
2112 if (vfmc_mcu != null && !vfmc_mcu.equals("")) {
2114 hql.append(" AND ");
2116 hql.append("vfModuleCustModelCustomizationUuid = :vfmc_mcu");
2119 Query query = getSession().createQuery(hql.toString());
2120 if (hql.toString().contains(":vrc_mcu"))
2121 query.setParameter("vrc_mcu", vrc_mcu);
2122 if (hql.toString().contains(":vfmc_mcu"))
2123 query.setParameter("vfmc_mcu", vfmc_mcu);
2124 @SuppressWarnings("unchecked")
2125 List<VnfResCustomToVfModuleCustom> resultList = query.list();
2126 if (resultList == null || resultList.isEmpty()) {
2127 LOGGER.debug("Found no matches to the query - " + hql.toString());
2128 return new ArrayList<>();
2133 @SuppressWarnings("unchecked")
2134 public List <TempNetworkHeatTemplateLookup> getTempNetworkHeatTemplateLookup (String networkResourceModelName) {
2136 long startTime = System.currentTimeMillis ();
2137 LOGGER.debug ("Catalog database - GetTempNetworkHeatTemplateLookup for Network Name " + networkResourceModelName);
2139 String hql = "FROM TempNetworkHeatTemplateLookup where networkResourceModelName = :networkResourceModelName";
2140 Query query = getSession ().createQuery (hql);
2141 query.setParameter ("networkResourceModelName", networkResourceModelName);
2143 List <TempNetworkHeatTemplateLookup> result = query.list ();
2144 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getTempNetworkHeatTemplateLookup", null);
2148 // 1702 API Spec - Query for all networks in a Service:
2149 public List<NetworkResourceCustomization> getAllNetworksByServiceModelUuid(String serviceModelUuid) {
2150 long startTime = System.currentTimeMillis();
2151 LOGGER.debug("Catalog database: getServiceNetworksByServiceModelUuid - " + serviceModelUuid);
2153 List<ServiceToResourceCustomization> strMappings = this.getSTR(serviceModelUuid, null, "network");
2154 if (strMappings == null || strMappings.isEmpty()) {
2155 LOGGER.debug("Found NO matches for NRC with ServiceModelUuid=" + serviceModelUuid);
2156 return new ArrayList<>();
2158 LOGGER.debug("Found " + strMappings.size() + " entries in ServiceToResourceCustomizations.network with smu=" + serviceModelUuid);
2160 ArrayList<NetworkResourceCustomization> masterList = new ArrayList<>();
2161 for (ServiceToResourceCustomization stn : strMappings) {
2162 String networkModelCustomizationUuid = stn.getResourceModelCustomizationUUID();
2163 LOGGER.debug("Now searching for NetworkResourceCustomization for " + networkModelCustomizationUuid);
2164 List<NetworkResourceCustomization> resultSet = this.getAllNetworksByNetworkModelCustomizationUuid(networkModelCustomizationUuid);
2165 masterList.addAll(resultSet);
2167 LOGGER.debug("Returning " + masterList.size() + " NRC records");
2168 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getAllNetworksByServiceModelUuid", null);
2171 public List<NetworkResourceCustomization> getAllNetworksByServiceModelInvariantUuid(String serviceModelInvariantUuid) {
2172 LOGGER.debug("Catalog database: getServiceNetworksByServiceModelInvariantUuid - " + serviceModelInvariantUuid);
2174 Query query = getSession().createQuery("FROM Service WHERE modelInvariantUUID = :serviceModelInvariantUuid");
2175 query.setParameter("serviceModelInvariantUuid", serviceModelInvariantUuid);
2176 @SuppressWarnings("unchecked")
2177 List<Service> serviceList = query.list();
2179 if (serviceList.isEmpty()) {
2180 LOGGER.debug("Could not find Service for " + serviceModelInvariantUuid);
2181 return new ArrayList<>();
2184 serviceList.sort(new MavenLikeVersioningComparator());
2185 Collections.reverse (serviceList);
2186 Service service = serviceList.get(0);
2188 String serviceNameVersionId = service.getModelUUID();
2189 LOGGER.debug("The highest version for the Service " + serviceModelInvariantUuid + " is " + serviceNameVersionId);
2191 // Service.serviceNameVersionId == ServiceToNetworks.serviceModelUuid
2192 return this.getAllNetworksByServiceModelUuid(serviceNameVersionId);
2194 public List<NetworkResourceCustomization> getAllNetworksByServiceModelInvariantUuid(String serviceModelInvariantUuid, String serviceModelVersion) {
2195 LOGGER.debug("Catalog database: getServiceNetworksByServiceModelInvariantUuid - " + serviceModelInvariantUuid + ", version=" + serviceModelVersion);
2197 Query query = getSession().createQuery(
2198 "FROM Service WHERE modelInvariantUUID = :serviceModelInvariantUuid and version = :serviceModelVersion");
2199 query.setParameter("serviceModelInvariantUuid", serviceModelInvariantUuid);
2200 query.setParameter("serviceModelVersion", serviceModelVersion);
2203 //can fix this later - no time - could do a unique query here - but this should work
2204 @SuppressWarnings("unchecked")
2205 List<Service> serviceList = query.list();
2207 if (serviceList.isEmpty()) {
2208 LOGGER.debug("No Service found with smu=" + serviceModelInvariantUuid + " and smv=" + serviceModelVersion);
2209 return new ArrayList<>();
2212 serviceList.sort(new MavenLikeVersioningComparator());
2213 Collections.reverse (serviceList);
2214 Service service = serviceList.get(0);
2216 String serviceNameVersionId = service.getModelUUID();
2218 // Service.serviceNameVersionId == ServiceToNetworks.serviceModelUuid
2219 return this.getAllNetworksByServiceModelUuid(serviceNameVersionId);
2222 public List<NetworkResourceCustomization> getAllNetworksByNetworkModelCustomizationUuid(String networkModelCustomizationUuid) {
2223 long startTime = System.currentTimeMillis();
2224 LOGGER.debug("Catalog database: getAllNetworksByNetworkModelCustomizationUuid - " + networkModelCustomizationUuid);
2226 //Query query = getSession().createQuery(hql.toString());
2227 //query.setParameter("networkModelCustomizationUuid", networkModelCustomizationUuid);
2228 //LOGGER.debug("QUERY: " + hql.toString() + ", networkModelCustomizationUuid=" + networkModelCustomizationUuid);
2230 //@SuppressWarnings("unchecked")
2231 //List<NetworkResourceCustomization> resultList = query.list();
2233 HashMap<String, String> params = new HashMap<>();
2234 params.put("networkModelCustomizationUuid", networkModelCustomizationUuid);
2236 List<NetworkResourceCustomization> resultList = this.executeQueryMultipleRows(
2237 "FROM NetworkResourceCustomization WHERE modelCustomizationUuid = :networkModelCustomizationUuid", params, true);
2239 if (resultList.isEmpty()) {
2240 LOGGER.debug("Unable to find an NMC with nmcu=" + networkModelCustomizationUuid);
2241 return new ArrayList<>();
2243 for (NetworkResourceCustomization nrc : resultList) {
2244 nrc.setNetworkResource(this.getNetworkResourceById(nrc.getNetworkResourceModelUuid()));
2247 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getAllNetworksByNetworkModelCustomizationUuid", null);
2251 public List<NetworkResourceCustomization> getAllNetworksByNetworkType(String networkType) {
2252 long startTime = System.currentTimeMillis();
2253 LOGGER.debug("Catalog database: getServiceNetworksByNetworkType - " + networkType);
2255 NetworkResource nr = this.getNetworkResource(networkType);
2257 return new ArrayList<>();
2259 String networkResourceId = nr.getModelUUID();
2261 LOGGER.debug("Now searching for NRC's with networkResourceId = " + networkResourceId);
2263 Query query = getSession().createQuery(
2264 "FROM NetworkResourceCustomization WHERE networkResourceModelUuid = :networkResourceId");
2265 query.setParameter("networkResourceId", networkResourceId);
2267 @SuppressWarnings("unchecked")
2268 List<NetworkResourceCustomization> resultList = query.list();
2270 if (resultList != null && ! resultList.isEmpty()) {
2271 LOGGER.debug("Found " + resultList.size() + " results");
2272 for (NetworkResourceCustomization nrc : resultList) {
2273 nrc.setNetworkType(networkType);
2274 nrc.setNetworkResource(nr);
2277 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getAllNetworksByNetworkType", null);
2281 public ArrayList<VfModuleCustomization> getAllVfmcForVrc(VnfResourceCustomization vrc) {
2282 LOGGER.debug("Catalog database: getAllVfmcForVrc - " + vrc.getModelCustomizationUuid());
2284 List<VnfResCustomToVfModuleCustom> vfmcs = this.getVRCtoVFMC(vrc.getModelCustomizationUuid(), null);
2285 if (vfmcs == null || vfmcs.isEmpty()) {
2286 return new ArrayList<>();
2288 ArrayList<VfModuleCustomization> vfModuleCusts = new ArrayList<>();
2289 for (VnfResCustomToVfModuleCustom vfmc : vfmcs) {
2290 VfModuleCustomization vfmcust = this.getVfModuleCustomizationByModelCustomizationId(vfmc.getVfModuleCustModelCustomizationUuid());
2291 if (vfmcust != null) {
2292 vfModuleCusts.add(vfmcust);
2295 return vfModuleCusts;
2298 //1702 API Spec cont'd - Query for all VnfResources in a Service:
2299 //1707 modified for db refactoring
2300 public List<VnfResourceCustomization> getAllVnfsByServiceModelUuid(String serviceModelUuid) {
2301 LOGGER.debug("Catalog database: getAllVnfsByServiceModelUuid - " + serviceModelUuid);
2303 Query query = getSession().createQuery("FROM Service WHERE modelUUID = :serviceModelUuid");
2304 query.setParameter("serviceModelUuid", serviceModelUuid);
2305 @SuppressWarnings("unchecked")
2306 List<Service> serviceList = query.list();
2308 if (serviceList.isEmpty()) {
2309 LOGGER.debug("Unable to find a service with modelUuid=" + serviceModelUuid);
2310 return new ArrayList<>();
2313 serviceList.sort(new MavenLikeVersioningComparator());
2314 Collections.reverse (serviceList);
2316 // Step 2 - Now query to get the related VnfResourceCustomizations
2318 List<ServiceToResourceCustomization> strcs = this.getSTR(serviceModelUuid, null, "vnf");
2320 if (strcs.isEmpty()) {
2321 LOGGER.debug("Unable to find any related vnfs to a service with modelUuid=" + serviceModelUuid);
2322 return new ArrayList<>();
2325 ArrayList<VnfResourceCustomization> allVrcs = new ArrayList<>();
2326 for (ServiceToResourceCustomization strc : strcs) {
2327 LOGGER.debug("Try to find VRC for mcu=" + strc.getResourceModelCustomizationUUID());
2328 VnfResourceCustomization vrc = this.getVnfResourceCustomizationByModelCustomizationUuid(strc.getResourceModelCustomizationUUID());
2335 public List<VnfResourceCustomization> getAllVnfsByServiceModelInvariantUuid(String serviceModelInvariantUuid) {
2336 LOGGER.debug("Catalog database: getAllVnfsByServiceModelInvariantUuid - " + serviceModelInvariantUuid);
2338 Query query = getSession().createQuery("FROM Service WHERE modelInvariantUUID = :serviceModelInvariantUuid");
2339 query.setParameter("serviceModelInvariantUuid", serviceModelInvariantUuid);
2340 @SuppressWarnings("unchecked")
2341 List<Service> resultList = query.list();
2343 if (resultList.isEmpty()) {
2344 return new ArrayList<>();
2346 resultList.sort(new MavenLikeVersioningComparator());
2347 Collections.reverse (resultList);
2348 Service service = resultList.get(0);
2349 //now just call the method that takes the version - the service object will have the highest version
2350 return this.getAllVnfsByServiceModelUuid(service.getModelUUID());
2352 public List<VnfResourceCustomization> getAllVnfsByServiceModelInvariantUuid(String serviceModelInvariantUuid, String serviceModelVersion) {
2353 long startTime = System.currentTimeMillis();
2354 LOGGER.debug("Catalog database: getAllVnfsByServiceModelInvariantUuid - " + serviceModelInvariantUuid + ", version=" + serviceModelVersion);
2356 Query query = getSession().createQuery(
2357 "FROM Service WHERE modelInvariantUUID = :serviceModelInvariantUuid and version = :serviceModelVersion");
2358 query.setParameter("serviceModelInvariantUuid", serviceModelInvariantUuid);
2359 query.setParameter("serviceModelVersion", serviceModelVersion);
2361 @SuppressWarnings("unchecked")
2362 List<Service> resultList = query.list();
2364 if (resultList.isEmpty()) {
2365 return new ArrayList<>();
2367 resultList.sort(new MavenLikeVersioningComparator());
2368 Collections.reverse (resultList);
2369 Service service = resultList.get(0);
2370 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getAllVnfsByServiceModelInvariantUuid", null);
2371 return this.getAllVnfsByServiceModelUuid(service.getModelUUID());
2374 public List<VnfResourceCustomization> getAllVnfsByServiceName(String serviceName, String serviceVersion) {
2375 LOGGER.debug("Catalog database: getAllVnfsByServiceName - " + serviceName + ", version=" + serviceVersion);
2376 if (serviceVersion == null || serviceVersion.equals("")) {
2377 return this.getAllVnfsByServiceName(serviceName);
2380 Query query = getSession().createQuery(
2381 "FROM Service WHERE modelName = :serviceName and version = :serviceVersion");
2382 query.setParameter("serviceName", serviceName);
2383 query.setParameter("serviceVersion", serviceVersion);
2385 @SuppressWarnings("unchecked")
2386 List<Service> resultList = query.list();
2388 if (resultList.isEmpty()) {
2389 return Collections.EMPTY_LIST;
2391 Service service = resultList.get(0);
2392 return this.getAllVnfsByServiceModelUuid(service.getModelUUID());
2394 public List<VnfResourceCustomization> getAllVnfsByServiceName(String serviceName) {
2395 LOGGER.debug("Catalog database: getAllVnfsByServiceName - " + serviceName);
2397 Query query = getSession().createQuery("FROM Service WHERE modelName = :serviceName");
2398 query.setParameter("serviceName", serviceName);
2400 @SuppressWarnings("unchecked")
2401 List<Service> resultList = query.list();
2403 if (resultList.isEmpty()) {
2404 return Collections.EMPTY_LIST;
2406 resultList.sort(new MavenLikeVersioningComparator());
2407 Collections.reverse (resultList);
2408 Service service = resultList.get(0);
2410 return this.getAllVnfsByServiceModelUuid(service.getModelUUID());
2413 public List<VnfResourceCustomization> getAllVnfsByVnfModelCustomizationUuid(String vnfModelCustomizationUuid) {
2414 long startTime = System.currentTimeMillis();
2415 LOGGER.debug("Catalog database: getAllVnfsByVnfModelCustomizationUuid - " + vnfModelCustomizationUuid);
2417 Query query1 = getSession().createQuery("FROM VnfResourceCustomization WHERE modelCustomizationUuid = :vrcmcu");
2418 query1.setParameter("vrcmcu", vnfModelCustomizationUuid);
2419 @SuppressWarnings("unchecked")
2420 List<VnfResourceCustomization> resultList1 = query1.list();
2422 if (resultList1.isEmpty()) {
2423 LOGGER.debug("Found no records matching " + vnfModelCustomizationUuid);
2424 return Collections.EMPTY_LIST;
2427 for (VnfResourceCustomization vrc : resultList1) {
2428 VnfResource vr = this.getVnfResourceByModelUuid(vrc.getVnfResourceModelUuid());
2429 vrc.setVnfResource(vr);
2430 vrc.setVfModuleCustomizations(this.getAllVfmcForVrc(vrc));
2433 LOGGER.debug("Returning " + resultList1.size() + " vnf modules");
2434 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getAllVnfsByVnfModelCustomizationUuid", null);
2438 //1702 API Spec cont'd - Query for all allotted resources in a Service
2440 public List<AllottedResourceCustomization> getAllAllottedResourcesByServiceModelUuid(String serviceModelUuid) {
2441 long startTime = System.currentTimeMillis();
2442 LOGGER.debug("Catalog database: getAllAllottedResourcesByServiceModelUuid - " + serviceModelUuid);
2444 List<ServiceToResourceCustomization> strcs = this.getSTR(serviceModelUuid, null, "allottedResource");
2445 if (strcs == null || strcs.isEmpty()) {
2446 LOGGER.debug("No AR entries found for " + serviceModelUuid);
2447 return new ArrayList<>();
2449 LOGGER.debug("Found " + strcs.size() + " entries in ServiceToResourceCustomizations with smu=" + serviceModelUuid + ", allottedResource");
2451 ArrayList<AllottedResourceCustomization> masterList = new ArrayList<>();
2452 for (ServiceToResourceCustomization star : strcs) {
2453 String arModelCustomizationUuid = star.getResourceModelCustomizationUUID();
2454 LOGGER.debug("Now searching for AllottedResourceCustomization for " + arModelCustomizationUuid);
2455 List<AllottedResourceCustomization> resultSet = this.getAllAllottedResourcesByArModelCustomizationUuid(arModelCustomizationUuid);
2456 masterList.addAll(resultSet);
2458 LOGGER.debug("Returning " + masterList.size() + " ARC records");
2459 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getAllAllottedResourcesByServiceModelUuid", null);
2463 public List<AllottedResourceCustomization> getAllAllottedResourcesByServiceModelInvariantUuid(String serviceModelInvariantUuid) {
2464 LOGGER.debug("Catalog database: getAllAllottedResourcesByServiceModelInvariantUuid - " + serviceModelInvariantUuid);
2466 Query query = getSession().createQuery("FROM Service WHERE modelInvariantUUID = :serviceModelInvariantUuid");
2467 query.setParameter("serviceModelInvariantUuid", serviceModelInvariantUuid);
2468 @SuppressWarnings("unchecked")
2469 List<Service> serviceList = query.list();
2471 if (serviceList.isEmpty()) {
2472 LOGGER.debug("Could not find Service for " + serviceModelInvariantUuid);
2473 return new ArrayList<>();
2476 serviceList.sort(new MavenLikeVersioningComparator());
2477 Collections.reverse (serviceList);
2478 Service service = serviceList.get(0);
2480 String serviceModelUuid = service.getModelUUID();
2481 LOGGER.debug("The highest version for the Service " + serviceModelInvariantUuid + " is " + serviceModelUuid);
2483 return this.getAllAllottedResourcesByServiceModelUuid(serviceModelUuid);
2486 public List<AllottedResourceCustomization> getAllAllottedResourcesByServiceModelInvariantUuid(String serviceModelInvariantUuid, String serviceModelVersion) {
2487 LOGGER.debug("Catalog database: getAllAllottedResourcesByServiceModelInvariantUuid - " + serviceModelInvariantUuid + ", version=" + serviceModelVersion);
2489 Query query = getSession().createQuery(
2490 "FROM Service WHERE modelInvariantUUID = :serviceModelInvariantUuid and version = :serviceModelVersion");
2491 query.setParameter("serviceModelInvariantUuid", serviceModelInvariantUuid);
2492 query.setParameter("serviceModelVersion", serviceModelVersion);
2494 @SuppressWarnings("unchecked")
2495 List<Service> serviceList = query.list();
2497 if (serviceList.isEmpty()) {
2498 LOGGER.debug("No Service found with smu=" + serviceModelInvariantUuid + " and smv=" + serviceModelVersion);
2499 return new ArrayList<>();
2502 serviceList.sort(new MavenLikeVersioningComparator());
2503 Collections.reverse (serviceList);
2504 Service service = serviceList.get(0);
2506 String serviceModelUuid = service.getModelUUID();
2508 return this.getAllAllottedResourcesByServiceModelUuid(serviceModelUuid);
2511 public List<AllottedResourceCustomization> getAllAllottedResourcesByArModelCustomizationUuid(String arModelCustomizationUuid) {
2512 long startTime = System.currentTimeMillis();
2513 LOGGER.debug("Catalog database: getAllAllottedResourcesByArModelCustomizationUuid - " + arModelCustomizationUuid);
2515 Query query = getSession().createQuery(
2516 "FROM AllottedResourceCustomization WHERE modelCustomizationUuid = :arModelCustomizationUuid");
2517 query.setParameter("arModelCustomizationUuid", arModelCustomizationUuid);
2519 @SuppressWarnings("unchecked")
2520 List<AllottedResourceCustomization> resultList = query.list();
2522 if (resultList.isEmpty()) {
2523 LOGGER.debug("No ARC found with arc_mcu=" + arModelCustomizationUuid);
2524 return new ArrayList<>();
2526 // There should only be one - but we'll handle if multiple
2527 for (AllottedResourceCustomization arc : resultList) {
2528 AllottedResource ar = this.getAllottedResourceByModelUuid(arc.getArModelUuid());
2529 arc.setAllottedResource(ar);
2532 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getAllAllottedResourcesByArModelCustomizationUuid", null);
2536 public AllottedResource getAllottedResourceByModelUuid(String arModelUuid) {
2537 long startTime = System.currentTimeMillis ();
2538 LOGGER.debug ("Catalog database - get Allotted Resource with modelUuid= " + arModelUuid);
2540 String hql = "FROM AllottedResource WHERE modelUuid = :arModelUuid";
2541 Query query = getSession ().createQuery (hql);
2542 query.setParameter ("arModelUuid", arModelUuid);
2544 @SuppressWarnings("unchecked")
2545 List <AllottedResource> resultList = query.list ();
2547 // See if something came back. Name is unique, so
2548 if (resultList.isEmpty ()) {
2549 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully. AllottedResource not found", "CatalogDB", "getAllottedResourceByModelUuid", null);
2552 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getAllottedResourceByModelUuid", null);
2553 return resultList.get (0);
2557 //1702 API Spec cont'd - Query for all resources in a Service:
2558 public ServiceMacroHolder getAllResourcesByServiceModelUuid(String serviceModelUuid) {
2559 long startTime = System.currentTimeMillis();
2560 LOGGER.debug("Catalog database: getAllResourcesByServiceModelUuid - " + serviceModelUuid);
2562 StringBuilder hql = new StringBuilder("FROM Service WHERE modelUUID = :serviceModelUuid");
2563 Query query = getSession().createQuery(hql.toString());
2564 query.setParameter("serviceModelUuid", serviceModelUuid);
2565 LOGGER.debug("Query: " + hql.toString() + ", smu=" + serviceModelUuid);
2566 @SuppressWarnings("unchecked")
2567 List<Service> serviceList = query.list();
2569 if (serviceList.isEmpty()) {
2570 LOGGER.debug("Unable to find a Service with serviceModelUuid=" + serviceModelUuid);
2571 return new ServiceMacroHolder();
2574 serviceList.sort(new MavenLikeVersioningComparator());
2575 Collections.reverse (serviceList);
2576 Service service = serviceList.get(0);
2578 ServiceMacroHolder smh = new ServiceMacroHolder(service);
2579 ArrayList<NetworkResourceCustomization> nrcList = (ArrayList<NetworkResourceCustomization>) this.getAllNetworksByServiceModelUuid(serviceModelUuid);
2580 smh.setNetworkResourceCustomization(nrcList);
2581 ArrayList<AllottedResourceCustomization> arcList = (ArrayList<AllottedResourceCustomization>) this.getAllAllottedResourcesByServiceModelUuid(serviceModelUuid);
2582 smh.setAllottedResourceCustomization(arcList);
2583 ArrayList<VnfResourceCustomization> vnfList = (ArrayList<VnfResourceCustomization>) this.getAllVnfsByServiceModelUuid(serviceModelUuid);
2584 smh.setVnfResourceCustomizations(vnfList);
2586 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getAllResourcesByServiceModelUuid", null);
2589 public ServiceMacroHolder getAllResourcesByServiceModelInvariantUuid(String serviceModelInvariantUuid) {
2590 long startTime = System.currentTimeMillis();
2591 LOGGER.debug("Catalog database: getAllResourcesByServiceModelInvariantUuid - " + serviceModelInvariantUuid);
2593 Query query = getSession().createQuery("FROM Service WHERE modelInvariantUUID = :serviceModelInvariantUuid");
2594 query.setParameter("serviceModelInvariantUuid", serviceModelInvariantUuid);
2595 @SuppressWarnings("unchecked")
2596 List<Service> serviceList = query.list();
2598 if (serviceList.isEmpty()) {
2599 LOGGER.debug("Unable to find a Service with serviceModelInvariantUuid=" + serviceModelInvariantUuid);
2600 return new ServiceMacroHolder();
2603 serviceList.sort(new MavenLikeVersioningComparator());
2604 Collections.reverse (serviceList);
2605 Service service = serviceList.get(0);
2607 ServiceMacroHolder smh = new ServiceMacroHolder(service);
2608 ArrayList<NetworkResourceCustomization> nrcList = (ArrayList<NetworkResourceCustomization>) this.getAllNetworksByServiceModelUuid(service.getModelUUID());
2609 smh.setNetworkResourceCustomization(nrcList);
2610 ArrayList<AllottedResourceCustomization> arcList = (ArrayList<AllottedResourceCustomization>) this.getAllAllottedResourcesByServiceModelUuid(service.getModelUUID());
2611 smh.setAllottedResourceCustomization(arcList);
2612 ArrayList<VnfResourceCustomization> vnfList = (ArrayList<VnfResourceCustomization>) this.getAllVnfsByServiceModelUuid(service.getModelUUID());
2613 smh.setVnfResourceCustomizations(vnfList);
2615 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getAllResourcesByServiceModelInvariantUuid", null);
2619 public ServiceMacroHolder getAllResourcesByServiceModelInvariantUuid(String serviceModelInvariantUuid, String serviceModelVersion) {
2620 long startTime = System.currentTimeMillis();
2621 LOGGER.debug("Catalog database: getAllResourcesByServiceModelInvariantUuid - " + serviceModelInvariantUuid + ", version=" + serviceModelVersion);
2623 Query query = getSession().createQuery(
2624 "FROM Service WHERE modelInvariantUUID = :serviceModelInvariantUuid and version = :serviceModelVersion");
2625 query.setParameter("serviceModelInvariantUuid", serviceModelInvariantUuid);
2626 query.setParameter("serviceModelVersion", serviceModelVersion);
2627 //TODO make this a unique query
2628 @SuppressWarnings("unchecked")
2629 List<Service> serviceList = query.list();
2631 if (serviceList.isEmpty()) {
2632 LOGGER.debug("Unable to find a Service with serviceModelInvariantUuid=" + serviceModelInvariantUuid + " and serviceModelVersion=" + serviceModelVersion);
2633 return new ServiceMacroHolder();
2636 serviceList.sort(new MavenLikeVersioningComparator());
2637 Collections.reverse (serviceList);
2638 Service service = serviceList.get(0);
2640 ServiceMacroHolder smh = new ServiceMacroHolder(service);
2641 ArrayList<NetworkResourceCustomization> nrcList = (ArrayList<NetworkResourceCustomization>) this.getAllNetworksByServiceModelUuid(service.getModelUUID());
2642 smh.setNetworkResourceCustomization(nrcList);
2643 ArrayList<AllottedResourceCustomization> arcList = (ArrayList<AllottedResourceCustomization>) this.getAllAllottedResourcesByServiceModelUuid(service.getModelUUID());
2644 smh.setAllottedResourceCustomization(arcList);
2645 ArrayList<VnfResourceCustomization> vnfList = (ArrayList<VnfResourceCustomization>) this.getAllVnfsByServiceModelUuid(service.getModelUUID());
2646 smh.setVnfResourceCustomizations(vnfList);
2648 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getAllResourcesByServiceModelUuid with version", null);
2652 // 1707 New API queries
2653 public NetworkResourceCustomization getSingleNetworkByModelCustomizationUuid(String modelCustomizationUuid) {
2654 LOGGER.debug("Catalog database; getSingleNetworkByModelCustomizationUuid - " + modelCustomizationUuid);
2655 List<NetworkResourceCustomization> resultList = this.getAllNetworksByNetworkModelCustomizationUuid(modelCustomizationUuid);
2656 if (resultList == null || resultList.isEmpty()) {
2659 return resultList.get(0);
2661 public AllottedResourceCustomization getSingleAllottedResourceByModelCustomizationUuid(String modelCustomizationUuid) {
2662 LOGGER.debug("Catalog database; getSingleAllottedResourceByModelCustomizationUuid - " + modelCustomizationUuid);
2663 List<AllottedResourceCustomization> resultList = this.getAllAllottedResourcesByArModelCustomizationUuid(modelCustomizationUuid);
2664 if (resultList == null || resultList.isEmpty()) {
2667 return resultList.get(0);
2670 public VnfResource getSingleVnfResourceByModelCustomizationUuid(String modelCustomizationUuid) {
2672 long startTime = System.currentTimeMillis();
2673 LOGGER.debug("Catalog database; getSingleVnfResourceByModelCustomizationUuid - " + modelCustomizationUuid);
2674 List<VnfResource> resultList = this.getAllVnfsByVnfModelCustomizationUuid(modelCustomizationUuid);
2675 if (resultList == null || resultList.size() < 1) {
2678 return resultList.get(0);
2683 private void populateNetworkResourceType(List<NetworkResourceCustomization> resultList) {
2684 HashMap<String, NetworkResource> networkResources = new HashMap<>();
2686 for (NetworkResourceCustomization nrc : resultList) {
2687 String network_id = nrc.getNetworkResourceModelUuid();
2688 if (network_id == null) {
2689 nrc.setNetworkResource(null);
2690 nrc.setNetworkType("UNKNOWN_NETWORK_ID_NULL");
2693 if (networkResources.containsKey(network_id)) {
2694 nrc.setNetworkResource(networkResources.get(network_id));
2695 nrc.setNetworkType(networkResources.get(network_id).getModelName());
2697 NetworkResource nr = this.getNetworkResourceById(network_id);
2699 nrc.setNetworkType("INVALID_NETWORK_TYPE_ID_NOT_FOUND");
2701 nrc.setNetworkType(nr.getModelName());
2702 nrc.setNetworkResource(nr);
2703 networkResources.put(network_id, nr);
2710 * Return a VNF recipe that matches a given VNF_TYPE, VF_MODULE_MODEL_NAME, and ACTION
2711 * first query VF_MODULE table by type, and then use the ID to query
2712 * VNF_RECIPE by VF_MODULE_ID and ACTION
2715 * @parm vfModuleModelName
2717 * @return VnfRecipe object or null if none found
2719 public VnfRecipe getVfModuleRecipe (String vnfType, String vfModuleModelName, String action) {
2720 String vfModuleType = vnfType + "::" + vfModuleModelName;
2722 long startTime = System.currentTimeMillis ();
2723 LOGGER.debug ("Catalog database - get VF MODULE with type " + vfModuleType);
2725 Query query = getSession ().createQuery ("FROM VfModule WHERE type = :type ");
2726 query.setParameter (TYPE, vfModuleType);
2728 @SuppressWarnings("unchecked")
2729 List <VfModule> resultList = query.list ();
2731 if (resultList.isEmpty ()) {
2732 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully. VF Module Entry not found", "CatalogDB", "getVfModuleRecipe", null);
2736 resultList.sort(new MavenLikeVersioningComparator());
2737 Collections.reverse (resultList);
2739 VfModule vfMod = resultList.get(0);
2741 String vfModuleId = vfMod.getModelUUID();
2743 LOGGER.debug ("Catalog database - get VNF recipe with vf module id " + vfModuleId
2747 Query query1 = getSession ().createQuery ("FROM VnfRecipe WHERE vfModuleId = :vfModuleId AND action = :action ");
2748 query1.setParameter (VF_MODULE_MODEL_UUID, vfModuleId);
2749 query1.setParameter (ACTION, action);
2751 @SuppressWarnings("unchecked")
2752 List <VnfRecipe> resultList1 = query1.list ();
2754 if (resultList1.isEmpty ()) {
2755 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully. VNF recipe not found", "CatalogDB", "getVfModuleRecipe", null);
2759 resultList1.sort(new MavenLikeVersioningComparator());
2760 Collections.reverse (resultList1);
2762 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully. VNF recipe found", "CatalogDB", "getVfModuleRecipe", null);
2763 return resultList1.get (0);
2767 * Return a VNF Module List that matches a given VNF_TYPE, VF_MODULE_MODEL_NAME,
2768 * ASDC_SERVICE_MODEL_VERSION, MODEL_VERSION, and ACTION
2770 * @param vfModuleType
2771 * @parm modelCustomizationUuid
2772 * @param asdcServiceModelVersion
2773 * @param modelVersion
2775 * @return VfModule list
2777 public List<VfModule> getVfModule (String vfModuleType, String modelCustomizationUuid, String asdcServiceModelVersion, String modelVersion, String action) {
2780 if(modelCustomizationUuid != null){
2781 hql = new StringBuilder ("FROM VfModule WHERE modelCustomizationUuid = :modelCustomizationUuid AND version = :version");
2783 LOGGER.debug ("Catalog database - get VF MODULE with type " + vfModuleType + ", asdcServiceModelVersion " + asdcServiceModelVersion + ", modelVersion " + modelVersion);
2785 query = getSession ().createQuery (hql.toString ());
2786 query.setParameter ("modelCustomizationUuid", modelCustomizationUuid);
2787 query.setParameter ("version", asdcServiceModelVersion);
2789 hql = new StringBuilder ("FROM VfModule WHERE type = :type AND version = :version AND modelVersion = :modelVersion");
2791 LOGGER.debug ("Catalog database - get VF MODULE with type " + vfModuleType + ", asdcServiceModelVersion " + asdcServiceModelVersion + ", modelVersion " + modelVersion);
2793 query = getSession ().createQuery (hql.toString ());
2794 query.setParameter (TYPE, vfModuleType);
2795 query.setParameter ("version", asdcServiceModelVersion);
2796 query.setParameter ("modelVersion", modelVersion);
2799 @SuppressWarnings("unchecked")
2800 List <VfModule> resultList = query.list ();
2806 * Return a VNF COMPONENTSrecipe that matches a given VNF_TYPE, VF_MODULE_MODEL_NAME,
2807 * MODEL_CUSTOMIZATION_UUID, ASDC_SERVICE_MODEL_VERSION, MODEL_VERSION, and ACTION
2808 * first query VF_MODULE table by type, and then use the ID to query
2809 * VNF_COMPONENTS_RECIPE by VF_MODULE_ID and ACTION
2812 * @parm vfModuleModelName
2814 * @return VnfRecipe object or null if none found
2816 public VnfComponentsRecipe getVnfComponentsRecipe (String vnfType, String vfModuleModelName, String modelCustomizationUuid, String asdcServiceModelVersion, String modelVersion, String action) {
2817 String vfModuleType = vnfType + "::" + vfModuleModelName;
2818 long startTime = System.currentTimeMillis ();
2819 List <VfModule> resultList = getVfModule(vfModuleType, modelCustomizationUuid, asdcServiceModelVersion, modelVersion, action);
2821 if (resultList.isEmpty ()) {
2822 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully. VF Module Entry not found", "CatalogDB", "getVnfComponentsRecipe", null);
2826 resultList.sort(new MavenLikeVersioningComparator());
2827 Collections.reverse (resultList);
2829 VfModule vfMod = resultList.get(0);
2831 String vfModuleId = vfMod.getModelUUID();
2833 LOGGER.debug ("Catalog database - get Vnf Components recipe with vf module id " + vfModuleId
2837 Query query1 = getSession ().createQuery (
2838 "FROM VnfComponentsRecipe WHERE vfModuleId = :vfModuleId AND action = :action ");
2839 query1.setParameter (VF_MODULE_MODEL_UUID, vfModuleId);
2840 query1.setParameter (ACTION, action);
2842 @SuppressWarnings("unchecked")
2843 List <VnfComponentsRecipe> resultList1 = query1.list ();
2845 if (resultList1.isEmpty ()) {
2846 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully. VNF recipe not found", "CatalogDB", "getVnfComponentsRecipe", null);
2850 resultList1.sort(new MavenLikeVersioningComparator());
2851 Collections.reverse (resultList1);
2853 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully. VNF recipe found", "CatalogDB", "getVnfComponentsRecipe", null);
2854 if (resultList1.size() > 1 && (!resultList1. get (0).getOrchestrationUri().equals(resultList1.get (1).getOrchestrationUri ()))) {
2855 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully. Different ORCHESTRATION URIs found for same VERSION and ID. No result returned.", "CatalogDB", "getVnfComponentsRecipe", null);
2858 return resultList1.get (0);
2862 * Return a VNF COMPONENTSrecipe that matches a given VNF_TYPE, VF_MODULE_MODEL_NAME,
2863 * ASDC_SERVICE_MODEL_VERSION, MODEL_VERSION, and ACTION
2864 * first query VF_MODULE table by type, and then use the ID to query
2865 * VNF_COMPONENTS_RECIPE by VF_MODULE_ID and ACTION
2868 * @parm vfModuleModelName
2870 * @return VnfRecipe object or null if none found
2872 public VnfComponentsRecipe getVnfComponentsRecipeByVfModule(List <VfModule> resultList, String action) {
2873 long startTime = System.currentTimeMillis ();
2875 if (resultList.isEmpty ()) {
2876 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully. VF Module Entry not found", "CatalogDB", "getVnfComponentsRecipe", null);
2880 resultList.sort(new MavenLikeVersioningComparator());
2881 Collections.reverse (resultList);
2883 VfModule vfMod = resultList.get(0);
2885 String vfModuleId = vfMod.getModelName();
2887 LOGGER.debug ("Catalog database - get Vnf Components recipe with vf module id " + vfModuleId
2891 Query query1 = getSession ().createQuery (
2892 "FROM VnfComponentsRecipe WHERE vfModuleId = :vfModuleId AND action = :action ");
2893 query1.setParameter (VF_MODULE_MODEL_UUID, vfModuleId);
2894 query1.setParameter (ACTION, action);
2896 @SuppressWarnings("unchecked")
2897 List <VnfComponentsRecipe> resultList1 = query1.list ();
2899 if (resultList1.isEmpty ()) {
2900 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully. VNF recipe not found", "CatalogDB", "getVnfComponentsRecipe", null);
2904 resultList1.sort(new MavenLikeVersioningComparator());
2905 Collections.reverse (resultList1);
2907 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully. VNF recipe found", "CatalogDB", "getVnfComponentsRecipe", null);
2908 if (resultList1.size() > 1 && (!resultList1. get (0).getOrchestrationUri().equals(resultList1.get (1).getOrchestrationUri ()))) {
2909 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully. Different ORCHESTRATION URIs found for same VERSION and ID. No result returned.", "CatalogDB", "getVnfComponentsRecipe", null);
2912 return resultList1.get (0);
2917 * Return all VNF Resources in the Catalog DB
2919 * @return A list of VnfResource objects
2921 @SuppressWarnings("unchecked")
2922 public List <VnfResource> getAllVnfResources () {
2924 long startTime = System.currentTimeMillis ();
2925 LOGGER.debug ("Catalog database - get all VNF resources");
2927 String hql = "FROM VnfResource";
2928 Query query = getSession ().createQuery (hql);
2930 List <VnfResource> result = query.list ();
2931 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getAllVnfResources", null);
2936 * Return VNF Resources in the Catalog DB that match a given VNF role
2938 * @return A list of VnfResource objects
2940 @SuppressWarnings("unchecked")
2941 @Deprecated // vnfRole is no longer in VnfResource
2942 public List <VnfResource> getVnfResourcesByRole (String vnfRole) {
2944 long startTime = System.currentTimeMillis ();
2945 LOGGER.debug ("Catalog database - get all VNF resources for role " + vnfRole);
2947 String hql = "FROM VnfResource WHERE vnfRole = :vnfRole";
2948 Query query = getSession ().createQuery (hql);
2949 query.setParameter ("vnfRole", vnfRole);
2951 List <VnfResource> resources = query.list ();
2952 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getVnfResourcesByRole", null);
2957 * Return VNF Resources in the Catalog DB that match a given VNF role
2959 * @return A list of VnfResource objects
2961 @SuppressWarnings("unchecked")
2962 public List<VnfResourceCustomization> getVnfResourceCustomizationsByRole(String vnfRole) {
2963 long startTime = System.currentTimeMillis ();
2964 LOGGER.debug ("Catalog database - get all VNF resource customizations for role " + vnfRole);
2966 String hql = "FROM VnfResourceCustomization WHERE nfRole = :vnfRole";
2967 Query query = getSession ().createQuery (hql);
2968 query.setParameter ("vnfRole", vnfRole);
2970 List <VnfResourceCustomization> resources = query.list ();
2971 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getVnfResourceCustomizationsByRole", null);
2976 * Return all Network Resources in the Catalog DB
2978 * @return A list of NetworkResource objects
2980 @SuppressWarnings("unchecked")
2981 public List <NetworkResource> getAllNetworkResources () {
2983 long startTime = System.currentTimeMillis ();
2984 LOGGER.debug ("Catalog database - get all network resources");
2986 String hql = "FROM NetworkResource";
2987 Query query = getSession ().createQuery (hql);
2989 List <NetworkResource> result = query.list ();
2990 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getAllNetworkResources", null);
2994 @SuppressWarnings("unchecked")
2995 public List<NetworkResourceCustomization> getAllNetworkResourceCustomizations() {
2996 long startTime = System.currentTimeMillis ();
2997 LOGGER.debug ("Catalog database - get all network resource customizations");
2999 String hql = "FROM NetworkResourceCustomization";
3000 Query query = getSession ().createQuery (hql);
3002 List <NetworkResourceCustomization> result = query.list ();
3003 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getAllNetworkResourceCustomizations", null);
3008 * Return all VF Modules in the Catalog DB
3010 * @return A list of VfModule objects
3012 @SuppressWarnings("unchecked")
3013 public List <VfModule> getAllVfModules () {
3015 long startTime = System.currentTimeMillis ();
3016 LOGGER.debug ("Catalog database - get all vf modules");
3018 String hql = "FROM VfModule";
3019 Query query = getSession ().createQuery (hql);
3021 List <VfModule> result = query.list ();
3022 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getAllVfModules", null);
3026 @SuppressWarnings("unchecked")
3027 public List <VfModuleCustomization> getAllVfModuleCustomizations () {
3029 long startTime = System.currentTimeMillis ();
3030 LOGGER.debug ("Catalog database - get all vf module customizations");
3032 String hql = "FROM VfModuleCustomization";
3033 Query query = getSession ().createQuery (hql);
3035 List <VfModuleCustomization> result = query.list ();
3036 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getAllVfModuleCustomizations", null);
3042 * Return all HeatEnvironment in the Catalog DB
3044 * @return A list of HeatEnvironment objects
3046 @SuppressWarnings("unchecked")
3047 public List <HeatEnvironment> getAllHeatEnvironment () {
3049 long startTime = System.currentTimeMillis ();
3050 LOGGER.debug ("Catalog database - get all Heat environments");
3052 String hql = "FROM HeatEnvironment";
3053 Query query = getSession ().createQuery (hql);
3055 List <HeatEnvironment> result = query.list ();
3056 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getAllHeatEnvironment", null);
3061 * Fetch the Environment by Environment ID - 1510
3063 @Deprecated // no longer in heat envt table
3064 public HeatEnvironment getHeatEnvironment (int id) {
3066 long startTime = System.currentTimeMillis ();
3067 LOGGER.debug ("Catalog database - get Heat environment with id " + id);
3069 String hql = "FROM HeatEnvironment WHERE id = :idValue";
3071 LOGGER.debug ("getHeatEnvironment called with id=" + id);
3073 Query query = getSession ().createQuery (hql);
3074 query.setParameter ("idValue", id);
3076 @SuppressWarnings("unchecked")
3077 List <HeatEnvironment> resultList = query.list ();
3079 // See if something came back.
3080 if (resultList.isEmpty ()) {
3081 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully. Heat environment not found", "CatalogDB", "getHeatEnvironment", null);
3084 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getHeatEnvironment", null);
3085 return resultList.get (0);
3089 * Fetch the nested templates - 1510
3093 public Map <String, Object> getNestedTemplates (int templateId) {
3094 Map <String, Object> nestedTemplates;
3095 long startTime = System.currentTimeMillis ();
3096 LOGGER.debug ("Catalog database - getNestedTemplates called with templateId " + templateId);
3098 String hql = "FROM HeatNestedTemplate where parent_template_id = :parentIdValue";
3100 Query query = getSession ().createQuery (hql);
3101 query.setParameter ("parentIdValue", templateId);
3103 @SuppressWarnings("unchecked")
3104 List <HeatNestedTemplate> resultList = query.list ();
3105 // If nothing comes back, there are no nested templates
3106 if (resultList.isEmpty ()) {
3107 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully. No nestedTemplate found", "CatalogDB", "getNestedTemplates", null);
3108 LOGGER.debug ("No nestedTemplates found for templateId=" + templateId + ", " + hql);
3111 // Now, for each entry in NESTED_HEAT_TEMPLATES, we need to grab the template body from HEAT_TEMPLATE
3112 nestedTemplates = new HashMap <> ();
3113 for (HeatNestedTemplate hnt : resultList) {
3114 LOGGER.debug ("Querying for " + hnt);
3115 HeatTemplate ht = this.getHeatTemplate (hnt.getChildTemplateId ());
3117 LOGGER.debug ("No template found matching childTemplateId=" + hnt.getChildTemplateId ());
3120 String providerResourceFile = hnt.getProviderResourceFile ();
3121 String heatTemplateBody = ht.getTemplateBody ();
3122 if (providerResourceFile != null && heatTemplateBody != null) {
3123 nestedTemplates.put (providerResourceFile, heatTemplateBody);
3125 LOGGER.debug ("providerResourceFile or heatTemplateBody were null - do not add to HashMap!");
3128 // Make sure we're not returning an empty map - if so, just return null
3129 if (nestedTemplates.isEmpty ()) {
3130 LOGGER.debug ("nestedTemplates is empty - just return null");
3131 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully. Nested template is empty", "CatalogDB", "getNestedTemplate", null);
3134 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getNestedTemplate", null);
3135 return nestedTemplates;
3138 * Return a Map<String, Object> for returning the child templates and their contents
3140 * @param parentHeatTemplateId
3141 * @return Map<String,Object> or null if none found
3143 public Map <String, Object> getNestedTemplates (String parentHeatTemplateId) {
3144 Map <String, Object> nestedTemplates;
3145 long startTime = System.currentTimeMillis ();
3146 LOGGER.debug ("Catalog database - getNestedTemplates called with parentTemplateId " + parentHeatTemplateId);
3148 String hql = "FROM HeatNestedTemplate where parentTemplateId = :parentHeatTemplateId";
3150 Query query = getSession ().createQuery (hql);
3151 query.setParameter ("parentHeatTemplateId", parentHeatTemplateId);
3153 @SuppressWarnings("unchecked")
3154 List <HeatNestedTemplate> resultList = query.list ();
3155 // If nothing comes back, there are no nested templates
3156 if (resultList.isEmpty ()) {
3157 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully. No nestedTemplate found", "CatalogDB", "getNestedTemplates", null);
3158 LOGGER.debug ("No nestedTemplates found for templateId=" + parentHeatTemplateId + ", " + hql);
3161 // Now, for each entry in NESTED_HEAT_TEMPLATES, we need to grab the template body from HEAT_TEMPLATE
3162 nestedTemplates = new HashMap <> ();
3163 for (HeatNestedTemplate hnt : resultList) {
3164 LOGGER.debug ("Querying for " + hnt);
3165 HeatTemplate ht = this.getHeatTemplateByArtifactUuid (hnt.getChildTemplateId ());
3167 LOGGER.debug ("No template found matching childTemplateId=" + hnt.getChildTemplateId ());
3170 String providerResourceFile = hnt.getProviderResourceFile ();
3171 String heatTemplateBody = ht.getTemplateBody ();
3172 if (providerResourceFile != null && heatTemplateBody != null) {
3173 nestedTemplates.put (providerResourceFile, heatTemplateBody);
3175 LOGGER.debug ("providerResourceFile or heatTemplateBody were null - do not add to HashMap!");
3178 // Make sure we're not returning an empty map - if so, just return null
3179 if (nestedTemplates.isEmpty ()) {
3180 LOGGER.debug ("nestedTemplates is empty - just return null");
3181 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully. Nested template is empty", "CatalogDB", "getNestedTemplate", null);
3184 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getNestedTemplate", null);
3185 return nestedTemplates;
3189 * Fetch any files in the HEAT_FILES table 1510
3192 public Map <String, HeatFiles> getHeatFiles (int vnfResourceId) {
3193 Map <String, HeatFiles> heatFiles;
3195 long startTime = System.currentTimeMillis ();
3196 LOGGER.debug ("Catalog database - getHeatFiles called with vnfResourceId " + vnfResourceId);
3197 String hql = "FROM HeatFiles where vnf_resource_id = :vnfResourceIdValue";
3199 Query query = getSession ().createQuery (hql);
3200 query.setParameter ("vnfResourceIdValue", vnfResourceId);
3202 @SuppressWarnings("unchecked")
3203 List <HeatFiles> resultList = query.list ();
3204 // If nothing comes back, there are no heat files
3205 if (resultList.isEmpty ()) {
3206 LOGGER.debug ("No heatFiles found for vnfResourceId=" + vnfResourceId);
3207 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully. No heat files", "CatalogDB", "getHeatFiles", null);
3210 // Now, we just need to return a HashMap (key=fileName, object=fileBody)
3211 heatFiles = new HashMap <> ();
3212 for (HeatFiles hf : resultList) {
3213 LOGGER.debug ("Adding " + hf.getFileName () + "->" + hf.getFileBody ());
3214 heatFiles.put (hf.getFileName (), hf);
3216 // Make sure we're not returning an empty map - if so, just return null
3217 if (heatFiles.isEmpty ()) {
3218 LOGGER.debug ("heatFiles is empty - just return null");
3219 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully. Heat files is empty", "CatalogDB", "getHeatFiles", null);
3222 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getHeatFiles", null);
3226 // New 1607 - with modularization, use new table to determine which HEAT_FILES entries to attach
3228 public Map <String, HeatFiles> getHeatFilesForVfModule(int vfModuleId) {
3230 Map <String, HeatFiles> heatFiles = null;
3232 long startTime = System.currentTimeMillis ();
3233 LOGGER.debug ("Catalog database - getHeatFilesForVfModule called with vfModuleId " + vfModuleId);
3234 String hql = "FROM VfModuleToHeatFiles where vf_module_id = :vfModuleIdValue";
3236 Query query = getSession ().createQuery (hql);
3237 query.setParameter ("vfModuleIdValue", vfModuleId);
3239 List<VfModuleToHeatFiles> mapList = query.list();
3240 if (mapList.isEmpty()) {
3241 LOGGER.debug ("No heatFiles found for vfModuleId=" + vfModuleId);
3242 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully. No heatfiles found for vfModule", "CatalogDB", "getHeatFilesForVfModule", null);
3245 //Now the fun part - we have a list of the heat files we need to get - could clean this up with a join
3246 heatFiles = new HashMap<String, HeatFiles>();
3247 for (VfModuleToHeatFiles vmthf : mapList) {
3248 int heatFilesId = vmthf.getHeatFilesId();
3249 hql = "FROM HeatFiles where id = :id_value";
3250 query = getSession().createQuery(hql);
3251 query.setParameter("id_value", heatFilesId);
3252 List<HeatFiles> fileList = query.list();
3253 if (fileList.isEmpty()) {
3254 // Should this throw an exception??
3255 LOGGER.debug("Unable to find a HEAT_FILES entry at " + heatFilesId);
3256 String errorString = "_ERROR|" + heatFilesId;
3257 // The receiving code needs to know to throw an exception for this - or ignore it.
3258 heatFiles.put(errorString, null);
3260 // Should only ever have 1 result - add it to our Map
3261 LOGGER.debug("Retrieved " + fileList.size() + " heat file entry at " + heatFilesId);
3262 for (HeatFiles hf : fileList) {
3263 LOGGER.debug("Adding " + hf.getFileName() + "->" + hf.getFileBody());
3264 heatFiles.put(hf.getFileName(), hf);
3268 if (heatFiles.isEmpty()) {
3269 LOGGER.debug ("heatFiles is empty - just return null");
3270 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully. HeatFiles is empty", "CatalogDB", "getHeatFilesForVfModule", null);
3273 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getHeatFilesForVfModule", null);
3280 * Return a VfModuleToHeatFiles object
3282 * @param vfModuleModelUuid, heatFilesArtifactUuid
3283 * @return VfModuleToHeatFiles or null if none found
3285 public VfModuleToHeatFiles getVfModuleToHeatFilesEntry(String vfModuleModelUuid, String heatFilesArtifactUuid) {
3287 LOGGER.debug ("Catalog database - getVfModuleToHeatFilesEntry with vfModuleModelUuid " + vfModuleModelUuid + ", heatFilesArtifactUuid=" + heatFilesArtifactUuid);
3288 String hql = "FROM VfModuleToHeatFiles where vfModuleModelUuid = :vfModuleModelUuidValue and heatFilesArtifactUuid = :heatFilesArtifactUuidValue";
3290 HashMap<String, String> parameters = new HashMap<>();
3291 parameters.put("vfModuleModelUuidValue", vfModuleModelUuid);
3292 parameters.put("heatFilesArtifactUuidValue", heatFilesArtifactUuid);
3294 VfModuleToHeatFiles vmthf = null;
3297 vmthf = this.executeQuerySingleRow(hql, parameters, true);
3298 } catch (Exception e) {
3306 * Return a ServiceToResourceCustomization object
3308 * @param serviceModelUuid
3309 * @param resourceModelCustomizationUuid
3311 * @return VfModuleToHeatFiles or null if none found
3313 public ServiceToResourceCustomization getServiceToResourceCustomization(String serviceModelUuid, String resourceModelCustomizationUuid, String modelType) {
3315 LOGGER.debug ("Catalog database - getServiceToResourceCustomization with serviceModelUuid=" + serviceModelUuid + ", resourceModelCustomizationUuid=" + resourceModelCustomizationUuid + ", modelType=" + modelType);
3316 String hql = "FROM ServiceToResourceCustomization where serviceModelUUID = :serviceModelUuidValue and resourceModelCustomizationUUID = :resourceModelCustomizationUuidValue and modelType = :modelTypeValue ";
3318 HashMap<String, String> parameters = new HashMap<>();
3319 parameters.put("serviceModelUuidValue", serviceModelUuid);
3320 parameters.put("resourceModelCustomizationUuidValue", resourceModelCustomizationUuid);
3321 parameters.put("modelTypeValue", modelType);
3323 ServiceToResourceCustomization strc = null;
3326 strc = this.executeQuerySingleRow(hql, parameters, true);
3327 } catch (Exception e) {
3334 * Return a Map<String, HeatFiles> for returning the heat files associated with a vfModule 1707
3336 * @param vfModuleModelUuid
3337 * @return Map<String,Object> or null if none found
3339 public Map <String, HeatFiles> getHeatFilesForVfModule(String vfModuleModelUuid) {
3340 Map <String, HeatFiles> heatFiles;
3342 long startTime = System.currentTimeMillis ();
3343 LOGGER.debug ("Catalog database - getHeatFilesForVfModule called with vfModuleModelUuid " + vfModuleModelUuid);
3344 String hql = "FROM VfModuleToHeatFiles where vfModuleModelUuid = :vfModuleModelUuidValue";
3346 Query query = getSession ().createQuery (hql);
3347 query.setParameter ("vfModuleModelUuidValue", vfModuleModelUuid);
3349 @SuppressWarnings("unchecked")
3350 List<VfModuleToHeatFiles> mapList = query.list();
3351 if (mapList.isEmpty()) {
3352 LOGGER.debug ("No heatFiles found for vfModuleModelUuid=" + vfModuleModelUuid);
3353 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully. No heatfiles found for vfModule", "CatalogDB", "getHeatFilesForVfModule", null);
3356 //Now the fun part - we have a list of the heat files we need to get - could clean this up with a join
3357 heatFiles = new HashMap<>();
3358 for (VfModuleToHeatFiles vmthf : mapList) {
3359 String heatFilesUuid = vmthf.getHeatFilesArtifactUuid();
3360 hql = "FROM HeatFiles where artifactUuid = :heatFilesUuidValue";
3361 query = getSession().createQuery(hql);
3362 query.setParameter("heatFilesUuidValue", heatFilesUuid);
3363 @SuppressWarnings("unchecked")
3364 List<HeatFiles> fileList = query.list();
3365 if (fileList.isEmpty()) {
3366 // Should this throw an exception??
3367 LOGGER.debug("Unable to find a HEAT_FILES entry at " + heatFilesUuid);
3368 String errorString = "_ERROR|" + heatFilesUuid;
3369 // The receiving code needs to know to throw an exception for this - or ignore it.
3370 heatFiles.put(errorString, null);
3372 // Should only ever have 1 result - add it to our Map
3373 LOGGER.debug("Retrieved " + fileList.size() + " heat file entry at " + heatFilesUuid);
3374 for (HeatFiles hf : fileList) {
3375 LOGGER.debug("Adding " + hf.getFileName() + "->" + hf.getFileBody());
3376 heatFiles.put(hf.getFileName(), hf);
3380 if (heatFiles.isEmpty()) {
3381 LOGGER.debug ("heatFiles is empty - just return null");
3382 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully. HeatFiles is empty", "CatalogDB", "getHeatFilesForVfModule", null);
3385 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getHeatFilesForVfModule", null);
3390 * Get the heat template object based on asdc attributes
3392 * @param templateName The template name, generally the yaml filename. "example.yaml"
3393 * @param version The version as specified by ASDC. "1.1"
3394 * @param asdcResourceName The ASDC resource name provided in the ASDC artifact
3396 * @return The HeatTemplate
3398 @Deprecated // asdcResourceName is no longer in heatTeamplate
3399 public HeatTemplate getHeatTemplate (String templateName, String version, String asdcResourceName) {
3401 long startTime = System.currentTimeMillis ();
3402 LOGGER.debug ("Catalog database - getHeatTemplate with name " + templateName
3405 + " and ASDC resource name "
3406 + asdcResourceName);
3408 String hql = "FROM HeatTemplate WHERE templateName = :template_name AND version = :version AND asdcResourceName = :asdcResourceName";
3409 Query query = getSession ().createQuery (hql);
3410 query.setParameter ("template_name", templateName);
3411 query.setParameter ("version", version);
3412 query.setParameter ("asdcResourceName", asdcResourceName);
3414 @SuppressWarnings("unchecked")
3415 List <HeatTemplate> resultList = query.list ();
3417 // See if something came back.
3418 if (resultList.isEmpty ()) {
3419 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully. Heat template not found", "CatalogDB", "getHeatTemplate", null);
3422 // Name + Version is unique, so should only be one element
3423 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getHeatTemplate", null);
3424 return resultList.get (0);
3429 * Save the Heat Template
3431 * @param heat The heat template
3432 * @param paramSet The list of heat template parameters
3434 public void saveHeatTemplate (HeatTemplate heat, Set <HeatTemplateParam> paramSet) {
3436 long startTime = System.currentTimeMillis ();
3437 LOGGER.debug ("Catalog database - save Heat Template with name " + heat.getTemplateName() + ", artifactUUID=" + heat.getArtifactUuid());
3439 heat.setParameters(null);
3442 HeatTemplate heatTemp = this.getHeatTemplateByArtifactUuidRegularQuery(heat.getArtifactUuid());
3444 if (heatTemp == null) {
3445 this.getSession ().save (heat);
3447 if (paramSet != null) {
3448 StringBuilder sb = new StringBuilder("Parameters: ");
3449 for (HeatTemplateParam param : paramSet) {
3450 param.setHeatTemplateArtifactUuid(heat.getArtifactUuid());
3451 sb.append(param.getParamName()).append(", ");
3453 LOGGER.debug(sb.toString());
3454 heat.setParameters (paramSet);
3456 Session session = this.getSession();
3457 if (!(session.isConnected() && session.isOpen())) {
3458 LOGGER.debug("Initial session is not connected or open - get another");
3459 session = this.getSession();
3462 } catch (HibernateException he1) {
3463 LOGGER.debug("Hibernate Exception encountered on first attempt at save(heat) - try again..." + he1.getMessage(), he1);
3465 Session session = this.getSession();
3467 } catch (HibernateException he2) {
3468 LOGGER.debug("Hibernate Exception encountered on second attempt at save(heat)" + he2.getMessage());
3469 LOGGER.debug(Arrays.toString(he2.getStackTrace()));
3471 } catch (Exception e2) {
3472 LOGGER.debug("General Exception encountered on second attempt at save(heat)..." + e2.getMessage(),e2);
3473 LOGGER.debug(Arrays.toString(e2.getStackTrace()));
3477 } catch (Exception e1) {
3478 LOGGER.debug("General Exception encountered on first attempt at save(heat) - try again..." + e1.getMessage(), e1);
3479 LOGGER.debug(Arrays.toString(e1.getStackTrace()));
3481 Session session = this.getSession();
3483 } catch (HibernateException he2) {
3484 LOGGER.debug("General Exception encountered on second attempt at save(heat)" + he2.getMessage(), he2);
3485 LOGGER.debug(Arrays.toString(he2.getStackTrace()));
3487 } catch (Exception e2) {
3488 LOGGER.debug("General Exception encountered on second attempt at save(heat)..." + e2.getMessage(), e2);
3489 LOGGER.debug(Arrays.toString(e2.getStackTrace()));
3496 heat.setArtifactUuid(heatTemp.getArtifactUuid());
3499 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "saveHeatTemplate", null);
3504 * Retrieves a Heat environment from DB based on its unique key.
3506 * @param name the environment artifact name
3507 * @param version the environment resource version
3508 * @param asdcResourceName the environment resource name
3509 * @return the heat environment from DB or null if not found
3512 public HeatEnvironment getHeatEnvironment (String name, String version, String asdcResourceName) {
3513 long startTime = System.currentTimeMillis ();
3514 LOGGER.debug ("Catalog database - get Heat environment with name " + name
3517 + " and ASDC resource name "
3518 + asdcResourceName);
3520 String hql = "FROM HeatEnvironment WHERE name=:name AND version=:version AND asdcResourceName=:asdcResourceName";
3521 Query query = getSession ().createQuery (hql);
3522 query.setParameter ("name", name);
3523 query.setParameter ("version", version);
3524 query.setParameter ("asdcResourceName", asdcResourceName);
3525 HeatEnvironment env = null;
3527 env = (HeatEnvironment) query.uniqueResult ();
3528 } catch (org.hibernate.NonUniqueResultException nure) {
3529 LOGGER.debug("Non Unique Result Exception - the Catalog Database does not match a unique row - data integrity error: envName='" + name + "', version='" + version + "' and asdcResourceName=" + asdcResourceName, nure);
3530 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " non unique result for envName=" + name + " and version=" + version + " and asdcResourceName=" + asdcResourceName, "", "", MsoLogger.ErrorCode.DataError, "non unique result for envName=" + name);
3532 } catch (org.hibernate.HibernateException he) {
3533 LOGGER.debug("Hibernate Exception - while searching for: envName='" + name + "', asdc_service_model_version='" + version + "' and asdcResourceName=" + asdcResourceName, he);
3534 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " Hibernate exception searching for envName=" + name + " and version=" + version + " and asdcResourceName=" + asdcResourceName, "", "", MsoLogger.ErrorCode.DataError, "Hibernate exception searching for envName=" + name);
3536 } catch (Exception e) {
3537 LOGGER.debug("Generic Exception - while searching for: envName='" + name + "', asdc_service_model_version='" + version + "' and asdcResourceName=" + asdcResourceName, e);
3538 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " Generic exception searching for envName=" + name + " and version=" + version + " and asdcResourceName=" + asdcResourceName, "", "", MsoLogger.ErrorCode.DataError, "Generic exception searching for envName=" + name);
3542 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "NotFound", "CatalogDB", "getHeatTemplate", null);
3544 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getHeatTemplate", null);
3550 * Retrieves a Heat environment from DB based on its unique key. 1707
3552 * @param artifactUuid the environment artifact name
3553 * @param version the environment resource version
3554 * @return the heat environment from DB or null if not found
3556 public HeatEnvironment getHeatEnvironment (String artifactUuid, String version) {
3557 long startTime = System.currentTimeMillis ();
3558 LOGGER.debug ("Catalog database - get Heat environment with uuid " + artifactUuid
3562 String hql = "FROM HeatEnvironment WHERE artifactUuid=:artifactUuid AND version=:version";
3563 Query query = getSession ().createQuery (hql);
3564 query.setParameter ("artifactUuid", artifactUuid);
3565 query.setParameter ("version", version);
3566 HeatEnvironment env = null;
3568 env = (HeatEnvironment) query.uniqueResult ();
3569 } catch (org.hibernate.NonUniqueResultException nure) {
3570 LOGGER.debug("Non Unique Result Exception - the Catalog Database does not match a unique row - data integrity error: envName='" + artifactUuid + "', version='" + version);
3571 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " non unique result for artifactUUID=" + artifactUuid + " and version=" + version, "", "", MsoLogger.ErrorCode.DataError, "non unique result for ArtifactUUID=" + artifactUuid);
3573 } catch (org.hibernate.HibernateException he) {
3574 LOGGER.debug("Hibernate Exception - while searching for: artifactUUID='" + artifactUuid + "', asdc_service_model_version='" + version + " " + he.getMessage() );
3575 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " Hibernate exception searching for artifactUUID=" + artifactUuid + " and version=" + version , "", "", MsoLogger.ErrorCode.DataError, "Hibernate exception searching for artifactUUID=" + artifactUuid);
3577 } catch (Exception e) {
3578 LOGGER.debug("Generic Exception - while searching for: artifactUUID='" + artifactUuid + "', asdc_service_model_version='" + version + " " + e.getMessage());
3579 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " Generic exception searching for artifactUUID=" + artifactUuid + " and version=" + version, "", "", MsoLogger.ErrorCode.DataError, "Generic exception searching for artifactUUID=" + artifactUuid);
3583 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "NotFound", "CatalogDB", "getHeatTemplate", null);
3585 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getHeatTemplate", null);
3591 * Save the HeatEnvironment
3593 * @param env The Environment
3595 public void saveHeatEnvironment (HeatEnvironment env) {
3596 long startTime = System.currentTimeMillis ();
3597 LOGGER.debug ("Catalog database - save Heat environment with name "
3598 + env.getEnvironment() + " and ArtifactUUID " + env.getArtifactUuid());
3600 HeatEnvironment dbEnv = getHeatEnvironment (env.getArtifactUuid(), env.getVersion ());
3601 if (dbEnv == null) {
3603 this.getSession ().save (env);
3606 env.setArtifactUuid(dbEnv.getArtifactUuid());
3610 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "saveHeatTemplate", null);
3615 * Save the heatTemplate
3617 * @param heat The heat template
3619 public void saveHeatTemplate (HeatTemplate heat) {
3620 long startTime = System.currentTimeMillis ();
3621 LOGGER.debug ("Catalog database - save Heat template with name " + heat.getTemplateName ());
3623 this.getSession ().update (heat);
3625 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "saveHeatTemplate", null);
3629 public void saveHeatFile (HeatFiles heatFile) {
3630 long startTime = System.currentTimeMillis ();
3631 LOGGER.debug ("Catalog database - save Heat file with name " + heatFile.getFileName ());
3633 this.getSession ().save (heatFile);
3635 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "saveHeatFile", null);
3639 public void saveVnfRecipe (VnfRecipe vnfRecipe) {
3640 long startTime = System.currentTimeMillis ();
3641 LOGGER.debug ("Catalog database - save VNF recipe with VNF type " + vnfRecipe.getVnfType ());
3643 this.getSession ().save (vnfRecipe);
3645 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "saveVnfRecipe", null);
3649 public void saveVnfComponentsRecipe (VnfComponentsRecipe vnfComponentsRecipe) {
3650 long startTime = System.currentTimeMillis ();
3651 LOGGER.debug ("Catalog database - save VNF Component recipe with VNF type " + vnfComponentsRecipe.getVnfType ());
3653 this.getSession ().save (vnfComponentsRecipe);
3655 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "saveVnfComponentsRecipe", null);
3660 public void saveOrUpdateVnfResource (VnfResource vnfResource) {
3661 long startTime = System.currentTimeMillis ();
3662 LOGGER.debug ("Catalog database - save VNF Resource with VNF type " + vnfResource.getModelName());
3665 VnfResource existing = this.getVnfResourceByModelUuid(vnfResource.getModelUuid());
3666 if (existing == null) {
3667 LOGGER.debug("No existing entry found - attempting to save...");
3668 this.getSession ().save (vnfResource);
3670 LOGGER.debug("Existing vnf resource found!");
3674 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "saveOrUpdateVnfResource", null);
3678 public boolean saveVnfResourceCustomization (VnfResourceCustomization vnfResourceCustomization) {
3679 long startTime = System.currentTimeMillis ();
3680 LOGGER.debug ("Catalog database - save VNF Resource Customization with Name " + vnfResourceCustomization.getModelInstanceName());
3682 LOGGER.debug(vnfResourceCustomization.toString());
3683 } catch (Exception e) {
3684 LOGGER.debug("Unable to print VRC " + e.getMessage(), e);
3687 // Check if NetworkResourceCustomzation record already exists. If so, skip saving it.
3688 // List<NetworkResource> networkResourceList = getAllNetworksByNetworkModelCustomizationUuid(networkResourceCustomization.getModelCustomizationUuid());
3689 // Do any matching customization records exist?
3690 // if(networkResourceList.size() == 0){
3692 // networkResourceCustomization.setNetworkResourceModelUuid(networkResource.getModelUuid());
3693 // this.getSession().flush();
3694 // this.getSession().clear();
3696 VnfResourceCustomization existing = this.getVnfResourceCustomizationByModelCustomizationUuid(vnfResourceCustomization.getModelCustomizationUuid());
3698 if (existing == null) {
3699 LOGGER.debug("No existing entry found...attempting to save...");
3700 this.getSession ().save (vnfResourceCustomization);
3704 LOGGER.debug("Existing VRC entry found\n" + existing.toString());
3705 } catch (Exception e) {
3706 LOGGER.debug("Unable to print VRC2 " + e.getMessage(), e);
3712 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "saveVnfResourceCustomization", null);
3716 public void saveAllottedResourceCustomization (AllottedResourceCustomization resourceCustomization) {
3717 long startTime = System.currentTimeMillis ();
3718 LOGGER.debug ("Catalog database - save Allotted Resource with Name " + resourceCustomization.getModelInstanceName());
3720 List<AllottedResourceCustomization> allottedResourcesList = getAllAllottedResourcesByArModelCustomizationUuid(resourceCustomization.getModelCustomizationUuid());
3722 if(allottedResourcesList.isEmpty()){
3723 this.getSession ().save(resourceCustomization);
3727 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "saveOrUpdateAllottedResourceCustomization", null);
3731 public void saveAllottedResource (AllottedResource allottedResource) {
3732 long startTime = System.currentTimeMillis ();
3733 LOGGER.debug ("Catalog database - save Allotted Resource with Name " + allottedResource.getModelName());
3735 AllottedResource existing = this.getAllottedResourceByModelUuid(allottedResource.getModelUuid());
3736 if (existing == null) {
3737 this.getSession ().save (allottedResource);
3739 LOGGER.debug("Found existing allottedResource with this modelUuid - no need to save");
3743 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "saveOrUpdateAllottedResourceCustomization", null);
3747 public void saveNetworkResource (NetworkResource networkResource) throws RecordNotFoundException {
3748 long startTime = System.currentTimeMillis ();
3749 LOGGER.debug ("Catalog database - save Network Resource with Network Name " + networkResource.getModelName());
3751 // Check if NetworkResourceCustomzation record already exists. If so, skip saving it.
3752 // List<NetworkResource> networkResourceList = getAllNetworksByNetworkModelCustomizationUuid(networkResourceCustomization.getModelCustomizationUuid());
3753 // Do any matching customization records exist?
3754 if(getNetworkResourceByModelUuid(networkResource.getModelUUID()) == null){
3755 this.getSession ().save(networkResource);
3760 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "saveNetworkResourceCustomization", null);
3764 public void saveToscaCsar (ToscaCsar toscaCsar) throws RecordNotFoundException {
3767 long startTime = System.currentTimeMillis ();
3768 LOGGER.debug ("Catalog database - save Tosca Csar with Name " + toscaCsar.getName());
3771 if(getToscaCsar(toscaCsar.getArtifactChecksum()) == null){
3772 this.getSession ().save (toscaCsar);
3774 LOGGER.debug("Temporarily disabling saveToscaCsar pending further investigation 2017-06-02");
3777 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "saveToscaCsar", null);
3783 * Return the newest version of a specific Tosca CSAR Record resource (queried by Name).
3785 * @param artifactChecksum
3786 * @return ToscaCsar object or null if none found
3788 public ToscaCsar getToscaCsar (String artifactChecksum) {
3790 long startTime = System.currentTimeMillis ();
3791 LOGGER.debug ("Catalog database - get Tosca CSAR record with artifactChecksum " + artifactChecksum);
3793 String hql = "FROM ToscaCsar WHERE artifactChecksum = :artifactChecksum";
3794 Query query = getSession ().createQuery (hql);
3795 query.setParameter ("artifactChecksum", artifactChecksum);
3797 @SuppressWarnings("unchecked")
3798 List <ToscaCsar> resultList = query.list ();
3800 // See if something came back. Name is unique, so
3801 if (resultList.isEmpty ()) {
3802 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully. Tosca Csar not found", "CatalogDB", "getToscaCsar", null);
3806 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getToscaCsar", null);
3807 return resultList.get (0);
3811 * Return a specific Tosca CSAR Record resource (queried by atrifact uuid).
3813 * @param toscaCsarArtifactUUID the artifact uuid of the tosca csar
3814 * @return ToscaCsar object or null if none found
3816 public ToscaCsar getToscaCsarByUUID(String toscaCsarArtifactUUID){
3817 long startTime = System.currentTimeMillis ();
3818 LOGGER.debug ("Catalog database - get Tosca CSAR record with artifactUUID " + toscaCsarArtifactUUID);
3820 String hql = "FROM ToscaCsar WHERE artifactUUID = :toscaCsarArtifactUUID";
3821 Query query = getSession ().createQuery (hql);
3822 query.setParameter ("toscaCsarArtifactUUID", toscaCsarArtifactUUID);
3824 @SuppressWarnings("unchecked")
3825 List <ToscaCsar> resultList = query.list ();
3827 // See if something came back. Name is unique, so
3828 if (resultList.isEmpty ()) {
3829 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully. Tosca Csar not found", "CatalogDB", "getToscaCsarByUUID", null);
3833 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getToscaCsarByUUID", null);
3834 return resultList.get (0);
3838 * Return a specific Tosca CSAR Record resource (queried by service model uuid).
3841 * @param serviceModelUUID the service model uuid
3842 * @return ToscaCsar object or null if none found
3843 * @since ONAP Beijing Release
3845 public ToscaCsar getToscaCsarByServiceModelUUID(String serviceModelUUID){
3846 long startTime = System.currentTimeMillis ();
3847 LOGGER.debug ("Catalog database - get Tosca CSAR record with serviceModelUUID " + serviceModelUUID);
3848 Service service = getServiceByModelUUID(serviceModelUUID);
3849 if(null == service){
3850 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Service not found", "CatalogDB", "getToscaCsarByServiceModelUUID", null);
3853 ToscaCsar csar = getToscaCsarByUUID(service.getToscaCsarArtifactUUID());
3855 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Tosca csar of the service not found", "CatalogDB", "getToscaCsarByServiceModelUUID", null);
3858 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getToscaCsarByServiceModelUUID", null);
3862 public void saveTempNetworkHeatTemplateLookup (TempNetworkHeatTemplateLookup tempNetworkHeatTemplateLookup) {
3863 long startTime = System.currentTimeMillis ();
3864 LOGGER.debug ("Catalog database - save TempNetworkHeatTemplateLookup with Network Model Name " + tempNetworkHeatTemplateLookup.getNetworkResourceModelName() +
3865 " and Heat Template Artifact UUID " + tempNetworkHeatTemplateLookup.getHeatTemplateArtifactUuid());
3867 this.getSession ().save (tempNetworkHeatTemplateLookup);
3870 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "saveTempNetworkHeatTemplateLookup", null);
3874 public void saveVfModuleToHeatFiles (VfModuleToHeatFiles vfModuleToHeatFiles) {
3875 long startTime = System.currentTimeMillis ();
3876 LOGGER.debug ("Catalog database - save VfModuleToHeatFiles with VF Module UUID " + vfModuleToHeatFiles.getVfModuleModelUuid() +
3877 " and Heat Files Artifact UUID " + vfModuleToHeatFiles.getHeatFilesArtifactUuid());
3880 this.getSession ().save (vfModuleToHeatFiles);
3883 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "saveVFModuleToHeatFiles", null);
3887 public void saveVnfResourceToVfModuleCustomization(VnfResourceCustomization vnfResourceCustomizationUUID, VfModuleCustomization vfModuleCustomizationUUID) throws RecordNotFoundException {
3888 long startTime = System.currentTimeMillis ();
3889 VnfResCustomToVfModuleCustom vnfResCustomToVfModuleCustom = new VnfResCustomToVfModuleCustom();
3891 if(vnfResourceCustomizationUUID != null && vfModuleCustomizationUUID != null){
3892 vnfResCustomToVfModuleCustom.setVnfResourceCustModelCustomizationUuid(vnfResourceCustomizationUUID.getModelCustomizationUuid());
3893 vnfResCustomToVfModuleCustom.setVfModuleCustModelCustomizationUuid(vfModuleCustomizationUUID.getModelCustomizationUuid());
3894 String vnfId = vnfResourceCustomizationUUID.getModelCustomizationUuid();
3895 String vfId = vfModuleCustomizationUUID.getModelCustomizationUuid();
3896 LOGGER.debug ("Catalog database - save VnfResCustomToVfModuleCustom with vnf=" + vnfId + ", vf=" + vfId);
3898 VnfResCustomToVfModuleCustom existing = this.getVnfResCustomToVfModule(vnfId, vfId);
3899 if (existing == null) {
3900 LOGGER.debug("No existing entry found - will now try to save");
3901 this.getSession ().save (vnfResCustomToVfModuleCustom);
3903 LOGGER.debug("Existing entry already found - no save needed");
3906 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "saveVnfResourceToVfModuleCustomization", null);
3911 public void saveNetworkResourceCustomization (NetworkResourceCustomization networkResourceCustomization) throws RecordNotFoundException {
3912 long startTime = System.currentTimeMillis ();
3913 LOGGER.debug ("Catalog database - save Network Resource Customization with Network Name " + networkResourceCustomization.getModelInstanceName());
3915 // Check if NetworkResourceCustomzation record already exists. If so, skip saving it.
3916 List<NetworkResourceCustomization> networkResourceCustomizationList = getAllNetworksByNetworkModelCustomizationUuid(networkResourceCustomization.getModelCustomizationUuid());
3917 // Do any matching customization records exist?
3918 if(networkResourceCustomizationList.isEmpty()){
3920 // Retreive the record from the Network_Resource table associated to the Customization record based on ModelName
3921 // ?? is it modelInstanceName with 1707?
3922 NetworkResource networkResource = getNetworkResource(networkResourceCustomization.getModelInstanceName());
3924 if(networkResource == null){
3925 throw new RecordNotFoundException("No record found in NETWORK_RESOURCE table for model name " + networkResourceCustomization.getModelInstanceName());
3928 networkResourceCustomization.setNetworkResourceModelUuid(networkResource.getModelUUID());
3930 this.getSession ().save(networkResourceCustomization);
3935 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "saveNetworkResourceCustomization", null);
3939 @Deprecated // table is gone - mapped to ServiceToResource
3940 public void saveServiceToNetworks (ServiceToNetworks serviceToNetworks) {
3941 long startTime = System.currentTimeMillis ();
3942 LOGGER.debug ("Catalog database - save to ServiceToNetworks table with NetworkModelCustomizationUUID of " + serviceToNetworks.getNetworkModelCustomizationUuid() + " and ServiceModelUUID of " + serviceToNetworks.getServiceModelUuid());
3944 this.getSession ().save(serviceToNetworks);
3947 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "saveNetworkResourceCustomization", null);
3951 public void saveServiceToResourceCustomization(ServiceToResourceCustomization serviceToResource) {
3952 long startTime = System.currentTimeMillis ();
3953 LOGGER.debug ("Catalog database - save to ServiceToResourceCustomization table with ServiceModelUuid of " + serviceToResource.getServiceModelUUID() + ", ResourceModelUUID of " + serviceToResource.getResourceModelCustomizationUUID() + " and model_type=" + serviceToResource.getModelType());
3954 ServiceToResourceCustomization strc = this.getServiceToResourceCustomization(serviceToResource.getServiceModelUUID(), serviceToResource.getResourceModelCustomizationUUID(), serviceToResource.getModelType());
3957 LOGGER.debug("**This ServiceToResourceCustomization record already exists - no need to save");
3959 this.getSession ().save(serviceToResource);
3962 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "saveServiceToResourceCustomization", null);
3966 @Deprecated // table is gone - mapped to ServiceToResourceCustomization
3967 public void saveServiceToAllottedResources (ServiceToAllottedResources serviceToAllottedResources) {
3968 long startTime = System.currentTimeMillis ();
3969 LOGGER.debug ("Catalog database - save to serviceToAllottedResources table with ARModelCustomizationUUID of " + serviceToAllottedResources.getArModelCustomizationUuid() + " and ServiceModelUUID of " + serviceToAllottedResources.getServiceModelUuid());
3971 this.getSession ().save(serviceToAllottedResources);
3974 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "saveServiceToAllottedResources", null);
3978 public void saveService (Service service) {
3979 long startTime = System.currentTimeMillis ();
3980 LOGGER.debug ("Catalog database - save Service with ServiceName/Version/serviceUUID(SERVICE_NAME_VERSION_ID)" + service.getModelName()+"/"+service.getVersion()+"/"+service.getModelUUID());
3982 Service serviceInvariantDB = null;
3983 // Retrieve existing service record by nameVersionId
3984 Service serviceDB = this.getServiceByModelUUID(service.getModelUUID());
3985 if (serviceDB == null) {
3986 // Check to see if a record with the same modelInvariantId already exists. This tells us that a previous version exists and we can copy its recipe Record for the new service record.
3987 serviceInvariantDB = this.getServiceByInvariantUUID(service.getModelInvariantUUID());
3988 // Save the new Service record
3989 this.getSession ().save (service);
3992 if(serviceInvariantDB != null){ // existing modelInvariantId was found.
3993 // copy the recipe record with the matching invariant id. We will duplicate this for the new service record
3994 List<ServiceRecipe> serviceRecipes = getServiceRecipes(serviceInvariantDB.getModelUUID());
3996 if(serviceRecipes != null && ! serviceRecipes.isEmpty()){
3997 for(ServiceRecipe serviceRecipe : serviceRecipes){
3998 if(serviceRecipe != null){
3999 // Fetch the service record that we just added. We do this so we can extract its Id column value, this will be the foreign key we use in the service recipe table.
4000 Service newService = this.getServiceByModelUUID(service.getModelUUID());
4001 // Create a new ServiceRecipe record based on the existing one we just copied from the DB.
4002 ServiceRecipe newServiceRecipe = new ServiceRecipe();
4003 newServiceRecipe.setAction(serviceRecipe.getAction());
4004 newServiceRecipe.setDescription(serviceRecipe.getDescription());
4005 newServiceRecipe.setOrchestrationUri(serviceRecipe.getOrchestrationUri());
4006 newServiceRecipe.setRecipeTimeout(serviceRecipe.getRecipeTimeout());
4007 newServiceRecipe.setServiceParamXSD(serviceRecipe.getServiceParamXSD());
4008 newServiceRecipe.setServiceModelUUID(newService.getModelUUID());
4009 newServiceRecipe.setVersion(serviceRecipe.getVersion());
4010 // Check recipe does not exist before inserting
4011 ServiceRecipe recipe = getServiceRecipeByModelUUID(newServiceRecipe.getServiceModelUUID(), newServiceRecipe.getAction());
4012 // Save the new recipe record in the service_recipe table and associate it to the new service record that we just added.
4014 this.getSession ().save (newServiceRecipe);
4023 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "saveOrUpdateService", null);
4027 public void saveOrUpdateVfModule (VfModule vfModule) {
4028 long startTime = System.currentTimeMillis ();
4029 LOGGER.debug ("Catalog database - save or update VF Module with VF Model Name " + vfModule.getModelName());
4030 VfModule vfModuleInvariantDB = null;
4032 LOGGER.debug("heat template id = " + vfModule.getHeatTemplateArtifactUUId() + ", vol template id = "+ vfModule.getVolHeatTemplateArtifactUUId());
4033 LOGGER.debug(vfModule.toString());
4034 } catch (Exception e) {
4035 LOGGER.debug("unable to print vfmodule " + e.getMessage(), e);
4038 VfModule existing = this.getVfModuleByModelUUID(vfModule.getModelUUID());
4039 if (existing == null) {
4040 // Check to see if a record with the same modelInvariantId already exists. This tells us that a previous version exists and we can copy its recipe Record for the new service record.
4041 vfModuleInvariantDB = this.getVfModuleByModelInvariantUuid(vfModule.getModelInvariantUUID());
4042 LOGGER.debug("No existing entry found, attempting to save...");
4043 this.getSession ().save (vfModule);
4046 LOGGER.debug("Found an existing vf module!\n" + existing.toString());
4047 } catch (Exception e) {
4048 LOGGER.debug("unable to print vfmodule2 " + e.getMessage(), e);
4052 if(vfModuleInvariantDB != null){ // existing modelInvariantId was found.
4053 // copy the recipe record with the matching invariant id. We will duplicate this for the new service record
4054 List<VnfComponentsRecipe> vfRecipes = getVnfComponentRecipes(vfModuleInvariantDB.getModelUUID());
4057 if(vfRecipes != null && ! vfRecipes.isEmpty()){
4058 for(VnfComponentsRecipe vfRecipe : vfRecipes){
4059 if(vfRecipe != null){
4060 // Fetch the service record that we just added. We do this so we can extract its Id column value, this will be the foreign key we use in the service recipe table.
4061 VfModule newRecipe = this.getVfModuleByModelUUID(vfModule.getModelUUID());
4062 // Create a new ServiceRecipe record based on the existing one we just copied from the DB.
4063 VnfComponentsRecipe newVnfRecipe = new VnfComponentsRecipe();
4064 newVnfRecipe.setAction(vfRecipe.getAction());
4065 newVnfRecipe.setDescription(vfRecipe.getDescription());
4066 newVnfRecipe.setOrchestrationUri(vfRecipe.getOrchestrationUri());
4067 newVnfRecipe.setRecipeTimeout(vfRecipe.getRecipeTimeout());
4068 newVnfRecipe.setParamXSD(vfRecipe.getParamXSD());
4069 newVnfRecipe.setVfModuleModelUUId(newRecipe.getModelUUID());
4070 newVnfRecipe.setVersion(vfRecipe.getVersion());
4071 newVnfRecipe.setVnfComponentType(vfRecipe.getVnfComponentType());
4072 newVnfRecipe.setVnfType(vfRecipe.getVnfType());
4073 // Check recipe does not exist before inserting
4074 // VnfComponentsRecipe recipe = getVnfComponentRecipes(newVnfRecipe.getVfModuleModelUUId());
4075 List<VnfComponentsRecipe> recipe = getVnfComponentRecipes(newVnfRecipe.getVfModuleModelUUId());
4076 // Save the new recipe record in the service_recipe table and associate it to the new service record that we just added.
4077 // if(recipe == null){
4078 this.getSession ().save (newVnfRecipe);
4087 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "saveOrUpdateVfModule", null);
4091 public void saveOrUpdateVfModuleCustomization (VfModuleCustomization vfModuleCustomization) {
4092 long startTime = System.currentTimeMillis ();
4093 LOGGER.debug ("Catalog database - save VF Module Customization with VF Customization Model Name UUID " + vfModuleCustomization.getVfModuleModelUuid());
4095 LOGGER.debug("env id = " + vfModuleCustomization.getHeatEnvironmentArtifactUuid() + ", vol Env=" + vfModuleCustomization.getVolEnvironmentArtifactUuid());
4096 LOGGER.debug(vfModuleCustomization.toString());
4097 } catch (Exception e) {
4098 LOGGER.debug("unable to print vfmodulecust " + e.getMessage(), e);
4101 VfModuleCustomization existing = this.getVfModuleCustomizationByModelCustomizationId(vfModuleCustomization.getModelCustomizationUuid());
4102 if (existing == null) {
4103 LOGGER.debug("No existing entry found, attempting to save...");
4104 this.getSession ().save (vfModuleCustomization);
4107 LOGGER.debug("Found an existing vf module customization entry\n" + existing.toString());
4108 } catch (Exception e) {
4109 LOGGER.debug("unable to print vfmodulecust2 " + e.getMessage(), e);
4114 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "saveOrUpdateVfModuleCustomization", null);
4119 public HeatNestedTemplate getNestedHeatTemplate(int parentTemplateId, int childTemplateId) {
4120 long startTime = System.currentTimeMillis ();
4121 LOGGER.debug ("Catalog database - get nested Heat template with PerentId-Child Id "
4122 + parentTemplateId +"-"+childTemplateId);
4124 HeatNestedTemplate nestedTemplate = new HeatNestedTemplate ();
4125 // nestedTemplate.setParentTemplateId (parentTemplateId);
4126 // nestedTemplate.setChildTemplateId (childTemplateId);
4128 return (HeatNestedTemplate)session.get (HeatNestedTemplate.class,nestedTemplate);
4130 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getNestedHeatTemplate", null);
4135 public HeatNestedTemplate getNestedHeatTemplate(String parentTemplateId, String childTemplateId) {
4136 long startTime = System.currentTimeMillis ();
4137 LOGGER.debug ("Catalog database - get nested Heat template with PerentId="
4138 + parentTemplateId +", ChildId="+childTemplateId);
4140 HeatNestedTemplate nestedTemplate = new HeatNestedTemplate ();
4141 nestedTemplate.setParentTemplateId (parentTemplateId);
4142 nestedTemplate.setChildTemplateId (childTemplateId);
4144 return (HeatNestedTemplate)session.get (HeatNestedTemplate.class,nestedTemplate);
4146 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getNestedHeatTemplate", null);
4151 public void saveNestedHeatTemplate (int parentTemplateId, HeatTemplate childTemplate, String yamlFile) {
4153 long startTime = System.currentTimeMillis ();
4154 LOGGER.debug ("Catalog database - save nested Heat template with name "
4155 + childTemplate.getTemplateName ());
4158 saveHeatTemplate(childTemplate, childTemplate.getParameters());
4159 if (getNestedHeatTemplate(parentTemplateId,childTemplate.getId()) == null) {
4160 HeatNestedTemplate nestedTemplate = new HeatNestedTemplate ();
4161 nestedTemplate.setParentTemplateId (parentTemplateId);
4162 nestedTemplate.setChildTemplateId (childTemplate.getId ());
4163 nestedTemplate.setProviderResourceFile (yamlFile);
4164 session.save (nestedTemplate);
4167 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "saveNestedHeatTemplate", null);
4173 public void saveNestedHeatTemplate (String parentTemplateId, HeatTemplate childTemplate, String yamlFile) {
4174 long startTime = System.currentTimeMillis ();
4175 LOGGER.debug ("Catalog database - save nested Heat template with name "
4176 + childTemplate.getTemplateName () + ",parentId=" + parentTemplateId + ",childId=" + childTemplate.getArtifactUuid() + ", providerResourceFile=" + yamlFile);
4179 saveHeatTemplate(childTemplate, childTemplate.getParameters());
4180 if (getNestedHeatTemplate(parentTemplateId,childTemplate.getArtifactUuid()) == null) {
4181 HeatNestedTemplate nestedTemplate = new HeatNestedTemplate ();
4182 nestedTemplate.setParentTemplateId (parentTemplateId);
4183 nestedTemplate.setChildTemplateId (childTemplate.getArtifactUuid ());
4184 nestedTemplate.setProviderResourceFile (yamlFile);
4186 session.save (nestedTemplate);
4189 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "saveNestedHeatTemplate", null);
4194 public HeatFiles getHeatFiles(int vnfResourceId,String fileName,String asdcResourceName, String version) {
4195 long startTime = System.currentTimeMillis ();
4196 LOGGER.debug ("Catalog database - getHeatFiles with name " + fileName
4197 + " and vnfResourceID "
4199 // + " and ASDC resource name "
4204 String hql = "FROM HeatFiles WHERE fileName = :fileName AND vnfResourceId = :vnfResourceId AND asdcResourceName = :asdcResourceName AND version = :version";
4205 Query query = getSession ().createQuery (hql);
4206 query.setParameter ("fileName", fileName);
4207 query.setParameter ("vnfResourceId", vnfResourceId);
4208 query.setParameter ("asdcResourceName", asdcResourceName);
4209 query.setParameter ("version", version);
4211 @SuppressWarnings("unchecked")
4213 HeatFiles heatFilesResult = null;
4215 heatFilesResult = (HeatFiles) query.uniqueResult ();
4216 } catch (org.hibernate.NonUniqueResultException nure) {
4217 LOGGER.debug("Non Unique Result Exception - the Catalog Database does not match a unique row - data integrity error: fileName='" + fileName + "', vnfResourceId='" + vnfResourceId + "' and asdcResourceName=" + asdcResourceName + " and version=" + version);
4218 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " non unique result for fileName=" + fileName + " and vnfResourceId=" + vnfResourceId + " and asdcResourceName=" + asdcResourceName + " and version=" + version, "", "", MsoLogger.ErrorCode.DataError, "Non unique result for fileName=" + fileName);
4220 } catch (org.hibernate.HibernateException he) {
4221 LOGGER.debug("Hibernate Exception - while searching for: fileName='" + fileName + "', vnfResourceId='" + vnfResourceId + "' and asdcResourceName=" + asdcResourceName + " and version=" + version + " " + he.getMessage());
4222 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " Hibernate exception searching for fileName=" + fileName + " and vnfResourceId=" + vnfResourceId + " and asdcResourceName=" + asdcResourceName + " and version=" + version, "", "", MsoLogger.ErrorCode.DataError, "Hibernate exception searching for fileName=" + fileName);
4224 } catch (Exception e) {
4225 LOGGER.debug("Generic Exception - while searching for: fileName='" + fileName + "', vnfResourceId='" + vnfResourceId + "' and asdcResourceName=" + asdcResourceName + " and version=" + version + " " + e.getMessage());
4226 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " Generic exception searching for fileName=" + fileName + " and vnfResourceId=" + vnfResourceId + " and asdcResourceName=" + asdcResourceName + " and version=" + version, "", "", MsoLogger.ErrorCode.DataError, "Generic exception searching for fileName=" + fileName);
4230 // See if something came back.
4231 if (heatFilesResult == null) {
4232 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully. HeatFiles not found", "CatalogDB", "getHeatFiles", null);
4235 // Name + Version is unique, so should only be one element
4236 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getHeatFiles", null);
4237 return heatFilesResult;
4240 public HeatFiles getHeatFiles(String artifactUuid) {
4241 long startTime = System.currentTimeMillis ();
4242 LOGGER.debug ("Catalog database - getHeatFiles with artifactUuid " + artifactUuid);
4244 String hql = "FROM HeatFiles WHERE artifactUuid = :artifactUuid";
4245 Query query = getSession ().createQuery (hql);
4246 query.setParameter ("artifactUuid", artifactUuid);
4248 @SuppressWarnings("unchecked")
4250 HeatFiles heatFilesResult = null;
4252 heatFilesResult = (HeatFiles) query.uniqueResult ();
4253 } catch (org.hibernate.NonUniqueResultException nure) {
4254 LOGGER.debug("Non Unique Result Exception - the Catalog Database does not match a unique row - data integrity error: artifactUuid='" + artifactUuid );
4255 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " non unique result for artifactUuid=" + artifactUuid, "", "", MsoLogger.ErrorCode.DataError, "Non unique result for artifactUuid=" + artifactUuid);
4257 } catch (org.hibernate.HibernateException he) {
4258 LOGGER.debug("Hibernate Exception - while searching for: artifactUuid='" + artifactUuid + " " + he.getMessage());
4259 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " Hibernate exception searching for artifactUuid=" + artifactUuid, "", "", MsoLogger.ErrorCode.DataError, "Hibernate exception searching for artifactUuid=" + artifactUuid);
4261 } catch (Exception e) {
4262 LOGGER.debug("Generic Exception - while searching for: artifactUuid='" + artifactUuid + " " + e.getMessage());
4263 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " Generic exception searching for artifactUuid=" + artifactUuid , "", "", MsoLogger.ErrorCode.DataError, "Generic exception searching for artifactUuid=" + artifactUuid);
4267 // See if something came back.
4268 if (heatFilesResult == null) {
4269 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully. HeatFiles not found", "CatalogDB", "getHeatFiles", null);
4272 // Name + Version is unique, so should only be one element
4273 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getHeatFiles", null);
4274 return heatFilesResult;
4277 public void saveHeatFiles (HeatFiles childFile) {
4278 long startTime = System.currentTimeMillis ();
4279 LOGGER.debug ("Catalog database - save Heat File with name "
4280 + childFile.getFileName());
4282 // HeatFiles heatFiles = getHeatFiles (childFile.getVnfResourceId(), childFile.getFileName(), childFile.getAsdcResourceName (),childFile.getVersion());
4283 HeatFiles heatFiles = getHeatFiles (childFile.getArtifactUuid());
4284 if (heatFiles == null) {
4286 // asdc_heat_files_save
4287 this.getSession ().save (childFile);
4290 /* replaced 'heatFiles' by 'childFile'
4291 Based on following comment:
4292 It must be childFile.setId instead of heatFiles.setId, we must return the ID if it exists in DB.
4294 childFile.setArtifactUuid(heatFiles.getArtifactUuid());
4298 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "saveHeatFiles", null);
4303 public void saveVfModuleToHeatFiles (int parentVfModuleId, HeatFiles childFile) {
4305 long startTime = System.currentTimeMillis ();
4306 LOGGER.debug ("Catalog database - save Heat File to VFmodule link "
4307 + childFile.getFileName());
4309 saveHeatFiles (childFile);
4310 VfModuleToHeatFiles vfModuleToHeatFile = new VfModuleToHeatFiles ();
4311 vfModuleToHeatFile.setVfModuleId(parentVfModuleId);
4312 vfModuleToHeatFile.setHeatFilesId(childFile.getId());
4314 session.save (vfModuleToHeatFile);
4317 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "saveVfModuleToHeatFiles", null);
4322 public void saveVfModuleToHeatFiles (String parentVfModuleId, HeatFiles childFile) {
4323 long startTime = System.currentTimeMillis ();
4324 LOGGER.debug ("Catalog database - save Heat File to VFmodule link "
4325 + childFile.getFileName());
4327 saveHeatFiles (childFile);
4328 VfModuleToHeatFiles checkExistingEntry = this.getVfModuleToHeatFilesEntry(parentVfModuleId, childFile.getArtifactUuid());
4329 if (checkExistingEntry == null) {
4330 VfModuleToHeatFiles vfModuleToHeatFile = new VfModuleToHeatFiles ();
4331 vfModuleToHeatFile.setVfModuleModelUuid(parentVfModuleId);
4332 vfModuleToHeatFile.setHeatFilesArtifactUuid(childFile.getArtifactUuid());
4334 session.save (vfModuleToHeatFile);
4336 LOGGER.debug("**Found existing VfModuleToHeatFiles entry for " + checkExistingEntry.toString());
4337 LOGGER.debug("No need to save...");
4341 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "saveVfModuleToHeatFiles", null);
4346 * Return a Network Resource that matches the Network Customization defined by given MODEL_CUSTOMIZATION_UUID
4349 * @return NetworkRecipe object or null if none found
4351 public NetworkResource getNetworkResourceByModelUuid(String modelUUID) {
4353 long startTime = System.currentTimeMillis ();
4354 LOGGER.debug ("Catalog database - get network resource with modelUUID " + modelUUID);
4357 String hql = "FROM NetworkResource WHERE modelUUID=:modelUUID";
4358 Query query = getSession ().createQuery (hql);
4359 query.setParameter (MODEL_UUID, modelUUID);
4361 @SuppressWarnings("unchecked")
4362 List <NetworkResource> resultList = query.list ();
4364 if (resultList.isEmpty ()) {
4368 resultList.sort(new MavenLikeVersioningComparator());
4369 Collections.reverse (resultList);
4371 return resultList.get (0);
4372 } catch (Exception e) {
4373 LOGGER.debug("Error trying to find Network Resource with " + modelUUID +", " + e.getMessage(),e);
4375 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getNetworkResourceByModelUuid", null);
4382 * Return a Network recipe that matches a given NETWORK_TYPE, ACTION, and, if specified, SERVICE_TYPE
4384 * @param networkType
4386 * @param serviceType
4387 * @return NetworkRecipe object or null if none found
4389 public NetworkRecipe getNetworkRecipe (String networkType, String action, String serviceType) {
4391 long startTime = System.currentTimeMillis ();
4392 LOGGER.debug ("Catalog database - get network recipe with network type " + networkType
4395 + " and service type "
4400 if (serviceType == null) {
4401 hql = "FROM NetworkRecipe WHERE networkType = :networkType AND action = :action AND serviceType IS NULL ";
4403 hql = "FROM NetworkRecipe WHERE networkType = :networkType AND action = :action AND serviceType = :serviceType ";
4405 Query query = getSession ().createQuery (hql);
4406 query.setParameter (NETWORK_TYPE, networkType);
4407 query.setParameter (ACTION, action);
4408 if (serviceType != null) {
4409 query.setParameter ("serviceType", serviceType);
4412 @SuppressWarnings("unchecked")
4413 List <NetworkRecipe> resultList = query.list ();
4415 if (resultList.isEmpty ()) {
4419 resultList.sort(new MavenLikeVersioningComparator());
4420 Collections.reverse (resultList);
4422 return resultList.get (0);
4424 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getNetworkRecipe", null);
4430 * Return a Network recipe that matches a given MODEL_NAME and ACTION
4434 * @return NetworkRecipe object or null if none found
4436 public NetworkRecipe getNetworkRecipe (String modelName, String action) {
4438 long startTime = System.currentTimeMillis ();
4439 LOGGER.debug ("Catalog database - get network recipe with network model name " + modelName
4445 String hql = "FROM NetworkRecipe WHERE modelName = :modelName AND action = :action";
4447 Query query = getSession ().createQuery (hql);
4448 query.setParameter (MODEL_NAME, modelName);
4449 query.setParameter (ACTION, action);
4451 @SuppressWarnings("unchecked")
4452 List <NetworkRecipe> resultList = query.list ();
4454 if (resultList.isEmpty ()) {
4458 resultList.sort(new MavenLikeVersioningComparator());
4459 Collections.reverse (resultList);
4461 return resultList.get (0);
4463 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getNetworkRecipe", null);
4468 * Return a Network Resource that matches the Network Customization defined by given MODEL_CUSTOMIZATION_UUID
4470 * @param modelCustomizationUuid
4471 * @return NetworkRecipe object or null if none found
4473 public NetworkResource getNetworkResourceByModelCustUuid(String modelCustomizationUuid) {
4475 long startTime = System.currentTimeMillis ();
4476 LOGGER.debug ("Catalog database - get network resource with modelCustomizationUuid " + modelCustomizationUuid);
4479 String hql = "select n FROM NetworkResource n, NetworkResourceCustomization c WHERE n.modelUUID=c.networkResourceModelUuid and c.modelCustomizationUuid = :modelCustomizationUuid";
4480 Query query = getSession ().createQuery (hql);
4481 query.setParameter (MODEL_CUSTOMIZATION_UUID, modelCustomizationUuid);
4483 @SuppressWarnings("unchecked")
4484 List <NetworkResource> resultList = query.list ();
4486 if (resultList.isEmpty ()) {
4490 resultList.sort(new MavenLikeVersioningComparator());
4491 Collections.reverse (resultList);
4493 return resultList.get (0);
4494 } catch (Exception e) {
4495 LOGGER.debug("Error trying to find Network Resource with " + modelCustomizationUuid +", " + e.getMessage(),e);
4497 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getNetworkResourceByModelCustUuid", null);
4503 * Return a VnfComponents recipe that matches a given VNF_TYPE, VNF_COMPONENT_TYPE, ACTION, and, if specified,
4507 * @param vnfComponentType
4509 * @param serviceType
4510 * @return VnfComponentsRecipe object or null if none found
4512 public VnfComponentsRecipe getVnfComponentsRecipe (String vnfType,
4513 String vnfComponentType,
4515 String serviceType) {
4517 long startTime = System.currentTimeMillis ();
4518 LOGGER.debug ("Catalog database - get Vnf Component recipe with network type " + vnfType
4519 + " and component type "
4523 + " and service type "
4528 if (serviceType == null) {
4529 hql = "FROM VnfComponentsRecipe WHERE vnfType = :vnfType AND vnfComponentType = :vnfComponentType AND action = :action AND serviceType IS NULL ";
4531 hql = "FROM VnfComponentsRecipe WHERE vnfType = :vnfType AND vnfComponentType = :vnfComponentType AND action = :action AND serviceType = :serviceType ";
4533 Query query = getSession ().createQuery (hql);
4534 query.setParameter (VNF_TYPE, vnfType);
4535 query.setParameter (VNF_COMPONENT_TYPE, vnfComponentType);
4536 query.setParameter (ACTION, action);
4537 if (serviceType != null) {
4538 query.setParameter ("serviceType", serviceType);
4541 @SuppressWarnings("unchecked")
4542 List <VnfComponentsRecipe> resultList = query.list ();
4544 if (resultList.isEmpty ()) {
4547 resultList.sort(new MavenLikeVersioningComparator());
4548 Collections.reverse (resultList);
4550 return resultList.get (0);
4552 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getVnfComponentsRecipe", null);
4557 * Return a VnfComponents recipe that matches a given VF_MODULE_ID, VNF_COMPONENT_TYPE, ACTION
4559 * @param vfModuleModelUUId
4560 * @param vnfComponentType
4562 * @return VnfComponentsRecipe object or null if none found
4564 public VnfComponentsRecipe getVnfComponentsRecipeByVfModuleModelUUId (String vfModuleModelUUId,
4565 String vnfComponentType,
4568 long startTime = System.currentTimeMillis ();
4569 LOGGER.debug ("Catalog database - get Vnf Component recipe with vfModuleModelUUId " + vfModuleModelUUId
4570 + " and component type "
4577 hql = "FROM VnfComponentsRecipe WHERE vfModuleModelUUId = :vfModuleModelUUId AND vnfComponentType = :vnfComponentType AND action = :action ";
4579 Query query = getSession ().createQuery (hql);
4580 query.setParameter (VF_MODULE_MODEL_UUID, vfModuleModelUUId);
4581 query.setParameter (VNF_COMPONENT_TYPE, vnfComponentType);
4582 query.setParameter (ACTION, action);
4584 @SuppressWarnings("unchecked")
4585 List <VnfComponentsRecipe> resultList = query.list ();
4587 if (resultList.isEmpty ()) {
4590 resultList.sort(new MavenLikeVersioningComparator());
4591 Collections.reverse (resultList);
4593 return resultList.get (0);
4595 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getVnfComponentsRecipeByVfModuleModelUUId", null);
4599 public List<VnfComponentsRecipe> getVnfComponentRecipes (String vfModuleModelUUId) {
4601 StringBuilder hql = null;
4603 hql = new StringBuilder ("FROM VnfComponentsRecipe WHERE vfModuleModelUUId = :vfModuleModelUUId");
4605 long startTime = System.currentTimeMillis ();
4606 LOGGER.debug ("Catalog database - get Service recipe with vfModuleModelUUId " + vfModuleModelUUId);
4608 Query query = getSession ().createQuery (hql.toString ());
4609 query.setParameter ("vfModuleModelUUId", vfModuleModelUUId);
4611 @SuppressWarnings("unchecked")
4612 List <VnfComponentsRecipe> resultList = query.list ();
4614 if (resultList.isEmpty ()) {
4615 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully. Service recipe not found", "CatalogDB", "getVfModuleRecipes", null);
4616 return Collections.EMPTY_LIST;
4619 resultList.sort(new MavenLikeVersioningComparator());
4620 Collections.reverse (resultList);
4622 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getVfModuleRecipes", null);
4628 public void saveOrUpdateVnfComponent (VnfComponent vnfComponent) {
4629 long startTime = System.currentTimeMillis ();
4631 LOGGER.debug ("Catalog database - save VnfComponent where vnfId="+ vnfComponent.getVnfId()+ " AND componentType="+ vnfComponent.getComponentType());
4633 VnfComponent vnfComponentDb = this.getVnfComponent(vnfComponent.getVnfId(), vnfComponent.getComponentType());
4637 this.getSession ().save (vnfComponent);
4640 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "saveOrUpdateVnfComponent", null);
4645 * Return a VfModule record that matches a given MODEL_NAME
4648 * @return VfModule object or null if none found
4650 public VfModule getVfModule (String modelName) {
4652 long startTime = System.currentTimeMillis ();
4653 LOGGER.debug ("Catalog database - get vf module with model name " + modelName);
4658 hql = "FROM VfModule WHERE modelName = :modelName";
4660 Query query = getSession ().createQuery (hql);
4661 query.setParameter (MODEL_NAME, modelName);
4663 @SuppressWarnings("unchecked")
4664 List <VfModule> resultList = query.list ();
4666 if (resultList.isEmpty ()) {
4669 resultList.sort(new MavenLikeVersioningComparator());
4670 Collections.reverse (resultList);
4672 return resultList.get (0);
4674 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getVfModule", null);
4679 * Return a VfModule record that matches a given MODEL_NAME
4682 * @return VfModule object or null if none found
4684 public VfModule getVfModuleByModelUUID (String modelUUID) {
4686 long startTime = System.currentTimeMillis ();
4687 LOGGER.debug ("Catalog database - get vf module with modelUUID " + modelUUID);
4692 hql = "FROM VfModule WHERE modelUUID = :modelUUID";
4694 Query query = getSession ().createQuery (hql);
4695 query.setParameter (MODEL_UUID, modelUUID);
4697 @SuppressWarnings("unchecked")
4698 List <VfModule> resultList = query.list ();
4700 if (resultList.isEmpty ()) {
4703 resultList.sort(new MavenLikeVersioningComparator());
4704 Collections.reverse (resultList);
4706 return resultList.get (0);
4708 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getVfModuleByModelUUID", null);
4713 * Return a Service recipe that matches a given service ModelUUID and action
4714 * (modelUUID) and ACTION
4718 * @return ServiceRecipe object or null if none found
4720 public ServiceRecipe getServiceRecipeByModelUUID(String modelUUID, String action) {
4722 long startTime = System.currentTimeMillis();
4723 LOGGER.debug("Catalog database - get Service recipe with modelUUID=" + modelUUID + " and action=" + action);
4727 // based on the new SERVICE_RECIPE schema where SERVICE_MODEL_UUID == MODEL_UUID, a JOIN with the SERVICE table is no longer needed
4728 // hql = "SELECT new ServiceRecipe(SR.id, SR.serviceModelUUID, SR.action, SR.description, " +
4729 // "SR.orchestrationUri, SR.serviceParamXSD, case when SR.recipeTimeout is null then 0 else SR.recipeTimeout end, " +
4730 // "case when SR.serviceTimeoutInterim is null then 0 else SR.serviceTimeoutInterim end, SR.created) " +
4731 // "FROM Service as S RIGHT OUTER JOIN S.recipes SR " +
4732 // "WHERE SR.serviceModelUUID = :modelUUID AND SR.action = :action";
4733 hql = "FROM ServiceRecipe WHERE serviceModelUUID = :modelUUID AND action = :action";
4734 Query query = getSession().createQuery(hql);
4735 query.setParameter(MODEL_UUID, modelUUID);
4736 query.setParameter(ACTION, action);
4738 @SuppressWarnings("unchecked")
4739 List<ServiceRecipe> recipeResultList = query.list();
4740 if (recipeResultList.isEmpty()) {
4741 LOGGER.debug("Catalog database - recipeResultList is null");
4744 recipeResultList.sort(new MavenLikeVersioningComparator());
4745 Collections.reverse(recipeResultList);
4746 LOGGER.debug("Catalog database - recipeResultList contains " + recipeResultList.get(0).toString());
4748 return recipeResultList.get(0);
4750 LOGGER.recordMetricEvent(startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getServiceRecipeByModelUUID", null);
4755 * Return a Service recipe that matches a given SERVICE_NAME_VERSION_ID
4756 * (MODEL_VERSION_ID) and ACTION
4758 * @param modelVersionId
4760 * @return ServiceRecipe object or null if none found
4763 public ServiceRecipe getServiceRecipe(String modelVersionId,
4766 long startTime = System.currentTimeMillis();
4767 LOGGER.debug("Catalog database - get Service recipe with modeVersionId=" + modelVersionId
4768 + " and action=" + action);
4772 // Note: Even with the implementation of the HQL JOIN below, the code for the two separate
4773 // SELECTs will be retained/commented for now in the event some subsequent JOIN issue arises
4774 // 1st query to get the Service record for the given SERVICE_NAME_VERSION_ID (MODEL_VERSION_ID)
4775 /* hql = "FROM Service WHERE serviceNameVersionId = :serviceNameVersionId";
4776 Query query = getSession().createQuery(hql);
4777 query.setParameter(SERVICE_NAME_VERSION_ID, modelVersionId);
4779 @SuppressWarnings("unchecked")
4780 List<Service> serviceResultList = query.list();
4781 if (serviceResultList.isEmpty()) {
4782 LOGGER.debug("Catalog database - serviceResultList is null");
4785 Collections.sort(serviceResultList, new MavenLikeVersioningComparator());
4786 Collections.reverse(serviceResultList);
4787 LOGGER.debug("Catalog database - serviceResultList contains " + serviceResultList.get(0).toString());
4789 // 2nd query to get the ServiceRecipe record corresponding to the Service from the 1st query
4790 hql = "FROM ServiceRecipe WHERE serviceModelUUID = :serviceModelUUID AND action = :action";
4791 query = getSession().createQuery(hql);
4792 // The SERVICE table 'id' field maps to the SERVICE_RECIPE table 'SERVICE_ID' field
4793 query.setParameter(SERVICE_ID, serviceResultList.get(0).getId());
4794 query.setParameter(ACTION, action);
4796 // The following SELECT performs a JOIN across the SERVICE and SERVICE_RECIPE tables. It required a new
4797 // CTR in the ServiceRecipe Class to populate that object (the other option was to parse the Object[]
4798 // returned by createQuery() and manually populate the ServiceRecipe object). Two of the 'int' fields in the
4799 // SERVICE_RECIPE DB schema (the timeouts) permit NULL values which required some additional code in the
4800 // SELECT to generate a default of 0 (needed by the CTR) in the cases where the value is NULL.
4801 hql = "SELECT new ServiceRecipe(SR.id, SR.serviceModelUUID, SR.action, SR.description, " +
4802 "SR.orchestrationUri, SR.serviceParamXSD, case when SR.recipeTimeout is null then 0 else SR.recipeTimeout end, " +
4803 "case when SR.serviceTimeoutInterim is null then 0 else SR.serviceTimeoutInterim end, SR.created) " +
4804 "FROM Service as S RIGHT OUTER JOIN S.recipes SR " +
4805 "WHERE SR.serviceModelUUID = S.id AND S.serviceNameVersionId = :serviceNameVersionId AND SR.action = :action";
4806 Query query = getSession().createQuery(hql);
4807 query.setParameter(MODEL_UUID, modelVersionId);
4808 query.setParameter(ACTION, action);
4810 @SuppressWarnings("unchecked")
4811 List<ServiceRecipe> recipeResultList = query.list();
4812 if (recipeResultList.isEmpty()) {
4813 LOGGER.debug("Catalog database - recipeResultList is null");
4816 recipeResultList.sort(new MavenLikeVersioningComparator());
4817 Collections.reverse(recipeResultList);
4818 LOGGER.debug("Catalog database - recipeResultList contains " + recipeResultList.get(0).toString());
4820 return recipeResultList.get(0);
4822 LOGGER.recordMetricEvent(startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getServiceRecipe", null);
4827 * Return a Model recipe that matches a given MODEL_TYPE, MODEL_VERSION_ID, ACTION
4828 * Note: This method is not currently used but was retained in the event the
4829 * architecture moves back to a MODEL/MODEL_RECIPE structure.
4832 * @param modelVersionId
4834 * @return ModelRecipe object or null if none found
4836 public ModelRecipe getModelRecipe(String modelType,
4837 String modelVersionId,
4840 long startTime = System.currentTimeMillis();
4841 LOGGER.debug("Catalog database - get Model recipe with modelType=" + modelType
4842 + " and modeVersionId=" + modelVersionId
4843 + " and action=" + action);
4847 // TBD - at some point it would be desirable to figure out how to do a HQL JOIN across
4848 // the MODEL and MODEL_RECIPE tables in HQL instead of 2 separate queries.
4849 // There seems to be 2 issues: formatting a hql query that executes successfully
4850 // and then being able to generate a result that will fit into the ModelRecipe class.
4852 // 1st query to get the Model record for the given MODEL_TYPE and MODEL_VERSION_ID
4853 hql = "FROM Model WHERE modelType = :modelType AND modelVersionId = :modelVersionId";
4854 Query query = getSession().createQuery(hql);
4855 query.setParameter(MODEL_TYPE, modelType);
4856 query.setParameter(MODEL_VERSION_ID, modelVersionId);
4858 @SuppressWarnings("unchecked")
4859 List<Model> modelResultList = query.list();
4860 if (modelResultList.isEmpty()) {
4861 LOGGER.debug("Catalog database - modelResultList is null");
4864 modelResultList.sort(new MavenLikeVersioningComparator());
4865 Collections.reverse(modelResultList);
4866 LOGGER.debug("Catalog database - modelResultList contains " + modelResultList.get(0).toString());
4868 // 2nd query to get the ModelRecipe record corresponding to the Model from the 1st query
4869 hql = "FROM ModelRecipe WHERE modelId = :modelId AND action = :action";
4870 query = getSession().createQuery(hql);
4871 // The MODEL table 'id' field maps to the MODEL_RECIPE table 'MODEL_ID' field
4872 query.setParameter(MODEL_ID, modelResultList.get(0).getId());
4873 query.setParameter(ACTION, action);
4875 @SuppressWarnings("unchecked")
4876 List<ModelRecipe> recipeResultList = query.list();
4877 if (recipeResultList.isEmpty()) {
4878 LOGGER.debug("Catalog database - recipeResultList is null");
4881 recipeResultList.sort(new MavenLikeVersioningComparator());
4882 Collections.reverse(recipeResultList);
4883 LOGGER.debug("Catalog database - recipeResultList contains " + recipeResultList.get(0).toString());
4885 return recipeResultList.get(0);
4887 LOGGER.recordMetricEvent(startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getModelRecipe", null);
4893 * Verify the health of the DB.
4895 * @return boolean value indicate whether DB is healthy
4897 public boolean healthCheck () {
4898 long startTime = System.currentTimeMillis ();
4899 Session session = this.getSession ();
4901 // Query query = session.createQuery (" from ActiveRequests ");
4902 Query query = session.createSQLQuery (" show tables ");
4904 List<?> list = query.list();
4905 LOGGER.debug("healthCheck CatalogDB - Successful");
4909 public < E > E executeQuerySingleRow(String hql, HashMap<String, String> variables, boolean retry) {
4910 long startTime = System.currentTimeMillis();
4911 LOGGER.debug("Catalog database - executeQuery: " + hql + (retry ? ", retry=true" : ", retry=false"));
4912 Query query = getSession().createQuery(hql);
4914 StringBuilder sb = new StringBuilder();
4915 if (variables != null) {
4916 for(Map.Entry<String, String> entry : variables.entrySet()){
4917 sb.append(entry.getKey()).append("=").append(entry.getValue()).append("\n");
4918 query.setParameter(entry.getKey(), entry.getValue());
4921 LOGGER.debug("Variables:\n" + sb.toString());
4925 theObject = (E) query.uniqueResult();
4926 } catch (org.hibernate.NonUniqueResultException nure) {
4927 LOGGER.debug("Non Unique Result Exception - the Catalog Database does not match a unique row");
4928 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " non unique result for " + hql, "", "", MsoLogger.ErrorCode.DataError, "Non unique result for " + hql );
4930 } catch (org.hibernate.HibernateException he) {
4931 LOGGER.debug("Hibernate Exception - while performing " + hql + "; he message:" + he.getMessage());
4932 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " Hibernate exception while performing hql=" + hql, "", "", MsoLogger.ErrorCode.DataError, "Hibernate exception searching for hql=" + hql);
4934 LOGGER.debug("***WILL RETRY***");
4935 return this.executeQuerySingleRow(hql, variables, false);
4939 } catch (Exception e) {
4940 LOGGER.debug("Generic Exception - while performing '" + hql + "'");
4941 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " Generic exception performing " + hql, "", "", MsoLogger.ErrorCode.DataError, "Generic exception performing " + hql);
4943 LOGGER.debug("***WILL RETRY***");
4944 return this.executeQuerySingleRow(hql, variables, false);
4950 if (theObject == null) {
4951 LOGGER.debug("Returning null");
4952 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "NotFound", "CatalogDB", "executeQuerySingleRow", null);
4954 LOGGER.debug("Returning an Object");
4955 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "executeQuerySingleRow", null);
4960 public < E > List<E> executeQueryMultipleRows(String hql, HashMap<String, String> variables, boolean retry) {
4961 long startTime = System.currentTimeMillis ();
4962 LOGGER.debug("Catalog database - executeQuery: " + hql + (retry ? ", retry=true" : ", retry=false"));
4963 Query query = getSession().createQuery(hql);
4965 StringBuilder sb = new StringBuilder();
4966 if (variables != null) {
4967 for(Map.Entry<String, String> entry : variables.entrySet()){
4968 sb.append(entry.getKey()).append("=").append(entry.getValue()).append("\n");
4969 query.setParameter(entry.getKey(), entry.getValue());
4972 LOGGER.debug("Variables:\n" + sb.toString());
4974 List<E> theObjects = null;
4976 theObjects = (List<E>) query.list ();
4977 } catch (org.hibernate.HibernateException he) {
4978 LOGGER.debug("Hibernate Exception - while performing " + hql + "; he message:" + he.getMessage());
4979 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " Hibernate exception while performing hql=" + hql, "", "", MsoLogger.ErrorCode.DataError, "Hibernate exception searching for hql=" + hql);
4981 LOGGER.debug("***WILL RETRY***");
4982 return this.executeQuerySingleRow(hql, variables, false);
4986 } catch (Exception e) {
4987 LOGGER.debug("Generic Exception - while performing '" + hql + "'");
4988 LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " Generic exception performing " + hql, "", "", MsoLogger.ErrorCode.DataError, "Generic exception performing " + hql);
4990 LOGGER.debug("***WILL RETRY***");
4991 return this.executeQuerySingleRow(hql, variables, false);
4997 if (theObjects == null) {
4998 LOGGER.debug("Returning null");
4999 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "NotFound", "CatalogDB", "executeQuerySingleRow", null);
5002 LOGGER.debug("Returning theObjects:" + theObjects.size());
5003 } catch (Exception e) {
5004 LOGGER.debug("Returning theObjects",e);
5006 LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "executeQuerySingleRow", null);