diff options
Diffstat (limited to 'openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/OrchestrationTemplateCandidateManagerImpl.java')
-rw-r--r-- | openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/OrchestrationTemplateCandidateManagerImpl.java | 186 |
1 files changed, 110 insertions, 76 deletions
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/OrchestrationTemplateCandidateManagerImpl.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/OrchestrationTemplateCandidateManagerImpl.java index 99a438f3a8..959cf15789 100644 --- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/OrchestrationTemplateCandidateManagerImpl.java +++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/OrchestrationTemplateCandidateManagerImpl.java @@ -19,14 +19,12 @@ */ package org.openecomp.sdc.vendorsoftwareproduct.impl; -import static org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductConstants.GENERAL_COMPONENT_ID; -import static org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductConstants.UniqueValues - .PROCESS_NAME; + import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.MapUtils; -import org.apache.xalan.xslt.Process; import org.openecomp.core.model.dao.ServiceModelDao; import org.openecomp.core.model.types.ServiceElement; +import org.openecomp.core.translator.datatypes.TranslatorOutput; import org.openecomp.core.util.UniqueValueUtil; import org.openecomp.core.utilities.file.FileContentHandler; import org.openecomp.core.utilities.file.FileUtils; @@ -55,14 +53,16 @@ import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel; import org.openecomp.sdc.translator.services.heattotosca.HeatToToscaUtil; import org.openecomp.sdc.validation.util.ValidationManagerUtil; import org.openecomp.sdc.vendorsoftwareproduct.OrchestrationTemplateCandidateManager; +import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentArtifactDao; import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDao; -import org.openecomp.sdc.vendorsoftwareproduct.dao.MibDao; import org.openecomp.sdc.vendorsoftwareproduct.dao.NicDao; import org.openecomp.sdc.vendorsoftwareproduct.dao.OrchestrationTemplateDao; import org.openecomp.sdc.vendorsoftwareproduct.dao.ProcessDao; import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductDao; import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductInfoDao; -import org.openecomp.sdc.vendorsoftwareproduct.dao.type.MibEntity; +import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity; +import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentMonitoringUploadEntity; +import org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity; import org.openecomp.sdc.vendorsoftwareproduct.dao.type.OrchestrationTemplateCandidateData; import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ProcessEntity; import org.openecomp.sdc.vendorsoftwareproduct.dao.type.UploadData; @@ -79,24 +79,25 @@ import org.openecomp.sdc.vendorsoftwareproduct.types.candidateheat.FilesDataStru import org.openecomp.sdc.vendorsoftwareproduct.utils.VendorSoftwareProductUtils; import org.openecomp.sdc.versioning.dao.types.Version; import org.openecomp.sdcrests.activitylog.types.ActivityType; -import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity; -import org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity; + import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; import java.nio.ByteBuffer; +import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Optional; -import java.util.Collection; + +import static org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductConstants.GENERAL_COMPONENT_ID; +import static org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductConstants.UniqueValues.PROCESS_NAME; public class OrchestrationTemplateCandidateManagerImpl implements OrchestrationTemplateCandidateManager { - private static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage(); private static final Logger logger = LoggerFactory.getLogger(OrchestrationTemplateCandidateManagerImpl.class); - + private static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage(); private VendorSoftwareProductDao vendorSoftwareProductDao; private VendorSoftwareProductInfoDao vspInfoDao; private OrchestrationTemplateDao orchestrationTemplateDataDao; @@ -107,10 +108,27 @@ public class OrchestrationTemplateCandidateManagerImpl private CompositionEntityDataManager compositionEntityDataManager; private NicDao nicDao; private ComponentDao componentDao; - private MibDao mibDao; + private ComponentArtifactDao componentArtifactDao; private ActivityLogManager activityLogManager; private ProcessDao processDao; + /** + * Instantiates a new Orchestration template candidate manager. + * + * @param vendorSoftwareProductDao the vendor software product dao + * @param vspInfoDao the vsp info dao + * @param orchestrationTemplateDataDao the orchestration template data dao + * @param candidateService the candidate service + * @param healingManager the healing manager + * @param compositionDataExtractor the composition data extractor + * @param serviceModelDao the service model dao + * @param compositionEntityDataManager the composition entity data manager + * @param nicDao the nic dao + * @param componentDao the component dao + * @param componentArtifactDao the mib dao + * @param processDao the process dao + * @param activityLogManager the activity log manager + */ public OrchestrationTemplateCandidateManagerImpl( VendorSoftwareProductDao vendorSoftwareProductDao, VendorSoftwareProductInfoDao vspInfoDao, @@ -121,7 +139,7 @@ public class OrchestrationTemplateCandidateManagerImpl CompositionEntityDataManager compositionEntityDataManager, NicDao nicDao, ComponentDao componentDao, - MibDao mibDao, + ComponentArtifactDao componentArtifactDao, ProcessDao processDao, ActivityLogManager activityLogManager) { this.vendorSoftwareProductDao = vendorSoftwareProductDao; @@ -134,7 +152,7 @@ public class OrchestrationTemplateCandidateManagerImpl this.compositionEntityDataManager = compositionEntityDataManager; this.nicDao = nicDao; this.componentDao = componentDao; - this.mibDao = mibDao; + this.componentArtifactDao = componentArtifactDao; this.processDao = processDao; this.activityLogManager = activityLogManager; } @@ -237,38 +255,43 @@ public class OrchestrationTemplateCandidateManagerImpl String manifest = candidateService.createManifest(vspDetails, structure); fileContentMap.addFile(SdcCommon.MANIFEST_NAME, manifest.getBytes()); - HeatStructureTree tree = createAndValidateHeatTree(response, fileContentMap); - Optional<ByteArrayInputStream> zipByteArrayInputStream = candidateService .fetchZipFileByteArrayInputStream(vspId, candidateDataEntity, manifest, uploadErrors); if (!zipByteArrayInputStream.isPresent()) { return response; } - Map<String,String> componentsQustanniare = new HashMap<>(); - Map<String, Map<String, String>> componentNicsQustanniare = new HashMap<>(); - Map<String, Collection<MibEntity>> componentMIBList = new HashMap<>(); + + HeatStructureTree tree = createAndValidateHeatTree(response, fileContentMap); + + Map<String, String> componentsQuestionnaire = new HashMap<>(); + Map<String, Map<String, String>> componentNicsQuestionnaire = new HashMap<>(); + Map<String, Collection<ComponentMonitoringUploadEntity>> componentMibList = new HashMap<>(); Map<String, Collection<ProcessEntity>> processes = new HashMap<>(); Map<String, ProcessEntity> processArtifact = new HashMap<>(); - backupComponentsQuestionnaireBeforeDelete(vspId, version, componentsQustanniare, - componentNicsQustanniare, componentMIBList, processes, processArtifact); + backupComponentsQuestionnaireBeforeDelete(vspId, version, componentsQuestionnaire, + componentNicsQuestionnaire, componentMibList, processes, processArtifact); deleteUploadDataAndContent(vspId, version); saveHotData(vspId, version, zipByteArrayInputStream.get(), fileContentMap, tree); - ToscaServiceModel toscaServiceModel = - HeatToToscaUtil.loadAndTranslateTemplateData(fileContentMap) - .getToscaServiceModel(); + TranslatorOutput translatorOutput = + HeatToToscaUtil.loadAndTranslateTemplateData(fileContentMap); + ToscaServiceModel toscaServiceModel = translatorOutput.getToscaServiceModel(); if (toscaServiceModel != null) { serviceModelDao.storeServiceModel(vspId, version, toscaServiceModel); + //Extracting the compostion data from the output service model of the first phase of + // translation compositionEntityDataManager.saveCompositionData(vspId, version, - compositionDataExtractor.extractServiceCompositionData(toscaServiceModel)); - retainComponentQuestionnaireData(vspId, version, componentsQustanniare, - componentNicsQustanniare, componentMIBList, processes, processArtifact); + compositionDataExtractor.extractServiceCompositionData(translatorOutput + .getNonUnifiedToscaServiceModel())); + retainComponentQuestionnaireData(vspId, version, componentsQuestionnaire, + componentNicsQuestionnaire, componentMibList, processes, processArtifact); } uploadFileResponse.addStructureErrors(uploadErrors); - ActivityLogEntity activityLogEntity = new ActivityLogEntity(vspId, String.valueOf(version.getMajor()+1), + ActivityLogEntity activityLogEntity = + new ActivityLogEntity(vspId, String.valueOf(version.getMajor() + 1), ActivityType.UPLOAD_HEAT.toString(), user, true, "", ""); activityLogManager.addActionLog(activityLogEntity, user); @@ -367,9 +390,10 @@ public class OrchestrationTemplateCandidateManagerImpl private void retainComponentQuestionnaireData(String vspId, Version activeVersion, Map<String, String> componentsQustanniare, - Map<String, Map<String, String>> componentNicsQustanniare, - Map<String, Collection<MibEntity>> componentMIBList, - Map<String,Collection<ProcessEntity>> processes, + Map<String, Map<String, String>> + componentNicsQustanniare, + Map<String, Collection<ComponentMonitoringUploadEntity>> componentMibList, + Map<String, Collection<ProcessEntity>> processes, Map<String, ProcessEntity> processArtifact) { //VSP processes restoreProcess(vspId, activeVersion, GENERAL_COMPONENT_ID, GENERAL_COMPONENT_ID, processes, @@ -378,27 +402,31 @@ public class OrchestrationTemplateCandidateManagerImpl components = vendorSoftwareProductDao.listComponents(vspId, activeVersion); components.forEach(componentEntity -> { String componentName = componentEntity.getComponentCompositionData().getName(); - if( componentsQustanniare.containsKey(componentName) ){ + if (componentsQustanniare.containsKey(componentName)) { componentDao.updateQuestionnaireData(vspId, activeVersion, - componentEntity.getId(),componentsQustanniare.get(componentEntity.getComponentCompositionData() + componentEntity.getId(), + componentsQustanniare.get(componentEntity.getComponentCompositionData() .getName())); - if( componentNicsQustanniare.containsKey(componentName) ){ - Map<String, String> nicsQustanniare=componentNicsQustanniare.get(componentName); + if (componentNicsQustanniare.containsKey(componentName)) { + Map<String, String> nicsQustanniare = componentNicsQustanniare.get(componentName); Collection<NicEntity> - nics=nicDao.list(new NicEntity(vspId, activeVersion, componentEntity.getId(), null)); - nics.forEach(nicEntity -> { - if(nicsQustanniare.containsKey(nicEntity.getNicCompositionData().getName())){ - nicDao.updateQuestionnaireData(vspId, activeVersion,componentEntity.getId - (),nicEntity.getId(),nicsQustanniare.get(nicEntity.getNicCompositionData().getName())); + nics = + nicDao.list(new NicEntity(vspId, activeVersion, componentEntity.getId(), null)); + nics.forEach(nicEntity -> { + if (nicsQustanniare.containsKey(nicEntity.getNicCompositionData().getName())) { + nicDao.updateQuestionnaireData(vspId, activeVersion, + componentEntity.getId(), nicEntity.getId(), + nicsQustanniare.get(nicEntity.getNicCompositionData().getName())); } }); } - //MIB - if(componentMIBList.containsKey(componentName)) { - Collection<MibEntity> mibList = componentMIBList.get(componentName); + //MIB //todo add for VES_EVENTS + if (componentMibList.containsKey(componentName)) { + Collection<ComponentMonitoringUploadEntity> mibList = + componentMibList.get(componentName); mibList.forEach(mib -> { mib.setComponentId(componentEntity.getId()); - mibDao.create(mib); + componentArtifactDao.create(mib); }); } //VFC processes @@ -411,43 +439,47 @@ public class OrchestrationTemplateCandidateManagerImpl private void backupComponentsQuestionnaireBeforeDelete(String vspId, Version activeVersion, Map<String, String> componentsQustanniare, Map<String, Map<String, String>> - componentNicsQustanniare, - Map<String, Collection<MibEntity>> - componentMIBList, - Map<String, Collection<ProcessEntity>> componentProcesses, + componentNicsQustanniare, + Map<String, Collection<ComponentMonitoringUploadEntity>> + componentMibList, + Map<String, Collection<ProcessEntity>> + componentProcesses, Map<String, ProcessEntity> processArtifact) { //backup VSP processes backupProcess(vspId, activeVersion, GENERAL_COMPONENT_ID, GENERAL_COMPONENT_ID, - componentProcesses,processArtifact); - Collection<ComponentEntity> componentsCompositionAndQuestionnaire= vendorSoftwareProductDao + componentProcesses, processArtifact); + Collection<ComponentEntity> componentsCompositionAndQuestionnaire = vendorSoftwareProductDao .listComponentsCompositionAndQuestionnaire(vspId, activeVersion); - componentsCompositionAndQuestionnaire.forEach(componentEntity ->{ - String componentName=componentEntity.getComponentCompositionData().getName(); - componentsQustanniare.put(componentName,componentEntity + componentsCompositionAndQuestionnaire.forEach(componentEntity -> { + String componentName = componentEntity.getComponentCompositionData().getName(); + componentsQustanniare.put(componentName, componentEntity .getQuestionnaireData()); Collection<NicEntity> - nics=nicDao.list(new NicEntity(vspId, activeVersion,componentEntity.getId(),null)); + nics = nicDao.list(new NicEntity(vspId, activeVersion, componentEntity.getId(), null)); //backup mib - Collection<MibEntity> componentMIB = mibDao.listArtifacts(new - MibEntity(vspId, activeVersion, componentEntity.getId(), null)); - if(CollectionUtils.isNotEmpty(componentMIB)){ - componentMIBList.put(componentName,componentMIB); + Collection<ComponentMonitoringUploadEntity> componentMib = + componentArtifactDao.listArtifacts(new + ComponentMonitoringUploadEntity(vspId, activeVersion, componentEntity.getId(), + null)); + if(CollectionUtils.isNotEmpty(componentMib)){ + componentMibList.put(componentName,componentMib); } //backup component processes backupProcess(vspId, activeVersion, componentEntity.getId(), componentName, - componentProcesses,processArtifact); - if(CollectionUtils.isNotEmpty(nics)) { + componentProcesses, processArtifact); + if (CollectionUtils.isNotEmpty(nics)) { Map<String, String> nicsQustanniare = new HashMap<>(); nics.forEach(nicEntity -> { - NicEntity nic = nicDao.get(new NicEntity(vspId, activeVersion, componentEntity.getId(), - nicEntity.getId())); - NicEntity nicQuestionnaire = nicDao.getQuestionnaireData(vspId,activeVersion, - componentEntity.getId(),nicEntity.getId()); + NicEntity nic = nicDao.get(new NicEntity(vspId, activeVersion, componentEntity.getId(), + nicEntity.getId())); + NicEntity nicQuestionnaire = nicDao.getQuestionnaireData(vspId, activeVersion, + componentEntity.getId(), nicEntity.getId()); nicsQustanniare - .put(nicEntity.getNicCompositionData().getName(), nicQuestionnaire.getQuestionnaireData()); + .put(nicEntity.getNicCompositionData().getName(), + nicQuestionnaire.getQuestionnaireData()); }); componentNicsQustanniare.put(componentName, nicsQustanniare); } @@ -456,17 +488,18 @@ public class OrchestrationTemplateCandidateManagerImpl private void backupProcess(String vspId, Version activeVersion, String componentId, String componentName, Map<String, - Collection<ProcessEntity>> processes, - Map<String,ProcessEntity> processArtifact){ + Collection<ProcessEntity>> processes, + Map<String, ProcessEntity> processArtifact) { Collection<ProcessEntity> processList = vendorSoftwareProductDao.listProcesses(vspId, activeVersion, componentId); - if(!processList.isEmpty()){ - processes.put(componentName,processList); + if (!processList.isEmpty()) { + processes.put(componentName, processList); processList.forEach(process -> { //ProcessArtifactEntity artifact = vendorSoftwareProductDao.getProcessArtifact(vspId, // activeVersion, componentId, process.getId()); - ProcessEntity artifact = processDao.get(new ProcessEntity(vspId,activeVersion,componentId,process.getId())); - if(artifact.getArtifact()!=null) { + ProcessEntity artifact = + processDao.get(new ProcessEntity(vspId, activeVersion, componentId, process.getId())); + if (artifact.getArtifact() != null) { processArtifact.put(process.getId(), artifact); } }); @@ -474,9 +507,10 @@ public class OrchestrationTemplateCandidateManagerImpl } private void restoreProcess(String vspId, Version activeVersion, String componentId, - String componentName, Map<String, Collection<ProcessEntity>> processes, - Map<String, ProcessEntity> processArtifact){ - if(processes.containsKey(componentName)) { + String componentName, + Map<String, Collection<ProcessEntity>> processes, + Map<String, ProcessEntity> processArtifact) { + if (processes.containsKey(componentName)) { Collection<ProcessEntity> processList = processes.get(componentName); processList.forEach(process -> { //Reatin VFC process @@ -550,7 +584,7 @@ public class OrchestrationTemplateCandidateManagerImpl byte[] uploadedFileData) { FileContentHandler contentMap = null; try { - contentMap = CommonUtil.loadUploadFileContent(uploadedFileData); + contentMap = CommonUtil.validateAndUploadFileContent(uploadedFileData); } catch (IOException exception) { uploadFileResponse.addStructureError( SdcCommon.UPLOAD_FILE, @@ -574,7 +608,7 @@ public class OrchestrationTemplateCandidateManagerImpl return healingParams; } - public VspDetails getVspDetails(String vspId, Version version) { + private VspDetails getVspDetails(String vspId, Version version) { VspDetails vspDetails = vspInfoDao.get(new VspDetails(vspId, version)); vspDetails.setValidationData(orchestrationTemplateDataDao.getValidationData(vspId, version)); return vspDetails; |