From c09a82325a1518bd1fce7221b9be2fac32511f2d Mon Sep 17 00:00:00 2001 From: ojasdubey Date: Wed, 3 Jan 2018 17:53:32 +0530 Subject: Heat reupload component dependency issue fix Resolved merge conflict Change-Id: Ib9561aa7d5814c3dd9c6015214d656a2800984a9 Issue-ID: SDC-872 Signed-off-by: ojasdubey --- .../impl/orchestration/OrchestrationUtil.java | 49 +++++++++++++--------- .../OrchestrationTemplateProcessZipHandler.java | 5 ++- 2 files changed, 33 insertions(+), 21 deletions(-) (limited to 'openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java') 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 8211749fe1..73598a2aee 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 @@ -16,6 +16,8 @@ package org.openecomp.sdc.vendorsoftwareproduct.impl.orchestration; +import static org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductConstants.UniqueValues.PROCESS_NAME; + import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.MapUtils; import org.openecomp.core.model.dao.ServiceModelDao; @@ -77,8 +79,6 @@ import java.util.Optional; import java.util.Set; import java.util.stream.Collectors; -import static org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductConstants.UniqueValues.PROCESS_NAME; - public class OrchestrationUtil { public static final String ORCHESTRATION_CONFIG_NAMESPACE = "orchestration"; @@ -344,39 +344,42 @@ public class OrchestrationUtil { } public void updateVspComponentDependencies(String vspId, Version version, - Map vspComponentIdNameInfoBeforeProcess) { + Map + vspComponentIdNameInfoBeforeProcess, + Collection + componentDependenciesBeforeDelete) { Map updatedVspComponentNameIdInfo = getVspComponentNameIdInfo(vspId, version); if (MapUtils.isNotEmpty(updatedVspComponentNameIdInfo)) { Set updatedVspComponentNames = updatedVspComponentNameIdInfo.keySet(); - Collection componentDependencies = - componentDependencyModelDao.list(new ComponentDependencyModelEntity(vspId, - version, null)); - if (CollectionUtils.isNotEmpty(componentDependencies)) { - updateComponentDependency(vspComponentIdNameInfoBeforeProcess, componentDependencies, - updatedVspComponentNames, updatedVspComponentNameIdInfo); + if (CollectionUtils.isNotEmpty(componentDependenciesBeforeDelete)) { + restoreComponentDependencies(vspId, version, vspComponentIdNameInfoBeforeProcess, + componentDependenciesBeforeDelete, updatedVspComponentNames, + updatedVspComponentNameIdInfo); } } } - private void updateComponentDependency(Map vspComponentIdNameInfoBeforeProcess, - Collection - componentDependencies, - Set updatedVspComponentNames, - Map updatedVspComponentNameIdInfo) { - for (ComponentDependencyModelEntity componentDependency : componentDependencies) { + private void restoreComponentDependencies(String vspId, Version version, + Map vspComponentIdNameInfoBeforeProcess, + Collection + componentDependenciesBeforeDelete, + Set updatedVspComponentNames, + Map 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); - componentDependency.setSourceComponentId(newSourceComponentId); + restoredDependency.setSourceComponentId(newSourceComponentId); String newTargetComponentId = updatedVspComponentNameIdInfo.get(targetComponentName); - componentDependency.setTargetComponentId(newTargetComponentId); - componentDependencyModelDao.update(componentDependency); - } else { - componentDependencyModelDao.delete(componentDependency); + restoredDependency.setTargetComponentId(newTargetComponentId); + restoredDependency.setRelation(componentDependency.getRelation()); + componentDependencyModelDao.create(restoredDependency); } } } @@ -395,6 +398,12 @@ public class OrchestrationUtil { return vspComponentIdNameMap; } + public Collection getComponentDependenciesBeforeDelete(String + vspId, Version version) { + return componentDependencyModelDao.list(new ComponentDependencyModelEntity(vspId, + version, null)); + } + private Map getVspComponentNameIdInfo(String vspId, Version version) { Collection updatedVspComponents = diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/orchestration/process/OrchestrationTemplateProcessZipHandler.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/orchestration/process/OrchestrationTemplateProcessZipHandler.java index 13728b0c72..41ca8ace9a 100644 --- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/orchestration/process/OrchestrationTemplateProcessZipHandler.java +++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/orchestration/process/OrchestrationTemplateProcessZipHandler.java @@ -35,6 +35,7 @@ import org.openecomp.sdc.logging.messages.AuditMessages; 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.dao.type.ComponentDependencyModelEntity; import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentMonitoringUploadEntity; import org.openecomp.sdc.vendorsoftwareproduct.dao.type.OrchestrationTemplateCandidateData; import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ProcessEntity; @@ -122,6 +123,8 @@ public class OrchestrationTemplateProcessZipHandler implements OrchestrationTemp OrchestrationUtil orchestrationUtil = new OrchestrationUtil(); Map vspComponentIdNameInfoBeforeProcess = orchestrationUtil.getVspComponentIdNameInfo(vspId, version); + Collection componentDependenciesBeforeDelete = + orchestrationUtil.getComponentDependenciesBeforeDelete(vspId, version); orchestrationUtil .backupComponentsQuestionnaireBeforeDelete(vspId, version, componentsQuestionnaire, componentNicsQuestionnaire, componentMibList, processes, processArtifact); @@ -150,7 +153,7 @@ public class OrchestrationTemplateProcessZipHandler implements OrchestrationTemp orchestrationUtil.retainComponentQuestionnaireData(vspId, version, componentsQuestionnaire, componentNicsQuestionnaire, componentMibList, processes, processArtifact); orchestrationUtil.updateVspComponentDependencies(vspId, version, - vspComponentIdNameInfoBeforeProcess); + vspComponentIdNameInfoBeforeProcess, componentDependenciesBeforeDelete); LOGGER.audit(AuditMessages.AUDIT_MSG + AuditMessages.HEAT_TRANSLATION_COMPLETED + vspId); uploadFileResponse.addStructureErrors(uploadErrors); -- cgit 1.2.3-korg