diff options
Diffstat (limited to 'openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/orchestration/OrchestrationUtil.java')
-rw-r--r-- | openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/orchestration/OrchestrationUtil.java | 582 |
1 files changed, 259 insertions, 323 deletions
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/orchestration/OrchestrationUtil.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/orchestration/OrchestrationUtil.java index ef41262621..bc84e89e74 100644 --- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/orchestration/OrchestrationUtil.java +++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/orchestration/OrchestrationUtil.java @@ -13,9 +13,21 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package org.openecomp.sdc.vendorsoftwareproduct.impl.orchestration; +import static org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductConstants.UniqueValues.PROCESS_NAME; + +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.Objects; +import java.util.Optional; +import java.util.Set; +import java.util.stream.Collectors; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.MapUtils; import org.openecomp.core.dao.UniqueValueDaoFactory; @@ -41,366 +53,290 @@ import org.openecomp.sdc.logging.api.LoggerFactory; import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel; import org.openecomp.sdc.vendorsoftwareproduct.CompositionEntityDataManager; import org.openecomp.sdc.vendorsoftwareproduct.CompositionEntityDataManagerFactory; -import org.openecomp.sdc.vendorsoftwareproduct.dao.*; -import org.openecomp.sdc.vendorsoftwareproduct.dao.type.*; +import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentArtifactDao; +import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDao; +import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDaoFactory; +import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDependencyModelDao; +import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDependencyModelDaoFactory; +import org.openecomp.sdc.vendorsoftwareproduct.dao.MonitoringUploadDaoFactory; +import org.openecomp.sdc.vendorsoftwareproduct.dao.NicDao; +import org.openecomp.sdc.vendorsoftwareproduct.dao.NicDaoFactory; +import org.openecomp.sdc.vendorsoftwareproduct.dao.OrchestrationTemplateDao; +import org.openecomp.sdc.vendorsoftwareproduct.dao.OrchestrationTemplateDaoFactory; +import org.openecomp.sdc.vendorsoftwareproduct.dao.ProcessDao; +import org.openecomp.sdc.vendorsoftwareproduct.dao.ProcessDaoFactory; +import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductInfoDaoFactory; +import org.openecomp.sdc.vendorsoftwareproduct.dao.VspMergeDaoFactory; +import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentDependencyModelEntity; +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.OrchestrationTemplateEntity; +import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ProcessEntity; +import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails; import org.openecomp.sdc.vendorsoftwareproduct.factory.CompositionDataExtractorFactory; import org.openecomp.sdc.vendorsoftwareproduct.services.composition.CompositionDataExtractor; import org.openecomp.sdc.vendorsoftwareproduct.types.UploadFileResponse; import org.openecomp.sdc.versioning.dao.types.Version; -import java.io.IOException; -import java.io.InputStream; -import java.nio.ByteBuffer; -import java.util.*; -import java.util.stream.Collectors; - -import static org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductConstants.UniqueValues.PROCESS_NAME; - public class OrchestrationUtil { - private static final Logger LOGGER = LoggerFactory.getLogger(OrchestrationUtil.class); - public static final String ORCHESTRATION_CONFIG_NAMESPACE = "orchestration"; - public static final String ORCHESTRATION_IMPL_KEY = "orchestration_impl"; - - private final NicDao nicDao; - private final ComponentArtifactDao componentArtifactDao; - private final ProcessDao processDao; - private final OrchestrationTemplateDao orchestrationTemplateDataDao; - private final ComponentDao componentDao; - private final ServiceModelDao serviceModelDao; - private final ComponentDependencyModelDao componentDependencyModelDao; - private final CompositionEntityDataManager compositionEntityDataManager; - private final CompositionDataExtractor compositionDataExtractor; - - public OrchestrationUtil() { - this(NicDaoFactory.getInstance().createInterface(), - MonitoringUploadDaoFactory.getInstance().createInterface(), - ProcessDaoFactory.getInstance().createInterface(), - OrchestrationTemplateDaoFactory.getInstance().createInterface(), - ComponentDaoFactory.getInstance().createInterface(), - ServiceModelDaoFactory.getInstance().createInterface(), - ComponentDependencyModelDaoFactory.getInstance().createInterface(), - CompositionEntityDataManagerFactory.getInstance().createInterface(), + public static final String ORCHESTRATION_CONFIG_NAMESPACE = "orchestration"; + public static final String ORCHESTRATION_IMPL_KEY = "orchestration_impl"; + private static final Logger LOGGER = LoggerFactory.getLogger(OrchestrationUtil.class); + private final NicDao nicDao; + private final ComponentArtifactDao componentArtifactDao; + private final ProcessDao processDao; + private final OrchestrationTemplateDao orchestrationTemplateDataDao; + private final ComponentDao componentDao; + private final ServiceModelDao serviceModelDao; + private final ComponentDependencyModelDao componentDependencyModelDao; + private final CompositionEntityDataManager compositionEntityDataManager; + private final CompositionDataExtractor compositionDataExtractor; + + public OrchestrationUtil() { + this(NicDaoFactory.getInstance().createInterface(), MonitoringUploadDaoFactory.getInstance().createInterface(), + ProcessDaoFactory.getInstance().createInterface(), OrchestrationTemplateDaoFactory.getInstance().createInterface(), + ComponentDaoFactory.getInstance().createInterface(), ServiceModelDaoFactory.getInstance().createInterface(), + ComponentDependencyModelDaoFactory.getInstance().createInterface(), CompositionEntityDataManagerFactory.getInstance().createInterface(), CompositionDataExtractorFactory.getInstance().createInterface()); - } - - private OrchestrationUtil( - NicDao nicDao, - ComponentArtifactDao componentArtifactDao, - ProcessDao processDao, - OrchestrationTemplateDao orchestrationTemplateDataDao, - ComponentDao componentDao, - ServiceModelDao serviceModelDao, - ComponentDependencyModelDao componentDependencyModelDao, - CompositionEntityDataManager compositionEntityDataManager, - CompositionDataExtractor compositionDataExtractor) { - this.nicDao = nicDao; - this.componentArtifactDao = componentArtifactDao; - this.processDao = processDao; - this.orchestrationTemplateDataDao = orchestrationTemplateDataDao; - this.componentDao = componentDao; - this.serviceModelDao = serviceModelDao; - this.componentDependencyModelDao = componentDependencyModelDao; - this.compositionEntityDataManager = compositionEntityDataManager; - this.compositionDataExtractor = compositionDataExtractor; - } - - public static Optional<FileContentHandler> getFileContentMap(OnboardingTypesEnum type, - UploadFileResponse uploadFileResponse, - byte[] uploadedFileData) { - FileContentHandler contentMap = null; - try { - contentMap = CommonUtil.validateAndUploadFileContent(type, uploadedFileData); - } catch (IOException exception) { - uploadFileResponse.addStructureError( - SdcCommon.UPLOAD_FILE, - new ErrorMessage(ErrorLevel.ERROR, Messages.INVALID_ZIP_FILE.getErrorMessage())); - LOGGER.error("{}\n{}", Messages.INVALID_ZIP_FILE.getErrorMessage(), - exception.getMessage(), exception); - } catch (CoreException coreException) { - uploadFileResponse.addStructureError( - SdcCommon.UPLOAD_FILE, new ErrorMessage(ErrorLevel.ERROR, coreException.getMessage())); - LOGGER.error(coreException.getMessage(), coreException); } - return Optional.ofNullable(contentMap); - } - - public void backupComponentsQuestionnaireBeforeDelete(String vspId, Version version, - Map<String, String> componentsQustanniare, - Map<String, Map<String, String>> - componentNicsQustanniare, - Map<String, Collection<ComponentMonitoringUploadEntity>> - componentMibList, - Map<String, Collection<ProcessEntity>> - componentProcesses, - Map<String, ProcessEntity> processArtifact) { - Collection<ComponentEntity> componentsCompositionAndQuestionnaire = - componentDao.listCompositionAndQuestionnaire(vspId, version); - componentsCompositionAndQuestionnaire.forEach(componentEntity -> { - String componentName = componentEntity.getComponentCompositionData().getName(); - componentsQustanniare.put(componentName, componentEntity.getQuestionnaireData()); - backupMibData(vspId, version, componentEntity, componentName, componentMibList); - backupProcess(vspId, version, componentEntity.getId(), componentName, componentProcesses, - processArtifact); - backupNicsQuestionnaire(vspId, version, componentEntity, componentName, - componentNicsQustanniare); - }); - } - - private void backupMibData(String vspId, Version version, ComponentEntity componentEntity, - String componentName, - Map<String, Collection<ComponentMonitoringUploadEntity>> componentMibList) { - Collection<ComponentMonitoringUploadEntity> componentMib = - componentArtifactDao.listArtifacts(new - ComponentMonitoringUploadEntity(vspId, version, componentEntity.getId(), - null)); - if (CollectionUtils.isNotEmpty(componentMib)) { - componentMibList.put(componentName, componentMib); + private OrchestrationUtil(NicDao nicDao, ComponentArtifactDao componentArtifactDao, ProcessDao processDao, + OrchestrationTemplateDao orchestrationTemplateDataDao, ComponentDao componentDao, ServiceModelDao serviceModelDao, + ComponentDependencyModelDao componentDependencyModelDao, CompositionEntityDataManager compositionEntityDataManager, + CompositionDataExtractor compositionDataExtractor) { + this.nicDao = nicDao; + this.componentArtifactDao = componentArtifactDao; + this.processDao = processDao; + this.orchestrationTemplateDataDao = orchestrationTemplateDataDao; + this.componentDao = componentDao; + this.serviceModelDao = serviceModelDao; + this.componentDependencyModelDao = componentDependencyModelDao; + this.compositionEntityDataManager = compositionEntityDataManager; + this.compositionDataExtractor = compositionDataExtractor; } - } - private void backupProcess(String vspId, Version version, String componentId, - String componentName, Map<String, - Collection<ProcessEntity>> processes, - Map<String, ProcessEntity> processArtifact) { - Collection<ProcessEntity> processList = - processDao.list(new ProcessEntity(vspId, version, componentId, null)); - if (!processList.isEmpty()) { - processes.put(componentName, processList); - processList.forEach(process -> { - ProcessEntity artifact = processDao - .getArtifact(new ProcessEntity(vspId, version, componentId, process.getId())); - if (artifact.getArtifact() != null) { - processArtifact.put(process.getId(), artifact); + public static Optional<FileContentHandler> getFileContentMap(OnboardingTypesEnum type, UploadFileResponse uploadFileResponse, + byte[] uploadedFileData) { + FileContentHandler contentMap = null; + try { + contentMap = CommonUtil.validateAndUploadFileContent(type, uploadedFileData); + } catch (IOException exception) { + uploadFileResponse + .addStructureError(SdcCommon.UPLOAD_FILE, new ErrorMessage(ErrorLevel.ERROR, Messages.INVALID_ZIP_FILE.getErrorMessage())); + LOGGER.error("{}\n{}", Messages.INVALID_ZIP_FILE.getErrorMessage(), exception.getMessage(), exception); + } catch (CoreException coreException) { + uploadFileResponse.addStructureError(SdcCommon.UPLOAD_FILE, new ErrorMessage(ErrorLevel.ERROR, coreException.getMessage())); + LOGGER.error(coreException.getMessage(), coreException); } - }); + return Optional.ofNullable(contentMap); } - } - private void backupNicsQuestionnaire(String vspId, Version version, - ComponentEntity componentEntity, - String componentName, - Map<String, Map<String, String>> componentNicsQustanniare) { - Collection<NicEntity> - nics = nicDao.list(new NicEntity(vspId, version, componentEntity.getId(), null)); - if (CollectionUtils.isNotEmpty(nics)) { - Map<String, String> nicsQuestionnaire = new HashMap<>(); - nics.forEach(nicEntity -> { - NicEntity nicQuestionnaire = nicDao.getQuestionnaireData(vspId, version, - componentEntity.getId(), nicEntity.getId()); + public static HeatStructureTree createHeatTree(FileContentHandler fileContentMap, Map<String, List<ErrorMessage>> validationErrors) { + HeatTreeManager heatTreeManager = HeatTreeManagerUtil.initHeatTreeManager(fileContentMap); + heatTreeManager.createTree(); + heatTreeManager.addErrors(validationErrors); + return heatTreeManager.getTree(); + } - nicsQuestionnaire.put(nicEntity.getNicCompositionData().getName(), - nicQuestionnaire.getQuestionnaireData()); - }); - componentNicsQustanniare.put(componentName, nicsQuestionnaire); + public void backupComponentsQuestionnaireBeforeDelete(String vspId, Version version, Map<String, String> componentsQustanniare, + Map<String, Map<String, String>> componentNicsQustanniare, + Map<String, Collection<ComponentMonitoringUploadEntity>> componentMibList, + Map<String, Collection<ProcessEntity>> componentProcesses, + Map<String, ProcessEntity> processArtifact) { + Collection<ComponentEntity> componentsCompositionAndQuestionnaire = componentDao.listCompositionAndQuestionnaire(vspId, version); + componentsCompositionAndQuestionnaire.forEach(componentEntity -> { + String componentName = componentEntity.getComponentCompositionData().getName(); + componentsQustanniare.put(componentName, componentEntity.getQuestionnaireData()); + backupMibData(vspId, version, componentEntity, componentName, componentMibList); + backupProcess(vspId, version, componentEntity.getId(), componentName, componentProcesses, processArtifact); + backupNicsQuestionnaire(vspId, version, componentEntity, componentName, componentNicsQustanniare); + }); } - } - public void retainComponentQuestionnaireData(String vspId, Version version, - Map<String, String> componentsQustanniare, - Map<String, Map<String, String>> - componentNicsQustanniare, - Map<String, Collection<ComponentMonitoringUploadEntity>> componentMibList, - Map<String, Collection<ProcessEntity>> processes, - Map<String, ProcessEntity> processArtifact) { - //VSP processes - restoreProcess(vspId, version, null, null, processes, processArtifact); - Collection<ComponentEntity> components = - componentDao.list(new ComponentEntity(vspId, version, null)); - components.forEach(componentEntity -> { - String componentName = componentEntity.getComponentCompositionData().getName(); - if (componentsQustanniare.containsKey(componentName)) { - componentDao.updateQuestionnaireData(vspId, version, - componentEntity.getId(), - componentsQustanniare.get(componentEntity.getComponentCompositionData() - .getName())); - if (componentNicsQustanniare.containsKey(componentName)) { - restoreComponentNicQuestionnaire(vspId, version, componentName, componentEntity, - componentNicsQustanniare); + private void backupMibData(String vspId, Version version, ComponentEntity componentEntity, String componentName, + Map<String, Collection<ComponentMonitoringUploadEntity>> componentMibList) { + Collection<ComponentMonitoringUploadEntity> componentMib = componentArtifactDao + .listArtifacts(new ComponentMonitoringUploadEntity(vspId, version, componentEntity.getId(), null)); + if (CollectionUtils.isNotEmpty(componentMib)) { + componentMibList.put(componentName, componentMib); } - //MIB //todo add for VES_EVENTS - if (componentMibList.containsKey(componentName)) { - restoreComponentMibData(componentName, componentEntity, componentMibList); - } - //VFC processes - restoreProcess(vspId, version, componentEntity.getId(), componentName, processes, - processArtifact); - } - }); - } - - private void restoreComponentNicQuestionnaire(String vspId, Version version, - String componentName, - ComponentEntity componentEntity, - Map<String, Map<String, String>> componentNicsQustanniare) { - Map<String, String> nicsQustanniare = componentNicsQustanniare.get(componentName); - Collection<NicEntity> nics = - nicDao.list(new NicEntity(vspId, version, componentEntity.getId(), null)); - nics.forEach(nicEntity -> { - if (nicsQustanniare.containsKey(nicEntity.getNicCompositionData().getName())) { - nicDao.updateQuestionnaireData(vspId, version, - componentEntity.getId(), nicEntity.getId(), - nicsQustanniare.get(nicEntity.getNicCompositionData().getName())); - } - }); - } - - private void restoreComponentMibData(String componentName, ComponentEntity componentEntity, - Map<String, Collection<ComponentMonitoringUploadEntity>> componentMibList) { - Collection<ComponentMonitoringUploadEntity> mibList = componentMibList.get(componentName); - mibList.forEach(mib -> { - mib.setComponentId(componentEntity.getId()); - componentArtifactDao.create(mib); - }); - } + } - private void restoreProcess(String vspId, Version version, String componentId, - String componentName, - Map<String, Collection<ProcessEntity>> processes, - Map<String, ProcessEntity> processArtifact) { - if (processes.containsKey(componentName)) { - Collection<ProcessEntity> processList = processes.get(componentName); - processList.forEach(process -> { - process.setComponentId(componentId); - UniqueValueUtil uniqueValueUtil = new UniqueValueUtil(UniqueValueDaoFactory.getInstance() - .createInterface()); - uniqueValueUtil.createUniqueValue(PROCESS_NAME, vspId, version.getId(), componentId, - process.getName()); - processDao.create(process); - if (processArtifact.containsKey(process.getId())) { - ProcessEntity artifact = processArtifact.get(process.getId()); - processDao.uploadArtifact(artifact); + private void backupProcess(String vspId, Version version, String componentId, String componentName, + Map<String, Collection<ProcessEntity>> processes, Map<String, ProcessEntity> processArtifact) { + Collection<ProcessEntity> processList = processDao.list(new ProcessEntity(vspId, version, componentId, null)); + if (!processList.isEmpty()) { + processes.put(componentName, processList); + processList.forEach(process -> { + ProcessEntity artifact = processDao.getArtifact(new ProcessEntity(vspId, version, componentId, process.getId())); + if (artifact.getArtifact() != null) { + processArtifact.put(process.getId(), artifact); + } + }); } - }); } - } - public void deleteUploadDataAndContent(String vspId, Version version) { - VendorSoftwareProductInfoDaoFactory.getInstance().createInterface() - .delete(new VspDetails(vspId, version)); - } + private void backupNicsQuestionnaire(String vspId, Version version, ComponentEntity componentEntity, String componentName, + Map<String, Map<String, String>> componentNicsQustanniare) { + Collection<NicEntity> nics = nicDao.list(new NicEntity(vspId, version, componentEntity.getId(), null)); + if (CollectionUtils.isNotEmpty(nics)) { + Map<String, String> nicsQuestionnaire = new HashMap<>(); + nics.forEach(nicEntity -> { + NicEntity nicQuestionnaire = nicDao.getQuestionnaireData(vspId, version, componentEntity.getId(), nicEntity.getId()); + nicsQuestionnaire.put(nicEntity.getNicCompositionData().getName(), nicQuestionnaire.getQuestionnaireData()); + }); + componentNicsQustanniare.put(componentName, nicsQuestionnaire); + } + } - public void saveUploadData(VspDetails vspDetails, - OrchestrationTemplateCandidateData candidateData, - InputStream uploadedFileData, - FileContentHandler fileContentMap, HeatStructureTree tree) { - Map<String, Object> manifestAsMap = - fileContentMap.containsFile(SdcCommon.MANIFEST_NAME) - ? (Map<String, Object>) JsonUtil.json2Object(fileContentMap.getFileContentAsStream( - SdcCommon.MANIFEST_NAME), Map.class) - : new HashMap<>(); + public void retainComponentQuestionnaireData(String vspId, Version version, Map<String, String> componentsQustanniare, + Map<String, Map<String, String>> componentNicsQustanniare, + Map<String, Collection<ComponentMonitoringUploadEntity>> componentMibList, + Map<String, Collection<ProcessEntity>> processes, Map<String, ProcessEntity> processArtifact) { + //VSP processes + restoreProcess(vspId, version, null, null, processes, processArtifact); + Collection<ComponentEntity> components = componentDao.list(new ComponentEntity(vspId, version, null)); + components.forEach(componentEntity -> { + String componentName = componentEntity.getComponentCompositionData().getName(); + if (componentsQustanniare.containsKey(componentName)) { + componentDao.updateQuestionnaireData(vspId, version, componentEntity.getId(), + componentsQustanniare.get(componentEntity.getComponentCompositionData().getName())); + if (componentNicsQustanniare.containsKey(componentName)) { + restoreComponentNicQuestionnaire(vspId, version, componentName, componentEntity, componentNicsQustanniare); + } + //MIB //todo add for VES_EVENTS + if (componentMibList.containsKey(componentName)) { + restoreComponentMibData(componentName, componentEntity, componentMibList); + } + //VFC processes + restoreProcess(vspId, version, componentEntity.getId(), componentName, processes, processArtifact); + } + }); + } - OrchestrationTemplateEntity uploadData = new OrchestrationTemplateEntity(); - uploadData.setFileSuffix(candidateData.getFileSuffix()); - uploadData.setFileName(candidateData.getFileName()); - uploadData.setContentData(ByteBuffer.wrap(FileUtils.toByteArray(uploadedFileData))); - uploadData.setValidationDataStructure(new ValidationStructureList(tree)); - uploadData.setPackageName(Objects.isNull(manifestAsMap.get("name")) ? null : - (String) manifestAsMap.get("name")); - uploadData.setPackageVersion(Objects.isNull(manifestAsMap.get("version")) ? null : - (String) manifestAsMap.get("version")); - uploadData.setFilesDataStructure(candidateData.getFilesDataStructure()); - orchestrationTemplateDataDao.update(vspDetails.getId(), vspDetails.getVersion(), uploadData); + private void restoreComponentNicQuestionnaire(String vspId, Version version, String componentName, ComponentEntity componentEntity, + Map<String, Map<String, String>> componentNicsQustanniare) { + Map<String, String> nicsQustanniare = componentNicsQustanniare.get(componentName); + Collection<NicEntity> nics = nicDao.list(new NicEntity(vspId, version, componentEntity.getId(), null)); + nics.forEach(nicEntity -> { + if (nicsQustanniare.containsKey(nicEntity.getNicCompositionData().getName())) { + nicDao.updateQuestionnaireData(vspId, version, componentEntity.getId(), nicEntity.getId(), + nicsQustanniare.get(nicEntity.getNicCompositionData().getName())); + } + }); + } - VspMergeDaoFactory.getInstance().createInterface() - .updateHint(vspDetails.getId(), vspDetails.getVersion()); - } + private void restoreComponentMibData(String componentName, ComponentEntity componentEntity, + Map<String, Collection<ComponentMonitoringUploadEntity>> componentMibList) { + Collection<ComponentMonitoringUploadEntity> mibList = componentMibList.get(componentName); + mibList.forEach(mib -> { + mib.setComponentId(componentEntity.getId()); + componentArtifactDao.create(mib); + }); + } - public void saveServiceModel(String vspId, Version version, - ToscaServiceModel serviceModelToExtract, - ToscaServiceModel serviceModelToStore) { - if (serviceModelToExtract != null) { - serviceModelDao.storeServiceModel(vspId, version, serviceModelToStore); - //Extracting the compostion data from the output service model of the first phase of - // translation - compositionEntityDataManager.saveCompositionData(vspId, version, - compositionDataExtractor.extractServiceCompositionData(serviceModelToExtract)); + private void restoreProcess(String vspId, Version version, String componentId, String componentName, + Map<String, Collection<ProcessEntity>> processes, Map<String, ProcessEntity> processArtifact) { + if (processes.containsKey(componentName)) { + Collection<ProcessEntity> processList = processes.get(componentName); + processList.forEach(process -> { + process.setComponentId(componentId); + UniqueValueUtil uniqueValueUtil = new UniqueValueUtil(UniqueValueDaoFactory.getInstance().createInterface()); + uniqueValueUtil.createUniqueValue(PROCESS_NAME, vspId, version.getId(), componentId, process.getName()); + processDao.create(process); + if (processArtifact.containsKey(process.getId())) { + ProcessEntity artifact = processArtifact.get(process.getId()); + processDao.uploadArtifact(artifact); + } + }); + } } - } - public static HeatStructureTree createHeatTree(FileContentHandler fileContentMap, - Map<String, List<ErrorMessage>> validationErrors) { - HeatTreeManager heatTreeManager = HeatTreeManagerUtil.initHeatTreeManager(fileContentMap); - heatTreeManager.createTree(); - heatTreeManager.addErrors(validationErrors); - return heatTreeManager.getTree(); - } + public void deleteUploadDataAndContent(String vspId, Version version) { + VendorSoftwareProductInfoDaoFactory.getInstance().createInterface().delete(new VspDetails(vspId, version)); + } - public void updateVspComponentDependencies(String vspId, Version version, - Map<String, String> - vspComponentIdNameInfoBeforeProcess, - Collection<ComponentDependencyModelEntity> - componentDependenciesBeforeDelete) { - Map<String, String> updatedVspComponentNameIdInfo = getVspComponentNameIdInfo(vspId, version); - if (MapUtils.isNotEmpty(updatedVspComponentNameIdInfo)) { - Set<String> updatedVspComponentNames = updatedVspComponentNameIdInfo.keySet(); - if (CollectionUtils.isNotEmpty(componentDependenciesBeforeDelete)) { - restoreComponentDependencies(vspId, version, vspComponentIdNameInfoBeforeProcess, - componentDependenciesBeforeDelete, updatedVspComponentNames, - updatedVspComponentNameIdInfo); - } + public void saveUploadData(VspDetails vspDetails, OrchestrationTemplateCandidateData candidateData, InputStream uploadedFileData, + FileContentHandler fileContentMap, HeatStructureTree tree) { + Map<String, Object> manifestAsMap = fileContentMap.containsFile(SdcCommon.MANIFEST_NAME) ? (Map<String, Object>) JsonUtil + .json2Object(fileContentMap.getFileContentAsStream(SdcCommon.MANIFEST_NAME), Map.class) : new HashMap<>(); + OrchestrationTemplateEntity uploadData = new OrchestrationTemplateEntity(); + uploadData.setFileSuffix(candidateData.getFileSuffix()); + uploadData.setFileName(candidateData.getFileName()); + uploadData.setContentData(ByteBuffer.wrap(FileUtils.toByteArray(uploadedFileData))); + uploadData.setValidationDataStructure(new ValidationStructureList(tree)); + uploadData.setPackageName(Objects.isNull(manifestAsMap.get("name")) ? null : (String) manifestAsMap.get("name")); + uploadData.setPackageVersion(Objects.isNull(manifestAsMap.get("version")) ? null : (String) manifestAsMap.get("version")); + uploadData.setFilesDataStructure(candidateData.getFilesDataStructure()); + orchestrationTemplateDataDao.update(vspDetails.getId(), vspDetails.getVersion(), uploadData); + VspMergeDaoFactory.getInstance().createInterface().updateHint(vspDetails.getId(), vspDetails.getVersion()); } - } - private void restoreComponentDependencies(String vspId, Version version, - Map<String, String> vspComponentIdNameInfoBeforeProcess, - Collection<ComponentDependencyModelEntity> - componentDependenciesBeforeDelete, - Set<String> updatedVspComponentNames, - Map<String, String> updatedVspComponentNameIdInfo) { - for (ComponentDependencyModelEntity componentDependency : componentDependenciesBeforeDelete) { - String sourceComponentName = vspComponentIdNameInfoBeforeProcess.get(componentDependency - .getSourceComponentId()); - String targetComponentName = vspComponentIdNameInfoBeforeProcess.get(componentDependency - .getTargetComponentId()); - if (updatedVspComponentNames.contains(sourceComponentName) - && (updatedVspComponentNames.contains(targetComponentName))) { - ComponentDependencyModelEntity restoredDependency = - new ComponentDependencyModelEntity(vspId, version, null); - String newSourceComponentId = updatedVspComponentNameIdInfo.get(sourceComponentName); - restoredDependency.setSourceComponentId(newSourceComponentId); - String newTargetComponentId = updatedVspComponentNameIdInfo.get(targetComponentName); - restoredDependency.setTargetComponentId(newTargetComponentId); - restoredDependency.setRelation(componentDependency.getRelation()); - componentDependencyModelDao.create(restoredDependency); - } + public void saveServiceModel(String vspId, Version version, ToscaServiceModel serviceModelToExtract, ToscaServiceModel serviceModelToStore) { + if (serviceModelToExtract != null) { + serviceModelDao.storeServiceModel(vspId, version, serviceModelToStore); + //Extracting the compostion data from the output service model of the first phase of + + // translation + compositionEntityDataManager + .saveCompositionData(vspId, version, compositionDataExtractor.extractServiceCompositionData(serviceModelToExtract)); + } } - } - public Map<String, String> getVspComponentIdNameInfo(String vspId, Version version) { - Collection<ComponentEntity> updatedVspComponents = - componentDao.list(new ComponentEntity(vspId, version, null)); - Map<String, String> vspComponentIdNameMap = new HashMap<>(); - if (CollectionUtils.isNotEmpty(updatedVspComponents)) { - vspComponentIdNameMap = updatedVspComponents.stream() - .filter(componentEntity -> componentEntity.getComponentCompositionData() != null) - .collect(Collectors.toMap(ComponentEntity::getId, - componentEntity -> componentEntity.getComponentCompositionData().getName())); + public void updateVspComponentDependencies(String vspId, Version version, Map<String, String> vspComponentIdNameInfoBeforeProcess, + Collection<ComponentDependencyModelEntity> componentDependenciesBeforeDelete) { + Map<String, String> updatedVspComponentNameIdInfo = getVspComponentNameIdInfo(vspId, version); + if (MapUtils.isNotEmpty(updatedVspComponentNameIdInfo)) { + Set<String> updatedVspComponentNames = updatedVspComponentNameIdInfo.keySet(); + if (CollectionUtils.isNotEmpty(componentDependenciesBeforeDelete)) { + restoreComponentDependencies(vspId, version, vspComponentIdNameInfoBeforeProcess, componentDependenciesBeforeDelete, + updatedVspComponentNames, updatedVspComponentNameIdInfo); + } + } + } + private void restoreComponentDependencies(String vspId, Version version, Map<String, String> vspComponentIdNameInfoBeforeProcess, + Collection<ComponentDependencyModelEntity> componentDependenciesBeforeDelete, + Set<String> updatedVspComponentNames, Map<String, String> updatedVspComponentNameIdInfo) { + for (ComponentDependencyModelEntity componentDependency : componentDependenciesBeforeDelete) { + String sourceComponentName = vspComponentIdNameInfoBeforeProcess.get(componentDependency.getSourceComponentId()); + String targetComponentName = vspComponentIdNameInfoBeforeProcess.get(componentDependency.getTargetComponentId()); + if (updatedVspComponentNames.contains(sourceComponentName) && (updatedVspComponentNames.contains(targetComponentName))) { + ComponentDependencyModelEntity restoredDependency = new ComponentDependencyModelEntity(vspId, version, null); + String newSourceComponentId = updatedVspComponentNameIdInfo.get(sourceComponentName); + restoredDependency.setSourceComponentId(newSourceComponentId); + String newTargetComponentId = updatedVspComponentNameIdInfo.get(targetComponentName); + restoredDependency.setTargetComponentId(newTargetComponentId); + restoredDependency.setRelation(componentDependency.getRelation()); + componentDependencyModelDao.create(restoredDependency); + } + } } - return vspComponentIdNameMap; - } - public Collection<ComponentDependencyModelEntity> getComponentDependenciesBeforeDelete(String - vspId, Version version) { - return componentDependencyModelDao.list(new ComponentDependencyModelEntity(vspId, - version, null)); - } + public Map<String, String> getVspComponentIdNameInfo(String vspId, Version version) { + Collection<ComponentEntity> updatedVspComponents = componentDao.list(new ComponentEntity(vspId, version, null)); + Map<String, String> vspComponentIdNameMap = new HashMap<>(); + if (CollectionUtils.isNotEmpty(updatedVspComponents)) { + vspComponentIdNameMap = updatedVspComponents.stream().filter(componentEntity -> componentEntity.getComponentCompositionData() != null) + .collect(Collectors.toMap(ComponentEntity::getId, componentEntity -> componentEntity.getComponentCompositionData().getName())); + } + return vspComponentIdNameMap; + } - private Map<String, String> getVspComponentNameIdInfo(String vspId, - Version version) { - Collection<ComponentEntity> updatedVspComponents = - componentDao.list(new ComponentEntity(vspId, version, null)); - Map<String, String> vspComponentNameIdMap = new HashMap<>(); - if (CollectionUtils.isNotEmpty(updatedVspComponents)) { - vspComponentNameIdMap = updatedVspComponents.stream() - .filter(componentEntity -> componentEntity.getComponentCompositionData() != null) - .collect(Collectors - .toMap(componentEntity -> componentEntity.getComponentCompositionData().getName(), - ComponentEntity::getId)); + public Collection<ComponentDependencyModelEntity> getComponentDependenciesBeforeDelete(String vspId, Version version) { + return componentDependencyModelDao.list(new ComponentDependencyModelEntity(vspId, version, null)); } - return vspComponentNameIdMap; - } + private Map<String, String> getVspComponentNameIdInfo(String vspId, Version version) { + Collection<ComponentEntity> updatedVspComponents = componentDao.list(new ComponentEntity(vspId, version, null)); + Map<String, String> vspComponentNameIdMap = new HashMap<>(); + if (CollectionUtils.isNotEmpty(updatedVspComponents)) { + vspComponentNameIdMap = updatedVspComponents.stream().filter(componentEntity -> componentEntity.getComponentCompositionData() != null) + .collect(Collectors.toMap(componentEntity -> componentEntity.getComponentCompositionData().getName(), ComponentEntity::getId)); + } + return vspComponentNameIdMap; + } } |