aboutsummaryrefslogtreecommitdiffstats
path: root/asdc-controller/src/main/java/org/openecomp/mso/asdc/installer/heat/VfResourceInstaller.java
diff options
context:
space:
mode:
Diffstat (limited to 'asdc-controller/src/main/java/org/openecomp/mso/asdc/installer/heat/VfResourceInstaller.java')
-rw-r--r--asdc-controller/src/main/java/org/openecomp/mso/asdc/installer/heat/VfResourceInstaller.java790
1 files changed, 0 insertions, 790 deletions
diff --git a/asdc-controller/src/main/java/org/openecomp/mso/asdc/installer/heat/VfResourceInstaller.java b/asdc-controller/src/main/java/org/openecomp/mso/asdc/installer/heat/VfResourceInstaller.java
deleted file mode 100644
index d227961664..0000000000
--- a/asdc-controller/src/main/java/org/openecomp/mso/asdc/installer/heat/VfResourceInstaller.java
+++ /dev/null
@@ -1,790 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP - SO
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.openecomp.mso.asdc.installer.heat;
-
-import java.sql.Timestamp;
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.hibernate.exception.ConstraintViolationException;
-import org.hibernate.exception.LockAcquisitionException;
-import org.onap.sdc.api.notification.IArtifactInfo;
-
-import org.openecomp.mso.asdc.client.ASDCConfiguration;
-import org.openecomp.mso.asdc.client.exceptions.ArtifactInstallerException;
-import org.openecomp.mso.asdc.installer.ASDCElementInfo;
-import org.openecomp.mso.asdc.installer.BigDecimalVersion;
-import org.openecomp.mso.asdc.installer.IVfResourceInstaller;
-import org.openecomp.mso.asdc.installer.VfModuleArtifact;
-import org.openecomp.mso.asdc.installer.VfModuleStructure;
-import org.openecomp.mso.asdc.installer.VfResourceStructure;
-import org.openecomp.mso.asdc.util.YamlEditor;
-import org.openecomp.mso.db.catalog.CatalogDatabase;
-import org.openecomp.mso.db.catalog.beans.HeatEnvironment;
-import org.openecomp.mso.db.catalog.beans.HeatFiles;
-import org.openecomp.mso.db.catalog.beans.HeatTemplate;
-import org.openecomp.mso.db.catalog.beans.HeatTemplateParam;
-import org.openecomp.mso.db.catalog.beans.NetworkResourceCustomization;
-import org.openecomp.mso.db.catalog.beans.AllottedResourceCustomization;
-import org.openecomp.mso.db.catalog.beans.Service;
-import org.openecomp.mso.db.catalog.beans.ServiceToAllottedResources;
-import org.openecomp.mso.db.catalog.beans.ServiceToNetworks;
-import org.openecomp.mso.db.catalog.beans.VfModule;
-import org.openecomp.mso.db.catalog.beans.VnfResource;
-import org.openecomp.mso.logger.MessageEnum;
-import org.openecomp.mso.logger.MsoLogger;
-
-public class VfResourceInstaller implements IVfResourceInstaller {
-
- private MsoLogger logger;
-
- public VfResourceInstaller() {
- logger = MsoLogger.getMsoLogger(MsoLogger.Catalog.ASDC);
- }
-
- @Override
- public boolean isResourceAlreadyDeployed(VfResourceStructure vfResourceStruct)
- throws ArtifactInstallerException {
-
- boolean status = false;
- VfResourceStructure vfResourceStructure = (VfResourceStructure)vfResourceStruct;
-
- try(CatalogDatabase db = CatalogDatabase.getInstance()) {
-
- String resourceType = vfResourceStruct.getResourceInstance().getResourceType();
- String category = vfResourceStruct.getResourceInstance().getCategory();
-
- // Check for duplicate VF Module that is not an Allotted Resource
- if(resourceType.equals("VF") && !category.equalsIgnoreCase("Allotted Resource")){
- logger.info(MessageEnum.ASDC_CHECK_HEAT_TEMPLATE, "VNFResource",
- VfResourceInstaller.createVNFName(vfResourceStructure),
- BigDecimalVersion.castAndCheckNotificationVersionToString(
- vfResourceStructure.getNotification().getServiceVersion()), "", "");
-
- VnfResource vnfResource = db.getVnfResource(
- VfResourceInstaller.createVNFName(vfResourceStructure),
- BigDecimalVersion.castAndCheckNotificationVersionToString(
- vfResourceStructure.getNotification().getServiceVersion()));
-
- if (vnfResource != null) {
- status = true;
-
- }
-
- }
-
- // Check dup for VF Allotted Resource
- if(resourceType.equals("VF") && category.equalsIgnoreCase("Allotted Resource")){
- logger.info(MessageEnum.ASDC_CHECK_HEAT_TEMPLATE, "AllottedResource",
- vfResourceStruct.getResourceInstance().getResourceInstanceName(),
- BigDecimalVersion.castAndCheckNotificationVersionToString(
- vfResourceStructure.getNotification().getServiceVersion()), "", "");
-
- List<AllottedResourceCustomization> allottedResources = db.getAllAllottedResourcesByServiceModelUuid(vfResourceStruct.getNotification().getServiceUUID());
-
- if(allottedResources != null && allottedResources.size() > 0){
- for(AllottedResourceCustomization allottedResource : allottedResources){
-
- String existingAllottedResource = allottedResource.getModelCustomizationUuid();
- String notificationAllottedResource = vfResourceStruct.getResourceInstance().getResourceCustomizationUUID();
-
- if(existingAllottedResource.equals(notificationAllottedResource)){
- status=true;
- break;
- }
- }
-
- }
- }
-
- // Check Network for duplicates
- if(resourceType.equals("VL")){
- logger.info(MessageEnum.ASDC_CHECK_HEAT_TEMPLATE, "NetworkResource",
- vfResourceStruct.getResourceInstance().getResourceInstanceName(),
- BigDecimalVersion.castAndCheckNotificationVersionToString(
- vfResourceStructure.getNotification().getServiceVersion()), "", "");
-
- List<NetworkResourceCustomization> networkResources = db.getAllNetworksByServiceModelUuid(vfResourceStruct.getNotification().getServiceUUID());
-
- if(networkResources != null && networkResources.size() > 0){
- for(NetworkResourceCustomization networkResource : networkResources){
-
- String existingNetworkResource = networkResource.getModelCustomizationUuid();
- String notificationNetworkResource = vfResourceStruct.getResourceInstance().getResourceCustomizationUUID();
-
- if(existingNetworkResource.equals(notificationNetworkResource)){
- status=true;
- break;
- }
- }
-
- }
- }
-
- if (status) {
- logger.info(MessageEnum.ASDC_ARTIFACT_ALREADY_DEPLOYED_DETAIL,
- vfResourceStructure.getResourceInstance().getResourceInstanceName(),
- vfResourceStructure.getResourceInstance().getResourceCustomizationUUID(),
- vfResourceStructure.getNotification().getServiceName(),
- BigDecimalVersion.castAndCheckNotificationVersionToString(
- vfResourceStructure.getNotification().getServiceVersion()),
- vfResourceStructure.getNotification().getServiceUUID(),
- vfResourceStructure.getResourceInstance().getResourceName(),"", "");
- } else {
- logger.info(MessageEnum.ASDC_ARTIFACT_NOT_DEPLOYED_DETAIL,
- vfResourceStructure.getResourceInstance().getResourceInstanceName(),
- vfResourceStructure.getResourceInstance().getResourceCustomizationUUID(),
- vfResourceStructure.getNotification().getServiceName(),
- BigDecimalVersion.castAndCheckNotificationVersionToString(
- vfResourceStructure.getNotification().getServiceVersion()),
- vfResourceStructure.getNotification().getServiceUUID(),
- vfResourceStructure.getResourceInstance().getResourceName(),"", "");
- }
-
- return status;
-
- } catch (Exception e) {
- logger.error(MessageEnum.ASDC_ARTIFACT_CHECK_EXC, "", "", MsoLogger.ErrorCode.SchemaError, "Exception - isResourceAlreadyDeployed");
- throw new ArtifactInstallerException("Exception caught during checking existence of the VNF Resource.", e);
- }
- }
-
- @Override
- public void installTheResource(VfResourceStructure vfResourceStruct) throws ArtifactInstallerException {
-
- // 1. Add the DB object list (Hashed) to be created from the HashMap
- // UUID
- // The DB objects will be stored in each VfModuleArtifact objects
- // Those objects could be reused by different VfModule
-
- VfResourceStructure vfResourceStructure = (VfResourceStructure)vfResourceStruct;
-
- for (VfModuleArtifact vfModuleArtifact : vfResourceStructure.getArtifactsMapByUUID().values()) {
-
- switch (vfModuleArtifact.getArtifactInfo().getArtifactType()) {
- case ASDCConfiguration.HEAT:
- case ASDCConfiguration.HEAT_VOL:
- case ASDCConfiguration.HEAT_NESTED:
- VfResourceInstaller.createHeatTemplateFromArtifact(vfResourceStructure, vfModuleArtifact);
- break;
- case ASDCConfiguration.HEAT_ENV:
- VfResourceInstaller.createHeatEnvFromArtifact(vfResourceStructure, vfModuleArtifact);
- break;
- case ASDCConfiguration.HEAT_ARTIFACT:
- VfResourceInstaller.createHeatFileFromArtifact(vfResourceStructure, vfModuleArtifact);
- break;
- case ASDCConfiguration.HEAT_NET:
- case ASDCConfiguration.OTHER:
- logger.warn(MessageEnum.ASDC_ARTIFACT_TYPE_NOT_SUPPORT, vfModuleArtifact.getArtifactInfo().getArtifactType()+"(Artifact Name:"+vfModuleArtifact.getArtifactInfo().getArtifactName()+")", "", "", MsoLogger.ErrorCode.DataError, "Artifact type not supported");
- break;
- default:
- break;
-
- }
- }
-
- // in case of deployment failure, use a string that will represent the type of artifact that failed...
- List<ASDCElementInfo> artifactListForLogging = new ArrayList<>();
-
- CatalogDatabase catalogDB = CatalogDatabase.getInstance();
- // 2. Create the VFModules/VNFResource objects by linking them to the
- // objects created before and store them in Resource/module structure
- // Opening a DB transaction, starting from here
- try {
-
- VfResourceInstaller.createService(vfResourceStructure);
-
- String resourceType = vfResourceStructure.getResourceInstance().getResourceType();
- String resourceCategory = vfResourceStructure.getResourceInstance().getCategory();
-
- if("VF".equals(resourceType)){
-
- if(resourceCategory.equalsIgnoreCase("Allotted Resource")){
- VfResourceInstaller.createAllottedResourceCustomization(vfResourceStructure);
- catalogDB.saveAllottedResourceCustomization(vfResourceStructure.getCatalogResourceCustomization());
- } else {
- VfResourceInstaller.createVnfResource(vfResourceStructure);
- catalogDB.saveOrUpdateVnfResource(vfResourceStructure.getCatalogVnfResource());
- }
- }
-
- if("VL".equals(resourceType)){
- VfResourceInstaller.createNetworkResourceCustomization(vfResourceStructure);
- catalogDB.saveNetworkResourceCustomization(vfResourceStructure.getCatalogNetworkResourceCustomization());
- }
-
- // Add this one for logging
- artifactListForLogging.add(ASDCElementInfo.createElementFromVfResourceStructure(vfResourceStructure));
-
- //catalogDB.saveOrUpdateVnfResource(vfResourceStructure.getCatalogVnfResource());
- catalogDB.saveService(vfResourceStructure.getCatalogService());
-
- // Now that the service has been added we can populate the Service_to_AllottedResources table
- if("VF".equals(resourceType) && "Allotted Resource".equalsIgnoreCase(resourceCategory)){
- catalogDB.saveServiceToAllottedResources(vfResourceStructure.getCatalogServiceToAllottedResources());
- }
-
- // Now that the service has been added we can populate the Service_to_Network table
- if("VL".equals(resourceType)){
- catalogDB.saveServiceToNetworks(vfResourceStructure.getCatalogServiceToNetworks());
- }
-
- for (VfModuleStructure vfModuleStructure : vfResourceStructure.getVfModuleStructure()) {
-
- // Here we set the right db structure according to the Catalog
- // DB
-
- // We expect only one MAIN HEAT per VFMODULE
- // we can also obtain from it the Env ArtifactInfo, that's why
- // we
- // get the Main IArtifactInfo
-
- HeatTemplate heatMainTemplate = null;
- HeatEnvironment heatEnv = null;
-
- HeatTemplate heatVolumeTemplate = null;
- HeatEnvironment heatVolumeEnv = null;
-
- if (vfModuleStructure.getArtifactsMap().containsKey(ASDCConfiguration.HEAT)) {
- IArtifactInfo mainEnvArtifactInfo = vfModuleStructure.getArtifactsMap().get(ASDCConfiguration.HEAT)
- .get(0).getArtifactInfo().getGeneratedArtifact();
-
- // MAIN HEAT
- heatMainTemplate = (HeatTemplate) vfModuleStructure.getArtifactsMap()
- .get(ASDCConfiguration.HEAT).get(0).getCatalogObject();
-
- // Add this one for logging
- artifactListForLogging.add(ASDCElementInfo
- .createElementFromVfArtifactInfo(vfModuleStructure.getArtifactsMap().get(ASDCConfiguration.HEAT).get(0).getArtifactInfo()));
-
- catalogDB.saveHeatTemplate(heatMainTemplate, heatMainTemplate.getParameters());
- // Indicate we have deployed it in the DB
- vfModuleStructure.getArtifactsMap().get(ASDCConfiguration.HEAT).get(0).incrementDeployedInDB();
-
-
- // VOLUME HEAT
- // We expect only one VOL HEAT per VFMODULE
- // we can also obtain from it the Env ArtifactInfo, that's why
- // we get the Volume IArtifactInfo
-
- if (vfModuleStructure.getArtifactsMap().containsKey(ASDCConfiguration.HEAT_VOL)) {
- IArtifactInfo volEnvArtifactInfo = vfModuleStructure.getArtifactsMap().get(ASDCConfiguration.HEAT_VOL).get(0)
- .getArtifactInfo().getGeneratedArtifact();
-
- heatVolumeTemplate = (HeatTemplate) vfModuleStructure.getArtifactsMap()
- .get(ASDCConfiguration.HEAT_VOL).get(0).getCatalogObject();
-
- // Add this one for logging
- artifactListForLogging.add(ASDCElementInfo.createElementFromVfArtifactInfo(vfModuleStructure.getArtifactsMap().get(ASDCConfiguration.HEAT_VOL).get(0).getArtifactInfo()));
-
- catalogDB.saveHeatTemplate(heatVolumeTemplate, heatVolumeTemplate.getParameters());
- // Indicate we have deployed it in the DB
- vfModuleStructure.getArtifactsMap().get(ASDCConfiguration.HEAT_VOL).get(0).incrementDeployedInDB();
-
- if (volEnvArtifactInfo != null) {
- heatVolumeEnv = (HeatEnvironment) vfResourceStructure.getArtifactsMapByUUID()
- .get(volEnvArtifactInfo.getArtifactUUID()).getCatalogObject();
-
- // Add this one for logging
- artifactListForLogging.add(ASDCElementInfo.createElementFromVfArtifactInfo(volEnvArtifactInfo));
-
- catalogDB.saveHeatEnvironment(heatVolumeEnv);
- // Indicate we have deployed it in the DB
- vfResourceStructure.getArtifactsMapByUUID().get(volEnvArtifactInfo.getArtifactUUID()).incrementDeployedInDB();
- }
-
- }
-
- // NESTED HEAT
- // Here we expect many HEAT_NESTED template to be there
- // check first if we really have nested heat templates
- if (vfModuleStructure.getArtifactsMap().containsKey(ASDCConfiguration.HEAT_NESTED)) {
- for (VfModuleArtifact heatNestedArtifact : vfModuleStructure.getArtifactsMap()
- .get(ASDCConfiguration.HEAT_NESTED)) {
-
- // Check if this nested is well referenced by the MAIN HEAT
- String parentArtifactType = VfResourceInstaller.identifyParentOfNestedTemplate(vfModuleStructure,heatNestedArtifact);
- HeatTemplate heatNestedTemplate = (HeatTemplate) heatNestedArtifact.getCatalogObject();
-
- if (parentArtifactType != null) {
-
- switch (parentArtifactType) {
- case ASDCConfiguration.HEAT:
-
- // Add this one for logging
- artifactListForLogging.add(ASDCElementInfo.createElementFromVfArtifactInfo(heatNestedArtifact.getArtifactInfo()));
-
- catalogDB.saveNestedHeatTemplate (heatMainTemplate.getArtifactUuid(), heatNestedTemplate, heatNestedTemplate.getTemplateName());
- // Indicate we have deployed it in the DB
- heatNestedArtifact.incrementDeployedInDB();
- break;
- case ASDCConfiguration.HEAT_VOL:
-
- // Add this one for logging
- artifactListForLogging.add(ASDCElementInfo.createElementFromVfArtifactInfo(heatNestedArtifact.getArtifactInfo()));
- catalogDB.saveNestedHeatTemplate (heatVolumeTemplate.getArtifactUuid(), heatNestedTemplate, heatNestedTemplate.getTemplateName());
- // Indicate we have deployed it in the DB
- heatNestedArtifact.incrementDeployedInDB();
- break;
-
- default:
- break;
-
- }
- } else { // Assume it belongs to HEAT MAIN
- // Add this one for logging
- artifactListForLogging.add(ASDCElementInfo.createElementFromVfArtifactInfo(heatNestedArtifact.getArtifactInfo()));
-
- catalogDB.saveNestedHeatTemplate (heatMainTemplate.getArtifactUuid(), heatNestedTemplate, heatNestedTemplate.getTemplateName());
- // Indicate we have deployed it in the DB
- heatNestedArtifact.incrementDeployedInDB();
- }
- }
- }
-
- if (mainEnvArtifactInfo != null) {
- heatEnv = (HeatEnvironment) vfResourceStructure.getArtifactsMapByUUID()
- .get(mainEnvArtifactInfo.getArtifactUUID()).getCatalogObject();
-
- // Add this one for logging
- artifactListForLogging.add(ASDCElementInfo.createElementFromVfArtifactInfo(mainEnvArtifactInfo));
-
- catalogDB.saveHeatEnvironment(heatEnv);
- // Indicate we have deployed it in the DB
- vfResourceStructure.getArtifactsMapByUUID().get(mainEnvArtifactInfo.getArtifactUUID()).incrementDeployedInDB();
- }
-
- }
-
-
- // here we expect one VFModule to be there
-/* VfResourceInstaller.createVfModule(vfModuleStructure,heatMainTemplate, heatVolumeTemplate, heatEnv, heatVolumeEnv);
- VfModule vfModule = vfModuleStructure.getCatalogVfModule();
-
- // Add this one for logging
- artifactListForLogging.add(ASDCElementInfo.createElementFromVfModuleStructure(vfModuleStructure));
-
- catalogDB.saveOrUpdateVfModule(vfModule);
-
- // Here we expect many HEAT_TEMPLATE files to be there
- if (vfModuleStructure.getArtifactsMap().containsKey(ASDCConfiguration.HEAT_ARTIFACT)) {
- for (VfModuleArtifact heatArtifact : vfModuleStructure.getArtifactsMap()
- .get(ASDCConfiguration.HEAT_ARTIFACT)) {
-
- HeatFiles heatFile = (HeatFiles) heatArtifact.getCatalogObject();
-
- // Add this one for logging
- artifactListForLogging.add(ASDCElementInfo.createElementFromVfArtifactInfo(heatArtifact.getArtifactInfo()));
-
-
- catalogDB.saveVfModuleToHeatFiles (vfModule.getArtifactUuid(), heatFile);
- // Indicate we will deploy it in the DB
- heatArtifact.incrementDeployedInDB();
- }
- } */
-
- }
-
- catalogDB.commit();
- vfResourceStructure.setSuccessfulDeployment();
-
- } catch (Exception e) {
-
- Throwable dbExceptionToCapture = e;
- while (!(dbExceptionToCapture instanceof ConstraintViolationException || dbExceptionToCapture instanceof LockAcquisitionException)
- && (dbExceptionToCapture.getCause() != null)) {
- dbExceptionToCapture = dbExceptionToCapture.getCause();
- }
-
- if (dbExceptionToCapture instanceof ConstraintViolationException || dbExceptionToCapture instanceof LockAcquisitionException) {
- logger.warn(MessageEnum.ASDC_ARTIFACT_ALREADY_DEPLOYED, vfResourceStructure.getResourceInstance().getResourceName(),
- vfResourceStructure.getNotification().getServiceVersion(), "", "", MsoLogger.ErrorCode.DataError, "Exception - ASCDC Artifact already deployed", e);
- } else {
- String endEvent = "Exception caught during installation of " + vfResourceStructure.getResourceInstance().getResourceName() + ". Transaction rollback.";
- String elementToLog = (artifactListForLogging.size() > 0 ? artifactListForLogging.get(artifactListForLogging.size()-1).toString() : "No element listed");
- logger.error(MessageEnum.ASDC_ARTIFACT_INSTALL_EXC, elementToLog, "", "", MsoLogger.ErrorCode.DataError, "Exception caught during installation of " + vfResourceStructure.getResourceInstance().getResourceName() + ". Transaction rollback", e);
- catalogDB.rollback();
- throw new ArtifactInstallerException(
- "Exception caught during installation of " + vfResourceStructure.getResourceInstance().getResourceName() + ". Transaction rollback.", e);
- }
-
- } finally {
- catalogDB.close();
- // Debug log the whole collection...
- logger.debug(artifactListForLogging.toString());
- }
-
- }
-
- private static String identifyParentOfNestedTemplate(VfModuleStructure vfModuleStructure,VfModuleArtifact heatNestedArtifact) {
-
- if (vfModuleStructure.getArtifactsMap().get(ASDCConfiguration.HEAT) != null
- && vfModuleStructure.getArtifactsMap().get(ASDCConfiguration.HEAT).get(0).getArtifactInfo().getRelatedArtifacts() != null) {
- for (IArtifactInfo unknownArtifact : vfModuleStructure.getArtifactsMap().get(ASDCConfiguration.HEAT).get(0)
- .getArtifactInfo().getRelatedArtifacts()) {
- if (heatNestedArtifact.getArtifactInfo().getArtifactUUID().equals(unknownArtifact.getArtifactUUID())) {
- return ASDCConfiguration.HEAT;
- }
-
- }
- }
-
- if (vfModuleStructure.getArtifactsMap().get(ASDCConfiguration.HEAT_VOL) != null
- && vfModuleStructure.getArtifactsMap().get(ASDCConfiguration.HEAT_VOL).get(0).getArtifactInfo().getRelatedArtifacts() != null) {
- for (IArtifactInfo unknownArtifact:vfModuleStructure.getArtifactsMap().get(ASDCConfiguration.HEAT_VOL).get(0).getArtifactInfo().getRelatedArtifacts()) {
- if (heatNestedArtifact.getArtifactInfo().getArtifactUUID().equals(unknownArtifact.getArtifactUUID())) {
- return ASDCConfiguration.HEAT_VOL;
- }
-
- }
- }
-
- // Does not belong to anything
- return null;
-
- }
-
- private static void createVnfResource(VfResourceStructure vfResourceStructure) {
- VnfResource vnfResource = new VnfResource();
-
- vnfResource.setModelUuid(vfResourceStructure.getResourceInstance().getResourceUUID());
- vnfResource.setDescription(vfResourceStructure.getNotification().getServiceDescription());
-
- vnfResource.setOrchestrationMode("HEAT");
- // Set the version but Version is stored into ASDC_SERVICE_MODEL_VERSION
- vnfResource.setVersion(BigDecimalVersion
- .castAndCheckNotificationVersionToString(vfResourceStructure.getNotification().getServiceVersion()));
-// vnfResource.setVnfType(VfResourceInstaller.createVNFName(vfResourceStructure));
- vnfResource.setModelVersion(BigDecimalVersion
- .castAndCheckNotificationVersionToString(vfResourceStructure.getResourceInstance().getResourceVersion()));
-
- vnfResource.setModelInvariantUuid(vfResourceStructure.getResourceInstance().getResourceInvariantUUID());
- vnfResource.setModelVersion(vfResourceStructure.getResourceInstance().getResourceVersion());
-// vnfResource.setModelCustomizationName(vfResourceStructure.getResourceInstance().getResourceInstanceName());
-// vnfResource.setModelCustomizationUuid(vfResourceStructure.getResourceInstance().getResourceCustomizationUUID());
- vnfResource.setModelName(vfResourceStructure.getResourceInstance().getResourceName());
-// vnfResource.setServiceModelInvariantUUID(vfResourceStructure.getNotification().getServiceInvariantUUID());
-
- //vnfResource.setCreated(getCurrentTimeStamp());
-
- vfResourceStructure.setCatalogVnfResource(vnfResource);
- }
-
- private static void createNetworkResourceCustomization(VfResourceStructure vfResourceStructure) {
- NetworkResourceCustomization networkResourceCustomization = new NetworkResourceCustomization();
-
- networkResourceCustomization.setModelCustomizationUuid(vfResourceStructure.getResourceInstance().getResourceCustomizationUUID().trim());
-// networkResourceCustomization.setModelName(vfResourceStructure.getResourceInstance().getResourceName().trim());
- networkResourceCustomization.setModelInstanceName(vfResourceStructure.getResourceInstance().getResourceInstanceName().trim());
-// networkResourceCustomization.setModelInvariantUuid(vfResourceStructure.getResourceInstance().getResourceInvariantUUID().trim());
-// networkResourceCustomization.setModelUuid(vfResourceStructure.getResourceInstance().getResourceUUID().trim());
-// networkResourceCustomization.setModelVersion(vfResourceStructure.getResourceInstance().getResourceVersion().trim());
- //networkResourceCustomization.setCreated(getCurrentTimeStamp());
-
- vfResourceStructure.setCatalogNetworkResourceCustomization(networkResourceCustomization);
-
- ServiceToNetworks serviceNetworks = new ServiceToNetworks();
- serviceNetworks.setNetworkModelCustomizationUuid(networkResourceCustomization.getModelCustomizationUuid());
- serviceNetworks.setServiceModelUuid(vfResourceStructure.getNotification().getServiceUUID());
-
- vfResourceStructure.setCatalogServiceToNetworks(serviceNetworks);
-
- }
-
- private static void createAllottedResourceCustomization(VfResourceStructure vfResourceStructure) {
- AllottedResourceCustomization resourceCustomization = new AllottedResourceCustomization();
-
- resourceCustomization.setModelCustomizationUuid(vfResourceStructure.getResourceInstance().getResourceCustomizationUUID().trim());
-// resourceCustomization.setModelName(vfResourceStructure.getResourceInstance().getResourceName().trim());
- resourceCustomization.setModelInstanceName(vfResourceStructure.getResourceInstance().getResourceInstanceName().trim());
-// resourceCustomization.setModelInvariantUuid(vfResourceStructure.getResourceInstance().getResourceInvariantUUID().trim());
-// resourceCustomization.setModelUuid(vfResourceStructure.getResourceInstance().getResourceUUID().trim());
- resourceCustomization.setVersion(vfResourceStructure.getResourceInstance().getResourceVersion().trim());
- //resourceCustomization.setCreated(getCurrentTimeStamp());
-
- vfResourceStructure.setCatalogResourceCustomization(resourceCustomization);
-
- ServiceToAllottedResources serviceAllottedResources = new ServiceToAllottedResources();
- serviceAllottedResources.setArModelCustomizationUuid(resourceCustomization.getModelCustomizationUuid());
- serviceAllottedResources.setServiceModelUuid(vfResourceStructure.getNotification().getServiceUUID());
-
- vfResourceStructure.setCatalogServiceToAllottedResources(serviceAllottedResources);
-
- }
-
- private static void createVfModule(VfModuleStructure vfModuleStructure,HeatTemplate heatMain, HeatTemplate heatVolume,HeatEnvironment heatEnv, HeatEnvironment heatVolumeEnv) {
- VfModule vfModule = new VfModule();
-// vfModule.setType(createVfModuleName(vfModuleStructure));
-// vfModule.setAsdcUuid(vfModuleStructure.getVfModuleMetadata().getVfModuleModelUUID());
- vfModule.setDescription(vfModuleStructure.getVfModuleMetadata().getVfModuleModelDescription());
-
- if (vfModuleStructure.getVfModuleMetadata().isBase()) {
- vfModule.setIsBase(1);
- } else {
- vfModule.setIsBase(0);
- }
-
-// vfModule.setModelCustomizationUuid(vfModuleStructure.getVfModuleMetadata().getVfModuleModelCustomizationUUID());
- vfModule.setModelInvariantUuid(vfModuleStructure.getVfModuleMetadata().getVfModuleModelInvariantUUID());
- vfModule.setModelName(vfModuleStructure.getVfModuleMetadata().getVfModuleModelName());
-
- vfModule.setVersion(BigDecimalVersion.castAndCheckNotificationVersionToString(vfModuleStructure.getParentVfResource().getNotification().getServiceVersion()));
- vfModule.setModelVersion(BigDecimalVersion.castAndCheckNotificationVersionToString(
- vfModuleStructure.getVfModuleMetadata().getVfModuleModelVersion()));
-
- Map<String,String> map = vfModuleStructure.getVfModuleMetadata().getProperties();
-
- if(map != null){
-
- if(map.get("vf_module_label") != null){
-// vfModule.setLabel(map.get("vf_module_label"));
- }
- if(map.get("initial_count") != null && map.get("initial_count").length() > 0){
-// vfModule.setInitialCount(Integer.parseInt(map.get("initial_count")));
- }
- if(map.get("min_vf_module_instances") != null && map.get("min_vf_module_instances").length() > 0){
-// vfModule.setMinInstances(Integer.parseInt(map.get("min_vf_module_instances")));
- }
- if(map.get("max_vf_module_instances") != null && map.get("max_vf_module_instances").length() > 0){
-// vfModule.setMaxInstances(Integer.parseInt(map.get("max_vf_module_instances")));
- }
-
- }
-
- vfModuleStructure.setCatalogVfModule(vfModule);
-
- VfResourceInstaller.createVfModuleLinks(vfModule, vfModuleStructure.getParentVfResource().getCatalogVnfResource(), heatMain,heatVolume, heatEnv,heatVolumeEnv);
- }
-
- private static void createVfModuleLinks(VfModule vfModule, VnfResource vnfResource, HeatTemplate heatMain,
- HeatTemplate heatVolume, HeatEnvironment heatEnv, HeatEnvironment heatVolumeEnv) {
-
- if (heatMain !=null) {
-// vfModule.setTemplateId(heatMain.getId());
- }
- if (heatEnv != null) {
-// vfModule.setEnvironmentId(heatEnv.getId());
- }
- if (heatVolume != null) {
-// vfModule.setVolTemplateId(heatVolume.getId());
- }
- if (heatVolumeEnv != null) {
-// vfModule.setVolEnvironmentId(heatVolumeEnv.getId());
- }
-
-// vfModule.setVnfResourceId(vnfResource.getId());
-
- }
-
-
- private static Set<HeatTemplateParam> extractHeatTemplateParameters(String yamlFile, String artifactUUID) {
-
- // Scan the payload downloadResult and extract the HeatTemplate
- // parameters
- YamlEditor yamlEditor = new YamlEditor(yamlFile.getBytes());
- return yamlEditor.getParameterList(artifactUUID);
-
- }
-
-
- public static String verifyTheFilePrefixInArtifacts(String filebody, VfResourceStructure vfResourceStructure, List<String> listTypes) {
- String newFileBody = filebody;
- for (VfModuleArtifact moduleArtifact:vfResourceStructure.getArtifactsMapByUUID().values()) {
-
- if (listTypes.contains(moduleArtifact.getArtifactInfo().getArtifactType())) {
-
- newFileBody = verifyTheFilePrefixInString(newFileBody,moduleArtifact.getArtifactInfo().getArtifactName());
- }
- }
- return newFileBody;
- }
-
- public static String verifyTheFilePrefixInString(final String body, final String filenameToVerify) {
-
- String needlePrefix = "file:///";
- String prefixedFilenameToVerify = needlePrefix+filenameToVerify;
-
- if ((body == null) || (body.length() == 0) || (filenameToVerify == null) || (filenameToVerify.length() == 0)) {
- return body;
- }
-
- StringBuilder sb = new StringBuilder(body.length());
-
- int currentIndex = 0;
- int startIndex = 0;
-
- while (currentIndex != -1) {
- startIndex = currentIndex;
- currentIndex = body.indexOf(prefixedFilenameToVerify, startIndex);
-
- if (currentIndex == -1) {
- break;
- }
-
- // We append from the startIndex up to currentIndex (start of File Name)
- sb.append(body.substring(startIndex, currentIndex));
- sb.append(filenameToVerify);
-
- currentIndex += prefixedFilenameToVerify.length();
- }
-
- sb.append(body.substring(startIndex));
-
- return sb.toString();
- }
-
- private static void createHeatTemplateFromArtifact(VfResourceStructure vfResourceStructure,
- VfModuleArtifact vfModuleArtifact) {
- HeatTemplate heatTemplate = new HeatTemplate();
-
- // TODO Set the label
-// heatTemplate.setAsdcLabel("label");
- // Use the ResourceName of the ASDC template because the HEAT could be
- // reused
-// heatTemplate.setAsdcResourceName(vfResourceStructure.getResourceInstance().getResourceName());
- heatTemplate.setAsdcUuid(vfModuleArtifact.getArtifactInfo().getArtifactUUID());
-
- List<String> typeList = new ArrayList<>();
- typeList.add(ASDCConfiguration.HEAT_NESTED);
- typeList.add(ASDCConfiguration.HEAT_ARTIFACT);
-
- heatTemplate.setTemplateBody(verifyTheFilePrefixInArtifacts(vfModuleArtifact.getResult(),vfResourceStructure,typeList));
- heatTemplate.setTemplateName(vfModuleArtifact.getArtifactInfo().getArtifactName());
-
- if (vfModuleArtifact.getArtifactInfo().getArtifactTimeout() != null) {
- heatTemplate.setTimeoutMinutes(vfModuleArtifact.getArtifactInfo().getArtifactTimeout());
- } else {
- heatTemplate.setTimeoutMinutes(240);
- }
-
- heatTemplate.setDescription(vfModuleArtifact.getArtifactInfo().getArtifactDescription());
- heatTemplate.setVersion(BigDecimalVersion
- .castAndCheckNotificationVersionToString(vfModuleArtifact.getArtifactInfo().getArtifactVersion()));
- heatTemplate.setArtifactUuid(vfModuleArtifact.getArtifactInfo().getArtifactUUID());
-
- if(vfModuleArtifact.getArtifactInfo().getArtifactChecksum() != null){
- heatTemplate.setArtifactChecksum(vfModuleArtifact.getArtifactInfo().getArtifactChecksum());
- } else {
- heatTemplate.setArtifactChecksum("MANUAL_RECORD");
- }
-
- Set<HeatTemplateParam> heatParam = VfResourceInstaller
- .extractHeatTemplateParameters(vfModuleArtifact.getResult(), vfModuleArtifact.getArtifactInfo().getArtifactUUID());
- heatTemplate.setParameters(heatParam);
- //heatTemplate.setCreated(getCurrentTimeStamp());
-
- vfModuleArtifact.setCatalogObject(heatTemplate);
- }
-
- private static void createHeatEnvFromArtifact(VfResourceStructure vfResourceStructure,
- VfModuleArtifact vfModuleArtifact) {
- HeatEnvironment heatEnvironment = new HeatEnvironment();
-
- heatEnvironment.setName(vfModuleArtifact.getArtifactInfo().getArtifactName());
- // TODO Set the label
-// heatEnvironment.setAsdcLabel("Label");
-
- List<String> typeList = new ArrayList<>();
- typeList.add(ASDCConfiguration.HEAT);
- typeList.add(ASDCConfiguration.HEAT_VOL);
-
- heatEnvironment.setEnvironment(verifyTheFilePrefixInArtifacts(vfModuleArtifact.getResult(),vfResourceStructure,typeList));
-// heatEnvironment.setAsdcUuid(vfModuleArtifact.getArtifactInfo().getArtifactUUID());
- heatEnvironment.setDescription(vfModuleArtifact.getArtifactInfo().getArtifactDescription());
- heatEnvironment.setVersion(BigDecimalVersion
- .castAndCheckNotificationVersionToString(vfModuleArtifact.getArtifactInfo().getArtifactVersion()));
-// heatEnvironment.setAsdcResourceName(VfResourceInstaller.createVNFName(vfResourceStructure));
- heatEnvironment.setArtifactUuid(vfModuleArtifact.getArtifactInfo().getArtifactUUID());
-
- if(vfModuleArtifact.getArtifactInfo().getArtifactChecksum() != null){
- heatEnvironment.setArtifactChecksum(vfModuleArtifact.getArtifactInfo().getArtifactChecksum());
- } else{
- heatEnvironment.setArtifactChecksum("MANUAL_RECORD");
- }
- //heatEnvironment.setCreated(getCurrentTimeStamp());
-
- vfModuleArtifact.setCatalogObject(heatEnvironment);
-
- }
-
- private static void createHeatFileFromArtifact(VfResourceStructure vfResourceStructure,
- VfModuleArtifact vfModuleArtifact) {
-
- HeatFiles heatFile = new HeatFiles();
- // TODO Set the label
-// heatFile.setAsdcLabel("Label");
- heatFile.setAsdcUuid(vfModuleArtifact.getArtifactInfo().getArtifactUUID());
- heatFile.setDescription(vfModuleArtifact.getArtifactInfo().getArtifactDescription());
- heatFile.setFileBody(vfModuleArtifact.getResult());
- heatFile.setFileName(vfModuleArtifact.getArtifactInfo().getArtifactName());
- heatFile.setVersion(BigDecimalVersion
- .castAndCheckNotificationVersionToString(vfModuleArtifact.getArtifactInfo().getArtifactVersion()));
- //heatFile.setCreated(getCurrentTimeStamp());
-
-// heatFile.setAsdcResourceName(vfResourceStructure.getResourceInstance().getResourceName());
-
- if(vfModuleArtifact.getArtifactInfo().getArtifactChecksum() != null){
- heatFile.setArtifactChecksum(vfModuleArtifact.getArtifactInfo().getArtifactChecksum());
- } else {
- heatFile.setArtifactChecksum("MANUAL_RECORD");
- }
-
- vfModuleArtifact.setCatalogObject(heatFile);
-
- }
-
- private static void createService(VfResourceStructure vfResourceStructure) {
-
- Service service = new Service();
- service.setDescription(vfResourceStructure.getNotification().getServiceDescription());
- service.setModelName(vfResourceStructure.getNotification().getServiceName());
- service.setModelUUID(vfResourceStructure.getNotification().getServiceUUID());
- service.setVersion(vfResourceStructure.getNotification().getServiceVersion());
- service.setModelInvariantUUID(vfResourceStructure.getNotification().getServiceInvariantUUID());
- //service.setCreated(getCurrentTimeStamp());
-
- vfResourceStructure.setCatalogService(service);
- }
-
-
- private static String createVNFName(VfResourceStructure vfResourceStructure) {
-
- return vfResourceStructure.getNotification().getServiceName() + "/" + vfResourceStructure.getResourceInstance().getResourceInstanceName();
- }
-
- private static String createVfModuleName(VfModuleStructure vfModuleStructure) {
-
- return createVNFName(vfModuleStructure.getParentVfResource())+"::"+vfModuleStructure.getVfModuleMetadata().getVfModuleModelName();
- }
-
-
- private static Timestamp getCurrentTimeStamp() {
-
- return new Timestamp(new Date().getTime());
- }
-
-
-}