import org.openecomp.mso.db.AbstractSessionFactoryManager;
import org.openecomp.mso.db.catalog.beans.AllottedResource;
import org.openecomp.mso.db.catalog.beans.AllottedResourceCustomization;
+import org.openecomp.mso.db.catalog.beans.ArRecipe;
import org.openecomp.mso.db.catalog.beans.HeatEnvironment;
import org.openecomp.mso.db.catalog.beans.HeatFiles;
import org.openecomp.mso.db.catalog.beans.HeatNestedTemplate;
private static final String MODEL_TYPE = "modelType";
private static final String MODEL_VERSION_ID = "modelVersionId";
private static final String MODEL_CUSTOMIZATION_UUID = "modelCustomizationUuid";
- private static final String VF_MODULE_MODEL_UUID = "vfModuleModelUUId";
+ private static final String VF_MODULE_MODEL_UUID = "vfModuleModelUUId";
+ private static final String NETWORK_SERVICE = "network service";
protected static final MsoLogger LOGGER = MsoLogger.getMsoLogger (MsoLogger.Catalog.GENERAL);
return resultList.get(0);
}
+
+
/**
* Return a VNF recipe that matches a given VNF_TYPE and ACTION
*
LOGGER.recordMetricEvent(startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getVnfRecipe", null);
return resultList.get(0);
}
+
+ /**
+ * Return a VNF recipe that matches a given ModelName and Modelversion and ACTION
+ *
+ * @param modelName
+ * @param modelVersion
+ * @param action
+ * @return VnfRecipe object or null if none found
+ */
+ public VnfRecipe getVnfRecipeByNameVersion(String modelName, String modelVersion, String action) {
+
+ long startTime = System.currentTimeMillis();
+ LOGGER.debug("Catalog database - get VNF recipe with name " + modelName + " and action " + action);
+
+ Query query = getSession().createQuery("FROM VnfRecipe WHERE vnfType = :vnfType AND version= :version AND action = :action ");
+ query.setParameter(VNF_TYPE, modelName);
+ query.setParameter(MODEL_VERSION, modelVersion);
+ query.setParameter(ACTION, action);
+
+ @SuppressWarnings("unchecked")
+ List <VnfRecipe> resultList = query.list();
+
+ if (resultList.isEmpty()) {
+ LOGGER.recordMetricEvent(startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully. VNF recipe not found", "CatalogDB", "getVnfRecipe", null);
+ return null;
+ }
+
+ resultList.sort(new MavenLikeVersioningComparator());
+ Collections.reverse(resultList);
+
+ LOGGER.recordMetricEvent(startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getVnfRecipe", null);
+ return resultList.get(0);
+ }
+
+ /**
+ * Return a Network recipe that matches a given MODEL_UUID and ACTION
+ *
+ * @param vnfModelUuid
+ * @param action
+ * @return NetworkRecipe object or null if none found
+ */
+ public VnfRecipe getVnfRecipeByModuleUuid (String vnfModelUuid, String action) {
+ LOGGER.debug ("Catalog database - get vnf recipe with vnf resource model uuid " + vnfModelUuid
+ + " and action "
+ + action
+ );
+ VnfResource vnfResource = getVnfResourceByModelUuid(vnfModelUuid);
+ if(null == vnfResource){
+ return null;
+ }
+
+ VnfRecipe recipe = this.getVnfRecipeByNameVersion(vnfResource.getModelName(), vnfResource.getVersion(), action);
+
+ if (recipe == null && vnfResource.getSubCategory().equalsIgnoreCase(NETWORK_SERVICE)) {
+ recipe = getDefaultVnfRecipe(action);
+ }
+ return recipe;
+ }
+
+ private VnfRecipe getDefaultVnfRecipe(String action) {
+ long startTime = System.currentTimeMillis();
+ LOGGER.debug("Catalog database - get default VNF recipe with action: " + action);
+
+ Query query = getSession().createQuery("FROM VnfRecipe WHERE vnfType = :vnfType AND action = :action ");
+ query.setParameter(VNF_TYPE, "NS_DEFAULT");
+ query.setParameter(ACTION, action);
+
+ @SuppressWarnings("unchecked")
+ List <VnfRecipe> resultList = query.list();
+
+ if (resultList.isEmpty()) {
+ LOGGER.recordMetricEvent(startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully. VNF recipe not found", "CatalogDB", "getVnfRecipe", null);
+ return null;
+ }
+
+ LOGGER.recordMetricEvent(startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getVnfRecipe", null);
+ return resultList.get(0);
+ }
/**
* Return a VNF recipe that matches a given VF_MODULE_ID and ACTION
* Return the VnfResourceCustomization object identified by the given modelCustomizationUuid 1707
* Note that the corresponding VnfResource Object will be put in the VnfResourceCustomization bean
*
- * @param getVnfResourceCustomizationByModelVersionId
+ * @param modelVersionId
* @return VnfResourceCustomization or null if not found
*/
public VnfResourceCustomization getVnfResourceCustomizationByModelVersionId(String modelVersionId) {
* Return the VnfResourceCustomization object identified by the given modelCustomizationUuid 1707
* Note that the corresponding VnfResource Object will be put in the VnfResourceCustomization bean
*
- * @param modelCustomizationUuid
+ * @param modelUuid
* @return VnfResourceCustomization or null if not found
*/
public VnfResource getVnfResourceByModelUuid(String modelUuid) {
* Return a VNF Module List that matches a given VNF_TYPE, VF_MODULE_MODEL_NAME,
* ASDC_SERVICE_MODEL_VERSION, MODEL_VERSION, and ACTION
*
- * @param vnfModuleType
+ * @param vfModuleType
* @parm modelCustomizationUuid
* @param asdcServiceModelVersion
* @param modelVersion
/**
* Return a ServiceToResourceCustomization object
*
- * @param vfModuleModelUuid, heatFilesArtifactUuid
+ * @param serviceModelUuid
+ * @param resourceModelCustomizationUuid
+ * @param modelType
* @return VfModuleToHeatFiles or null if none found
*/
public ServiceToResourceCustomization getServiceToResourceCustomization(String serviceModelUuid, String resourceModelCustomizationUuid, String modelType) {
/**
* Return a Map<String, HeatFiles> for returning the heat files associated with a vfModule 1707
*
- * @param parentHeatTemplateId
+ * @param vfModuleModelUuid
* @return Map<String,Object> or null if none found
*/
public Map <String, HeatFiles> getHeatFilesForVfModule(String vfModuleModelUuid) {
/**
* Retrieves a Heat environment from DB based on its unique key. 1707
*
- * @param name the environment artifact name
+ * @param artifactUuid the environment artifact name
* @param version the environment resource version
* @return the heat environment from DB or null if not found
*/
/**
* Return the newest version of a specific Tosca CSAR Record resource (queried by Name).
*
- * @param ToscaCsar
+ * @param artifactChecksum
* @return ToscaCsar object or null if none found
*/
public ToscaCsar getToscaCsar (String artifactChecksum) {
}
}
- @Deprecated
- public void saveNestedHeatTemplate (int parentTemplateId, HeatTemplate childTemplate, String yamlFile) {
- /*
- long startTime = System.currentTimeMillis ();
- LOGGER.debug ("Catalog database - save nested Heat template with name "
- + childTemplate.getTemplateName ());
- try {
-
- saveHeatTemplate(childTemplate, childTemplate.getParameters());
- if (getNestedHeatTemplate(parentTemplateId,childTemplate.getId()) == null) {
- HeatNestedTemplate nestedTemplate = new HeatNestedTemplate ();
- nestedTemplate.setParentTemplateId (parentTemplateId);
- nestedTemplate.setChildTemplateId (childTemplate.getId ());
- nestedTemplate.setProviderResourceFile (yamlFile);
- session.save (nestedTemplate);
- }
- } finally {
- LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "saveNestedHeatTemplate", null);
- }
- */
- }
-
// 1707
public void saveNestedHeatTemplate (String parentTemplateId, HeatTemplate childTemplate, String yamlFile) {
long startTime = System.currentTimeMillis ();
}
}
- @Deprecated
- public void saveVfModuleToHeatFiles (int parentVfModuleId, HeatFiles childFile) {
- /*
- long startTime = System.currentTimeMillis ();
- LOGGER.debug ("Catalog database - save Heat File to VFmodule link "
- + childFile.getFileName());
- try {
- saveHeatFiles (childFile);
- VfModuleToHeatFiles vfModuleToHeatFile = new VfModuleToHeatFiles ();
- vfModuleToHeatFile.setVfModuleId(parentVfModuleId);
- vfModuleToHeatFile.setHeatFilesId(childFile.getId());
-
- session.save (vfModuleToHeatFile);
-
- } finally {
- LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "saveVfModuleToHeatFiles", null);
- }
- */
- }
-
public void saveVfModuleToHeatFiles (String parentVfModuleId, HeatFiles childFile) {
long startTime = System.currentTimeMillis ();
LOGGER.debug ("Catalog database - save Heat File to VFmodule link "
/**
* Return a Network Resource that matches the Network Customization defined by given MODEL_CUSTOMIZATION_UUID
*
- * @param networkType
- * @param action
- * @param serviceType
+ * @param modelUUID
* @return NetworkRecipe object or null if none found
*/
public NetworkResource getNetworkResourceByModelUuid(String modelUUID) {
/**
* Return a Network recipe that matches a given MODEL_UUID and ACTION
*
- * @param modelName
+ * @param networkModelUuid
* @param action
* @return NetworkRecipe object or null if none found
*/
}
NetworkRecipe recipe = getNetworkRecipeByNameVersion(networkResource.getModelName(), networkResource.getModelVersion(), action);
- return recipe;
+
+ if (recipe == null) {
+ recipe = getDefaultNetworkReceipe(action);
+ }
+
+ return recipe;
+ }
+
+ private NetworkRecipe getDefaultNetworkReceipe(String action) {
+ String modelName = "SDNC_DEFAULT";
+ return getNetworkRecipe(modelName, action);
}
/**
return null;
}
- Collections.sort (resultList, new MavenLikeVersioningComparator ());
+ resultList.sort(new MavenLikeVersioningComparator());
Collections.reverse (resultList);
return resultList.get (0);
/**
* Return a Network Resource that matches the Network Customization defined by given MODEL_CUSTOMIZATION_UUID
*
- * @param networkType
- * @param action
- * @param serviceType
+ * @param modelCustomizationUuid
* @return NetworkRecipe object or null if none found
*/
public NetworkResource getNetworkResourceByModelCustUuid(String modelCustomizationUuid) {
/**
* Return a VnfComponents recipe that matches a given VF_MODULE_ID, VNF_COMPONENT_TYPE, ACTION
*
- * @param vfModuleId
+ * @param vfModuleModelUUId
* @param vnfComponentType
* @param action
* @return VnfComponentsRecipe object or null if none found
/**
* Return a VfModule record that matches a given MODEL_NAME
*
- * @param modelName
+ * @param modelUUID
* @return VfModule object or null if none found
*/
public VfModule getVfModuleByModelUUID (String modelUUID) {
}
return theObjects;
}
+
+
+ /**
+ * get allotted resource recipe by module name and version and action.
+ * <br>
+ *
+ * @param modelName
+ * @param modelVersion
+ * @param action
+ * @return
+ * @since ONAP Beijing Release
+ */
+ public ArRecipe getArRecipeByNameVersion(String modelName, String modelVersion, String action) {
+
+ long startTime = System.currentTimeMillis ();
+ LOGGER.debug ("Catalog database - get ar recipe with ar model name " + modelName
+ +"model version " + modelVersion + " and action " + action);
+
+ try {
+ String hql = "FROM ArRecipe WHERE modelName = :modelName AND version=:version AND action = :action";
+
+ Query query = getSession ().createQuery (hql);
+ query.setParameter (MODEL_NAME, modelName);
+ query.setParameter (MODEL_VERSION, modelVersion);
+ query.setParameter (ACTION, action);
+
+ @SuppressWarnings("unchecked")
+ List <ArRecipe> resultList = query.list ();
+
+ if (resultList.isEmpty ()) {
+ return null;
+ }
+
+ resultList.sort(new MavenLikeVersioningComparator());
+ Collections.reverse (resultList);
+
+ return resultList.get (0);
+ } finally {
+ LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getNetworkRecipe", null);
+ }
+ }
+
+ /**
+ * Return a allotted resource recipe that matches a given MODEL_UUID and ACTION
+ *
+ * @param modelName
+ * @param action
+ * @return ArRecipe object or null if none found
+ */
+ public ArRecipe getArRecipeByModuleUuid (String ArModelUuid, String action) {
+ LOGGER.debug ("Catalog database - get ar recipe with ar model uuid " + ArModelUuid
+ + " and action "
+ + action
+ );
+ AllottedResource arResource = this.getAllottedResourceByModelUuid(ArModelUuid);
+ if(null == arResource){
+ return null;
+ }
+
+ ArRecipe recipe = getArRecipeByNameVersion(arResource.getModelName(), arResource.getModelVersion(), action);
+ return recipe;
+ }
+
}