diff options
author | talig <talig@amdocs.com> | 2018-01-01 14:52:01 +0200 |
---|---|---|
committer | talig <talig@amdocs.com> | 2018-01-01 14:52:01 +0200 |
commit | 25ca73d85757869a6d9cc33861070778503ff153 (patch) | |
tree | e947cd38990afb0e8d9b230df0daf5f436ee3435 /openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main | |
parent | 664c11581c7ea5d36e36af1fe7b26e14271e77fe (diff) |
Remove onboarding BE redundant healers
Change-Id: I6b849608e64f88c6b91b1bc772fdb33aaa7e8245
Issue-ID: SDC-845
Signed-off-by: talig <talig@amdocs.com>
Diffstat (limited to 'openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main')
11 files changed, 0 insertions, 1448 deletions
diff --git a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/ComponentQuestionnaireHealer.java b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/ComponentQuestionnaireHealer.java deleted file mode 100644 index 83395e015a..0000000000 --- a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/ComponentQuestionnaireHealer.java +++ /dev/null @@ -1,202 +0,0 @@ -package org.openecomp.sdc.healing.healers; - -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.google.gson.JsonParser; -import org.apache.commons.lang3.StringUtils; -import org.openecomp.sdc.healing.interfaces.Healer; -import org.openecomp.sdc.logging.context.impl.MdcDataDebugMessage; -import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDao; -import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDaoFactory; -import org.openecomp.sdc.vendorsoftwareproduct.dao.ComputeDao; -import org.openecomp.sdc.vendorsoftwareproduct.dao.ComputeDaoFactory; -import org.openecomp.sdc.vendorsoftwareproduct.dao.ImageDao; -import org.openecomp.sdc.vendorsoftwareproduct.dao.ImageDaoFactory; -import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity; -import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComputeEntity; -import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ImageEntity; -import org.openecomp.sdc.versioning.dao.types.Version; - -import java.util.Collection; -import java.util.Objects; - - -public class ComponentQuestionnaireHealer implements Healer { - - private static final String GENERAL = "general"; - private static final String IMAGE = "image"; - private static final String FORMAT = "format"; - private static final String CPU_OVER_SUBSCRIPTION_RATIO = "CpuOverSubscriptionRatio"; - private static final String MEMORY_RAM = "MemoryRAM"; - private static final String VM_SIZING = "vmSizing"; - private static final String COMPUTE = "compute"; - private static final String NUM_OF_VMS = "numOfVMs"; - private static final String DISK = "disk"; - private static final String IO_OP_PER_SEC = "IOOperationsPerSec"; - private static final String COMPUTE_CPU_OVER_SUBSCRIPTION_RATIO = "cpuOverSubscriptionRatio"; - private static final String COMPUTE_MEMORY_RAM = "memoryRAM"; - private static final String COMPUTE_IO_OP_PER_SEC = "ioOperationsPerSec"; - private static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage(); - private final ComponentDao componentDao; - private final ComputeDao computeDao; - private final ImageDao imageDao; - - public ComponentQuestionnaireHealer() { - this.componentDao = ComponentDaoFactory.getInstance().createInterface(); - this.computeDao = ComputeDaoFactory.getInstance().createInterface(); - this.imageDao = ImageDaoFactory.getInstance().createInterface(); - } - - public ComponentQuestionnaireHealer(ComponentDao componentDao, - ComputeDao computeDao, ImageDao imageDao) { - this.componentDao = componentDao; - this.computeDao = computeDao; - this.imageDao = imageDao; - } - - @Override - public Object heal(String vspId, Version version) throws Exception { - mdcDataDebugMessage.debugEntryMessage("VSP ID", vspId); - - Collection<ComponentEntity> componentEntities = - componentDao.list(new ComponentEntity(vspId, version, null)); - componentEntities.forEach(componentEntity -> { - ComponentEntity componentQuestionnaireData = - componentDao.getQuestionnaireData(vspId, version, componentEntity.getId()); - String questionnaire = Objects.isNull(componentQuestionnaireData) ? null - : componentQuestionnaireData.getQuestionnaireData(); - - if (StringUtils.isNotBlank(questionnaire)) { - JsonParser jsonParser = new JsonParser(); - JsonObject json = (JsonObject) jsonParser.parse(questionnaire); - - Collection<ComputeEntity> computeEntities = computeDao.list(new ComputeEntity(vspId, - version, componentEntity.getId(), null)); - populateComputeQuestionnaire(json, computeEntities); - - Collection<ImageEntity> imageEntities = imageDao.list(new ImageEntity(vspId, - version, componentEntity.getId(), null)); - populateImageQuestionnaire(json, imageEntities); - - processDiskAttribute(json, "bootDiskSizePerVM"); - processDiskAttribute(json, "ephemeralDiskSizePerVM"); - - String questionnaireData = json.toString(); - componentEntity.setQuestionnaireData(questionnaireData); //Added to validate data in Junit - - componentDao.updateQuestionnaireData(vspId, version, componentEntity.getId(), - questionnaireData); - } - }); - return componentEntities; - } - - /** - * Move Disk Atributes from genral/image/ to genral/disk in component questionnaire itself - * - * @param json Component Json - * @param diskAttrName Name of disk attribute - */ - private void processDiskAttribute(JsonObject json, String diskAttrName) { - boolean isBootDisksizePerVM = isDiskAttributePresent(json, diskAttrName); - if (isBootDisksizePerVM) { - JsonObject diskJsonObject = json.getAsJsonObject(GENERAL).getAsJsonObject(DISK); - if (diskJsonObject == null) { - diskJsonObject = new JsonObject(); - } - - diskJsonObject.addProperty(diskAttrName, json.getAsJsonObject(GENERAL).getAsJsonObject(IMAGE) - .get(diskAttrName).getAsNumber()); - - json.getAsJsonObject(GENERAL).add(DISK, diskJsonObject); - json.getAsJsonObject(GENERAL).getAsJsonObject(IMAGE).remove(diskAttrName); - } - } - - private boolean isDiskAttributePresent(JsonObject json, String diskAttrName) { - return json.getAsJsonObject(GENERAL) != null - && json.getAsJsonObject(GENERAL).getAsJsonObject(IMAGE) != null - && json.getAsJsonObject(GENERAL).getAsJsonObject(IMAGE).get(diskAttrName) - != null; - } - - /** - * Move the required attributes from component to Image Questionnaire - * - * @param json Component Json - * @param imageEntities All images present in component - */ - private void populateImageQuestionnaire(JsonObject json, Collection<ImageEntity> imageEntities) { - JsonObject general = getJsonObject(json, GENERAL); - boolean isImageFormat = general != null && json - .getAsJsonObject(GENERAL) - .getAsJsonObject(IMAGE) != null && json.getAsJsonObject(GENERAL).getAsJsonObject(IMAGE) - .get(FORMAT) != null; - if (isImageFormat) { - JsonObject image = getJsonObject(general, IMAGE); - JsonElement jsonElement = image.get(FORMAT); - JsonObject jsonObject = new JsonObject(); - jsonObject.add(FORMAT, jsonElement); - imageEntities.forEach(imageEntity -> imageDao.updateQuestionnaireData(imageEntity.getVspId(), - imageEntity.getVersion(), imageEntity.getComponentId(), - imageEntity.getId(), jsonObject.toString())); - image.remove(FORMAT); - } - } - - private void populateComputeQuestionnaire(JsonObject json, Collection<ComputeEntity> - computeEntities) { - JsonObject compute = getJsonObject(json, COMPUTE); - if (compute != null) { - JsonObject vmSizing = handleVmSizing(compute); - vmSizing = handleNumOfVm(compute, vmSizing); - - if (vmSizing != null) { - JsonObject computeQuestionnaireJsonObject = new JsonObject(); - computeQuestionnaireJsonObject.add(VM_SIZING, vmSizing); - String computeQuestionnaire = computeQuestionnaireJsonObject.toString(); - computeEntities.forEach( - computeEntity -> computeDao.updateQuestionnaireData(computeEntity.getVspId(), - computeEntity.getVersion(), computeEntity.getComponentId(), - computeEntity.getId(), computeQuestionnaire)); - } - } - } - - private JsonObject handleVmSizing(JsonObject compute) { - JsonObject vmSizing = getJsonObject(compute, VM_SIZING); - if (vmSizing != null) { - JsonElement ioOperationsPerSec = vmSizing.get(IO_OP_PER_SEC); - if (ioOperationsPerSec != null) { - vmSizing.addProperty(COMPUTE_IO_OP_PER_SEC, ioOperationsPerSec.getAsNumber()); - vmSizing.remove(IO_OP_PER_SEC); - } - compute.remove(VM_SIZING); - } - return vmSizing; - } - - private JsonObject handleNumOfVm(JsonObject compute, JsonObject vmSizing) { - JsonObject numberOfVms = getJsonObject(compute, NUM_OF_VMS); - if (numberOfVms != null) { - JsonElement cpuRatio = numberOfVms.get(CPU_OVER_SUBSCRIPTION_RATIO); - JsonElement memoryRam = numberOfVms.get(MEMORY_RAM); - if (vmSizing == null && (cpuRatio != null || memoryRam != null)) { - vmSizing = new JsonObject(); - } - if (cpuRatio != null) { - vmSizing.addProperty(COMPUTE_CPU_OVER_SUBSCRIPTION_RATIO, cpuRatio.getAsString()); - numberOfVms.remove(CPU_OVER_SUBSCRIPTION_RATIO); - } - if (memoryRam != null) { - vmSizing.addProperty(COMPUTE_MEMORY_RAM, memoryRam.getAsString()); - numberOfVms.remove(MEMORY_RAM); - } - } - return vmSizing; - } - - private JsonObject getJsonObject(JsonObject json, String name) { - return json.getAsJsonObject(name); - } -} diff --git a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/CompositionDataHealer.java b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/CompositionDataHealer.java deleted file mode 100644 index e7a5e30f2d..0000000000 --- a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/CompositionDataHealer.java +++ /dev/null @@ -1,271 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * 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.sdc.healing.healers; - -import org.apache.commons.collections4.CollectionUtils; -import org.apache.commons.lang3.tuple.ImmutablePair; -import org.apache.commons.lang3.tuple.Pair; -import org.openecomp.core.model.dao.ServiceModelDao; -import org.openecomp.core.model.dao.ServiceModelDaoFactory; -import org.openecomp.core.model.types.ServiceElement; -import org.openecomp.core.translator.datatypes.TranslatorOutput; -import org.openecomp.core.utilities.file.FileContentHandler; -import org.openecomp.core.utilities.json.JsonUtil; -import org.openecomp.core.utilities.orchestration.OnboardingTypesEnum; -import org.openecomp.sdc.common.utils.CommonUtil; -import org.openecomp.sdc.healing.interfaces.Healer; -import org.openecomp.sdc.logging.api.Logger; -import org.openecomp.sdc.logging.api.LoggerFactory; -import org.openecomp.sdc.logging.context.impl.MdcDataDebugMessage; -import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel; -import org.openecomp.sdc.translator.services.heattotosca.HeatToToscaUtil; -import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDao; -import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDaoFactory; -import org.openecomp.sdc.vendorsoftwareproduct.dao.ComputeDao; -import org.openecomp.sdc.vendorsoftwareproduct.dao.ComputeDaoFactory; -import org.openecomp.sdc.vendorsoftwareproduct.dao.DeploymentFlavorDao; -import org.openecomp.sdc.vendorsoftwareproduct.dao.DeploymentFlavorDaoFactory; -import org.openecomp.sdc.vendorsoftwareproduct.dao.ImageDao; -import org.openecomp.sdc.vendorsoftwareproduct.dao.ImageDaoFactory; -import org.openecomp.sdc.vendorsoftwareproduct.dao.NetworkDao; -import org.openecomp.sdc.vendorsoftwareproduct.dao.NetworkDaoFactory; -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.type.ComponentEntity; -import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComputeEntity; -import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ImageEntity; -import org.openecomp.sdc.vendorsoftwareproduct.dao.type.NetworkEntity; -import org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity; -import org.openecomp.sdc.vendorsoftwareproduct.dao.type.OrchestrationTemplateEntity; -import org.openecomp.sdc.vendorsoftwareproduct.factory.CompositionDataExtractorFactory; -import org.openecomp.sdc.vendorsoftwareproduct.factory.CompositionEntityDataManagerFactory; -import org.openecomp.sdc.vendorsoftwareproduct.services.composition.CompositionDataExtractor; -import org.openecomp.sdc.vendorsoftwareproduct.services.composition.CompositionEntityDataManager; -import org.openecomp.sdc.vendorsoftwareproduct.types.composition.Component; -import org.openecomp.sdc.vendorsoftwareproduct.types.composition.ComponentData; -import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionData; -import org.openecomp.sdc.versioning.dao.types.Version; - -import java.io.IOException; -import java.util.Collection; -import java.util.Objects; -import java.util.Optional; - -public class CompositionDataHealer implements Healer { - private static final Version VERSION00 = new Version(0, 0); - private static final Version VERSION01 = new Version(0, 1); - private static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage(); - - private static final OrchestrationTemplateDao orchestrationTemplateDataDao = - OrchestrationTemplateDaoFactory.getInstance().createInterface(); - - private static ComponentDao componentDao = ComponentDaoFactory.getInstance().createInterface(); - private static NicDao nicDao = NicDaoFactory.getInstance().createInterface(); - private static NetworkDao networkDao = NetworkDaoFactory.getInstance().createInterface(); - private static ComputeDao computeDao = ComputeDaoFactory.getInstance().createInterface(); - private static DeploymentFlavorDao deloymentFlavorDao = DeploymentFlavorDaoFactory.getInstance() - .createInterface(); - private static ImageDao imageDao = ImageDaoFactory.getInstance().createInterface(); - - private static final ServiceModelDao<ToscaServiceModel, ServiceElement> serviceModelDao = - ServiceModelDaoFactory.getInstance().createInterface(); - private static CompositionDataExtractor compositionDataExtractor = - CompositionDataExtractorFactory.getInstance().createInterface(); - private static CompositionEntityDataManager compositionEntityDataManager = - CompositionEntityDataManagerFactory.getInstance().createInterface(); - - private final Logger log = (Logger) LoggerFactory.getLogger(this.getClass().getName()); - - public CompositionDataHealer() { - } - - @Override - public Optional<CompositionData> heal(String vspId, - Version version) throws IOException { - mdcDataDebugMessage.debugEntryMessage(null); - - Collection<ComponentEntity> componentEntities = - componentDao.list(new ComponentEntity(vspId, version, null)); - Collection<NicEntity> nicEntities = nicDao.listByVsp(vspId, version); - Collection<NetworkEntity> networkEntities = - networkDao.list(new NetworkEntity(vspId, version, null)); - - Optional<Pair<ToscaServiceModel, ToscaServiceModel>> serviceModels = - getServiceModelForHealing(vspId, version); - CompositionData compositionData = null; - if (!doesVspNeedCompositionDataHealing(componentEntities, networkEntities, nicEntities)) { - updateComponentsDisplayNames(componentEntities); - mdcDataDebugMessage.debugExitMessage(null, null); - } else { - if (!serviceModels.isPresent()) { - mdcDataDebugMessage.debugExitMessage(null, null); - return Optional.empty(); - } - compositionData = serviceModels.isPresent() ? healCompositionData(vspId, version, - serviceModels.get()) : null; - } - - if (serviceModels.isPresent()) { - compositionData = - getCompositionDataForHealing(vspId, version, serviceModels.get()); - HealNfodData(vspId, version, compositionData); - } - mdcDataDebugMessage.debugExitMessage(null, null); - return Optional.ofNullable(compositionData); - } - - private void HealNfodData(String vspId, Version version, CompositionData compositionData) { - Collection<ComponentEntity> componentEntities; - componentEntities = componentDao.list(new ComponentEntity(vspId, version, null)); - - Collection<ComputeEntity> computeEntities = computeDao.listByVsp(vspId, version); - Collection<ImageEntity> imageEntities = imageDao.listByVsp(vspId, version); - - if (CollectionUtils.isEmpty(computeEntities) && CollectionUtils.isEmpty(imageEntities)) { - for (Component component : compositionData.getComponents()) { - String componentId = null; - for (ComponentEntity componentEntity : componentEntities) { - if (componentEntity.getComponentCompositionData().getName().equals(component.getData() - .getName())) { - componentId = componentEntity.getId(); - break; - } - } - compositionEntityDataManager.saveComputesFlavorByComponent(vspId, version, component, - componentId); - compositionEntityDataManager.saveImagesByComponent(vspId, version, component, - componentId); - } - - } - } - - private CompositionData healCompositionData(String vspId, Version version, - Pair<ToscaServiceModel, ToscaServiceModel> toscaServiceModels) { - CompositionData compositionData = - getCompositionDataForHealing(vspId, version, toscaServiceModels); - compositionEntityDataManager.saveCompositionData(vspId, version, compositionData); - return compositionData; - } - - private boolean doesVspNeedCompositionDataHealing(Collection<ComponentEntity> componentEntities, - Collection<NetworkEntity> networkEntities, - Collection<NicEntity> nicEntities) { - - return (CollectionUtils.isEmpty(componentEntities) && CollectionUtils.isEmpty(nicEntities) && - CollectionUtils.isEmpty(networkEntities)); - } - - private CompositionData getCompositionDataForHealing(String vspId, Version version, - Pair<ToscaServiceModel, ToscaServiceModel> toscaServiceModels) { - mdcDataDebugMessage.debugEntryMessage(null); - - if (Objects.isNull(toscaServiceModels)) { - return null; - } - - CompositionData compositionData = compositionDataExtractor - .extractServiceCompositionData(toscaServiceModels.getRight()); - serviceModelDao.storeServiceModel(vspId, version, toscaServiceModels.getLeft()); - - mdcDataDebugMessage.debugExitMessage(null); - return compositionData; - } - - private void updateComponentsDisplayNames(Collection<ComponentEntity> componentEntities) { - if (CollectionUtils.isEmpty(componentEntities)) { - return; - } - - for (ComponentEntity component : componentEntities) { - updateComponentName(component); - componentDao.update(component); - } - } - - private void updateComponentName(ComponentEntity component) { - mdcDataDebugMessage.debugEntryMessage("VSP id, component id", component.getVspId(), component - .getId()); - - ComponentData componentData = - JsonUtil.json2Object(component.getCompositionData(), ComponentData.class); - componentData - .setDisplayName(compositionDataExtractor.getComponentDisplayName(componentData.getName())); - String displayName = componentData.getDisplayName(); - componentData.setName(componentData.getName().replace("com.att.d2", "org.openecomp")); - componentData.setVfcCode(displayName); - component.setCompositionData(JsonUtil.object2Json(componentData)); - - mdcDataDebugMessage.debugExitMessage("VSP id, component id", component.getVspId(), component - .getId()); - - } - - private Optional<Pair<ToscaServiceModel, ToscaServiceModel>> getServiceModelForHealing(String - vspId, - Version - version) - throws IOException { - mdcDataDebugMessage.debugEntryMessage("VSP id", vspId); - - /*OrchestrationTemplateEntity uploadData = - vendorSoftwareProductDao.getUploadData(new OrchestrationTemplateEntity(vspId, version));*/ - OrchestrationTemplateEntity uploadData = orchestrationTemplateDataDao.get(vspId, version); - - if (Objects.isNull(uploadData) || Objects.isNull(uploadData.getContentData())) { - return Optional.empty(); - } - - TranslatorOutput translatorOutput = getTranslatorOutputForHealing(uploadData); - - if (Objects.isNull(translatorOutput)) { - return Optional.empty(); - } - - try { - serviceModelDao.storeServiceModel(vspId, version, - translatorOutput.getToscaServiceModel()); - } catch (Exception e) { - log.debug("", e); - return Optional.empty(); - } - - mdcDataDebugMessage.debugExitMessage("VSP id", vspId); - return Optional.of(new ImmutablePair<>(translatorOutput.getToscaServiceModel(), translatorOutput - .getNonUnifiedToscaServiceModel())); - } - - private TranslatorOutput getTranslatorOutputForHealing(OrchestrationTemplateEntity uploadData) { - - FileContentHandler fileContentHandler; - try { - fileContentHandler = - CommonUtil.validateAndUploadFileContent( - OnboardingTypesEnum.ZIP, uploadData.getContentData().array()); - return HeatToToscaUtil.loadAndTranslateTemplateData(fileContentHandler); - } catch (Exception e) { - log.debug("", e); - return null; - } - } -} diff --git a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/FileDataStructureHealer.java b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/FileDataStructureHealer.java deleted file mode 100644 index 96b91091ff..0000000000 --- a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/FileDataStructureHealer.java +++ /dev/null @@ -1,91 +0,0 @@ -/* - * Copyright © 2016-2017 European Support Limited - * - * 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. - */ - -package org.openecomp.sdc.healing.healers; - -import org.openecomp.core.utilities.file.FileContentHandler; -import org.openecomp.core.utilities.json.JsonUtil; -import org.openecomp.core.utilities.orchestration.OnboardingTypesEnum; -import org.openecomp.sdc.common.utils.CommonUtil; -import org.openecomp.sdc.healing.interfaces.Healer; -import org.openecomp.sdc.logging.context.impl.MdcDataDebugMessage; -import org.openecomp.sdc.vendorsoftwareproduct.dao.OrchestrationTemplateCandidateDao; -import org.openecomp.sdc.vendorsoftwareproduct.dao.OrchestrationTemplateCandidateDaoFactory; -import org.openecomp.sdc.vendorsoftwareproduct.dao.type.OrchestrationTemplateCandidateData; -import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails; -import org.openecomp.sdc.vendorsoftwareproduct.factory.CandidateServiceFactory; -import org.openecomp.sdc.vendorsoftwareproduct.services.utils.CandidateEntityBuilder; -import org.openecomp.sdc.vendorsoftwareproduct.types.candidateheat.FilesDataStructure; -import org.openecomp.sdc.versioning.dao.types.Version; - -import java.util.HashMap; -import java.util.Optional; - -public class FileDataStructureHealer implements Healer { - private static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage(); - - @Override - public Optional<FilesDataStructure> heal(String vspId, - Version version) throws Exception { - mdcDataDebugMessage.debugEntryMessage(null); - - OrchestrationTemplateCandidateDao candidateDao = - OrchestrationTemplateCandidateDaoFactory.getInstance().createInterface(); - - OrchestrationTemplateCandidateData candidateData = candidateDao.get(vspId, version); - - if (candidateData == null || candidateData.getContentData() == null || - candidateData.getFilesDataStructure() != null) { - return Optional.of(new FilesDataStructure()); - } - - Optional<FilesDataStructure> filesDataStructure = - healFilesDataStructure(vspId, version, candidateData); - - filesDataStructure - .ifPresent(structure -> candidateDao.updateStructure(vspId, version, structure)); - - mdcDataDebugMessage.debugExitMessage(null); - return filesDataStructure; - } - - private Optional<FilesDataStructure> healFilesDataStructure( - String vspId, Version version, OrchestrationTemplateCandidateData candidateData) - throws Exception { - mdcDataDebugMessage.debugEntryMessage(null); - - Optional<FilesDataStructure> healingResult; - byte[] byteContentData = candidateData.getContentData().array(); - FileContentHandler fileContentHandler; - try { - fileContentHandler = - CommonUtil.validateAndUploadFileContent(OnboardingTypesEnum.ZIP, byteContentData); - - String filesDataStructure = - new CandidateEntityBuilder(CandidateServiceFactory.getInstance().createInterface()) - .buildCandidateEntityFromZip(new VspDetails(vspId, version), byteContentData, - fileContentHandler, new HashMap<>()).getFilesDataStructure(); - - healingResult = - Optional.of(JsonUtil.json2Object(filesDataStructure, FilesDataStructure.class)); - } catch (Exception e) { - healingResult = Optional.empty(); - } - - mdcDataDebugMessage.debugExitMessage(null); - return healingResult; - } -} diff --git a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/ForwarderCapabilityHealer.java b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/ForwarderCapabilityHealer.java deleted file mode 100644 index f3e5f4d568..0000000000 --- a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/ForwarderCapabilityHealer.java +++ /dev/null @@ -1,145 +0,0 @@ -/* - * Copyright © 2016-2017 European Support Limited - * - * 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. - */ - -package org.openecomp.sdc.healing.healers; - -import org.apache.commons.collections.MapUtils; -import org.openecomp.core.model.dao.ServiceModelDao; -import org.openecomp.core.model.dao.ServiceModelDaoFactory; -import org.openecomp.core.model.types.ServiceElement; -import org.openecomp.core.utilities.orchestration.OnboardingTypesEnum; -import org.openecomp.sdc.common.togglz.ToggleableFeature; -import org.openecomp.sdc.healing.interfaces.Healer; -import org.openecomp.sdc.logging.context.impl.MdcDataDebugMessage; -import org.openecomp.sdc.tosca.datatypes.ToscaNodeType; -import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel; -import org.openecomp.sdc.tosca.datatypes.model.NodeTemplate; -import org.openecomp.sdc.tosca.datatypes.model.ServiceTemplate; -import org.openecomp.sdc.tosca.services.DataModelUtil; -import org.openecomp.sdc.tosca.services.ToscaAnalyzerService; -import org.openecomp.sdc.tosca.services.impl.ToscaAnalyzerServiceImpl; -import org.openecomp.sdc.translator.services.heattotosca.globaltypes.GlobalTypesServiceTemplates; -import org.openecomp.sdc.versioning.dao.types.Version; - -import java.util.Arrays; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.Optional; - -public class ForwarderCapabilityHealer implements Healer { - - private MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage(); - - private final ServiceModelDao<ToscaServiceModel, ServiceElement> serviceModelDao; - private static ToscaAnalyzerService toscaAnalyzerService = new ToscaAnalyzerServiceImpl(); - private static final String FORWARDER_CAPABILITY_ID = "Forwarder"; - private static final String UNDERSCORE = "_"; - - public ForwarderCapabilityHealer() { - this.serviceModelDao = - ServiceModelDaoFactory.getInstance().createInterface(); - } - - public ForwarderCapabilityHealer(ServiceModelDao<ToscaServiceModel, ServiceElement> - serviceModelDao, - ToscaAnalyzerService toscaAnalyzerService){ - this.serviceModelDao = serviceModelDao; - this.toscaAnalyzerService = toscaAnalyzerService; - } - - @Override - public Object heal(String vspId, Version version) throws Exception { - if(!ToggleableFeature.FORWARDER_CAPABILITY.isActive()) { - return Optional.empty(); - } - - ToscaServiceModel serviceModel = - serviceModelDao.getServiceModel(vspId, version); - - if (Objects.isNull(serviceModel) - || MapUtils.isEmpty(serviceModel.getServiceTemplates())) { - return Optional.empty(); - } - - addForwarderCapabilityToServiceModel(serviceModel); - serviceModelDao.deleteAll(vspId, version); - serviceModelDao.storeServiceModel(vspId, version, serviceModel); - - return Optional.of(serviceModel); - } - - private void addForwarderCapabilityToServiceModel(ToscaServiceModel serviceModel) { - serviceModel.getServiceTemplates().entrySet().stream().filter(serviceTemplateEntry -> Objects - .nonNull(serviceTemplateEntry.getValue())) - .forEach(serviceTemplateEntry -> handleServiceTemplate(serviceTemplateEntry.getValue(), - serviceModel)); - - handleGlobalTypes(serviceModel); - } - - private void handleGlobalTypes(ToscaServiceModel serviceModel) { - Map<String, ServiceTemplate> globalTypesServiceTemplates = - GlobalTypesServiceTemplates.getGlobalTypesServiceTemplates(OnboardingTypesEnum.ZIP); - - if (MapUtils.isEmpty(globalTypesServiceTemplates)) { - return; - } - - globalTypesServiceTemplates.entrySet() - .stream() - .filter(globalTypesServiceTemplateEntry -> Objects.nonNull - (globalTypesServiceTemplateEntry.getValue())) - .forEach(globalTypesServiceTemplateEntry -> serviceModel.addServiceTemplate - (globalTypesServiceTemplateEntry.getKey(), globalTypesServiceTemplateEntry.getValue())); - } - - private void handleServiceTemplate(ServiceTemplate serviceTemplate, - ToscaServiceModel toscaServiceModel) { - if (Objects.isNull(serviceTemplate.getTopology_template()) - || MapUtils.isEmpty(serviceTemplate.getTopology_template().getNode_templates())) { - return; - } - - Map<String, NodeTemplate> nodeTemplates = - serviceTemplate.getTopology_template().getNode_templates(); - - nodeTemplates.entrySet().stream() - .filter(nodeTemplateEntry -> - toscaAnalyzerService.isTypeOf(nodeTemplateEntry.getValue(), - ToscaNodeType.NATIVE_NETWORK_PORT, serviceTemplate, toscaServiceModel)) - .forEach(nodeTemplateEntry -> - addForwarderToSubstitutionMappings(nodeTemplateEntry.getKey(), serviceTemplate) - ); - } - - private void addForwarderToSubstitutionMappings(String portNodeTemplateId, - ServiceTemplate serviceTemplate) { - if (Objects.isNull(serviceTemplate.getTopology_template()) - || Objects.isNull(serviceTemplate.getTopology_template().getSubstitution_mappings())) { - return; - } - - List<String> substitutionMappingCapabilityList = - Arrays.asList(portNodeTemplateId, FORWARDER_CAPABILITY_ID); - - DataModelUtil.addSubstitutionMappingCapability( - serviceTemplate, - FORWARDER_CAPABILITY_ID + UNDERSCORE + portNodeTemplateId, - substitutionMappingCapabilityList); - - } -} diff --git a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/HeatToToscaTranslationHealer.java b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/HeatToToscaTranslationHealer.java deleted file mode 100644 index ddae09fa01..0000000000 --- a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/HeatToToscaTranslationHealer.java +++ /dev/null @@ -1,79 +0,0 @@ -package org.openecomp.sdc.healing.healers; - - -import org.openecomp.core.model.dao.ServiceModelDao; -import org.openecomp.core.model.dao.ServiceModelDaoFactory; -import org.openecomp.core.model.types.ServiceElement; -import org.openecomp.core.translator.datatypes.TranslatorOutput; -import org.openecomp.core.utilities.file.FileContentHandler; -import org.openecomp.core.utilities.orchestration.OnboardingTypesEnum; -import org.openecomp.sdc.common.utils.CommonUtil; -import org.openecomp.sdc.healing.interfaces.Healer; -import org.openecomp.sdc.logging.api.Logger; -import org.openecomp.sdc.logging.api.LoggerFactory; -import org.openecomp.sdc.logging.context.impl.MdcDataDebugMessage; -import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel; -import org.openecomp.sdc.translator.services.heattotosca.HeatToToscaUtil; -import org.openecomp.sdc.vendorsoftwareproduct.dao.OrchestrationTemplateDao; -import org.openecomp.sdc.vendorsoftwareproduct.dao.OrchestrationTemplateDaoFactory; -import org.openecomp.sdc.vendorsoftwareproduct.dao.type.OrchestrationTemplateEntity; -import org.openecomp.sdc.versioning.dao.types.Version; - -import java.util.Objects; -import java.util.Optional; - -public class HeatToToscaTranslationHealer implements Healer { - - private static final OrchestrationTemplateDao orchestrationTemplateDao = - OrchestrationTemplateDaoFactory.getInstance().createInterface(); - private static final ServiceModelDao<ToscaServiceModel, ServiceElement> serviceModelDao = - ServiceModelDaoFactory.getInstance().createInterface(); - private static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage(); - - private final Logger log = (Logger) LoggerFactory.getLogger(this.getClass().getName()); - - public HeatToToscaTranslationHealer() { - - } - - @Override - public Object heal(String vspId, Version version) throws Exception { - mdcDataDebugMessage.debugEntryMessage(null);; - - OrchestrationTemplateEntity uploadData = - orchestrationTemplateDao.get(vspId, version); - - if (Objects.isNull(uploadData) || Objects.isNull(uploadData.getContentData())) { - return Optional.empty(); - } - - FileContentHandler fileContentHandler; - TranslatorOutput translatorOutput; - try { - fileContentHandler = - CommonUtil.validateAndUploadFileContent(OnboardingTypesEnum.ZIP, uploadData - .getContentData().array()); - translatorOutput = - HeatToToscaUtil.loadAndTranslateTemplateData(fileContentHandler); - } catch (Exception e) { - log.debug("", e); - return Optional.empty(); - } - - if (Objects.isNull(translatorOutput)) { - return Optional.empty(); - } else { - - if (translatorOutput.getToscaServiceModel() == null) { - return Optional.empty(); - } - //templateDao.deleteAll(vspId, version); - serviceModelDao.deleteAll(vspId, version); - serviceModelDao.storeServiceModel(vspId, version, translatorOutput.getToscaServiceModel()); - mdcDataDebugMessage.debugExitMessage("VSP id", vspId); - - return translatorOutput; - } - - } -} diff --git a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/NicDataHealer.java b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/NicDataHealer.java deleted file mode 100644 index b2ef965286..0000000000 --- a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/NicDataHealer.java +++ /dev/null @@ -1,42 +0,0 @@ -package org.openecomp.sdc.healing.healers; - - -import org.openecomp.sdc.healing.interfaces.Healer; -import org.openecomp.sdc.logging.context.impl.MdcDataDebugMessage; -import org.openecomp.sdc.vendorsoftwareproduct.dao.NicDao; -import org.openecomp.sdc.vendorsoftwareproduct.dao.NicDaoFactory; -import org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity; -import org.openecomp.sdc.vendorsoftwareproduct.types.composition.NetworkType; -import org.openecomp.sdc.vendorsoftwareproduct.types.composition.Nic; -import org.openecomp.sdc.versioning.dao.types.Version; - -import java.util.Collection; - -public class NicDataHealer implements Healer { - /*private static final VendorSoftwareProductDao vendorSoftwareProductDao = - VendorSoftwareProductDaoFactory.getInstance().createInterface();*/ - - private static final NicDao nicDao = NicDaoFactory.getInstance().createInterface(); - - private static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage(); - - public NicDataHealer(){ - - } - @Override - public Object heal(String vspId, Version version) throws Exception { - mdcDataDebugMessage.debugEntryMessage(null, null); - - Collection<NicEntity> nics = nicDao.listByVsp(vspId, version); - for (NicEntity nicEntity : nics) { - Nic nic = nicEntity.getNicCompositionData(); - if (nic != null && nic.getNetworkType()==null) { - nic.setNetworkType(NetworkType.Internal); - nicEntity.setNicCompositionData(nic); - //vendorSoftwareProductDao.updateNic(nicEntity); - nicDao.update(nicEntity); - } - } - return nics; - } -} diff --git a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/SubEntitiesQuestionnaireHealer.java b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/SubEntitiesQuestionnaireHealer.java deleted file mode 100644 index a1dd80c307..0000000000 --- a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/SubEntitiesQuestionnaireHealer.java +++ /dev/null @@ -1,127 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * 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.sdc.healing.healers; - -import org.openecomp.core.utilities.json.JsonSchemaDataGenerator; -import org.openecomp.sdc.healing.interfaces.Healer; -import org.openecomp.sdc.logging.context.impl.MdcDataDebugMessage; -import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDao; -import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDaoFactory; -import org.openecomp.sdc.vendorsoftwareproduct.dao.NetworkDao; -import org.openecomp.sdc.vendorsoftwareproduct.dao.NetworkDaoFactory; -import org.openecomp.sdc.vendorsoftwareproduct.dao.NicDao; -import org.openecomp.sdc.vendorsoftwareproduct.dao.NicDaoFactory; -import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity; -import org.openecomp.sdc.vendorsoftwareproduct.dao.type.CompositionEntity; -import org.openecomp.sdc.vendorsoftwareproduct.dao.type.NetworkEntity; -import org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity; -import org.openecomp.sdc.vendorsoftwareproduct.services.schemagenerator.SchemaGenerator; -import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEntityType; -import org.openecomp.sdc.vendorsoftwareproduct.types.schemagenerator.SchemaTemplateContext; -import org.openecomp.sdc.versioning.dao.types.Version; - -import java.util.Collection; -import java.util.Objects; - -public class SubEntitiesQuestionnaireHealer implements Healer { - private static Version version00 = new Version(0, 0); - private MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage(); - - private static ComponentDao componentDao = ComponentDaoFactory.getInstance().createInterface(); - private static NicDao nicDao = NicDaoFactory.getInstance().createInterface(); - private static NetworkDao networkDao = NetworkDaoFactory.getInstance().createInterface(); - - private static String emptyString = ""; - private static String emptyJson = "{}"; - - @Override - public Object heal(String vspId, Version version) throws Exception { - - - mdcDataDebugMessage.debugEntryMessage(null); - - Collection<ComponentEntity> componentEntities = - componentDao.listCompositionAndQuestionnaire(vspId, version); - - networkDao.list(new NetworkEntity(vspId, version, null)); - - Collection<NicEntity> nicEntities = nicDao.listByVsp(vspId, version); - - healCompositionEntityQuestionnaire(componentEntities, version, CompositionEntityType.component); - healCompositionEntityQuestionnaire(nicEntities, version, CompositionEntityType.nic); - - mdcDataDebugMessage.debugExitMessage(null); - return new Object(); - } - - - private void healCompositionEntityQuestionnaire(Collection - compositionEntities, - Version newVersion, CompositionEntityType type) { - - - mdcDataDebugMessage.debugEntryMessage(null); - - for (Object entity : compositionEntities) { - CompositionEntity compositionEntity = (CompositionEntity) entity; - if (isQuestionnaireNeedsToGetHealed(compositionEntity)) { - compositionEntity.setVersion(newVersion); - updateNullQuestionnaire(compositionEntity, type); - } - } - - mdcDataDebugMessage.debugExitMessage(null); - } - - private boolean isQuestionnaireNeedsToGetHealed(CompositionEntity compositionEntity) { - return Objects.isNull(compositionEntity.getQuestionnaireData()) - || emptyString.equals(compositionEntity.getQuestionnaireData()) - || emptyJson.equals(compositionEntity.getQuestionnaireData()); - } - - private void updateNullQuestionnaire(CompositionEntity entity, - CompositionEntityType type) { - - - mdcDataDebugMessage.debugEntryMessage(null); - - entity.setQuestionnaireData( - new JsonSchemaDataGenerator(SchemaGenerator - .generate(SchemaTemplateContext.questionnaire, type, - null)).generateData()); - - switch (type) { - case component: - ComponentEntity component = (ComponentEntity) entity; - componentDao.updateQuestionnaireData(component.getVspId(), component - .getVersion(), component.getId(), component.getQuestionnaireData()); - break; - - case nic: - NicEntity nic = (NicEntity) entity; - nicDao.updateQuestionnaireData(nic.getVspId(), nic.getVersion(), nic.getComponentId(), - nic.getId(), nic.getQuestionnaireData()); - break; - } - mdcDataDebugMessage.debugExitMessage(null); - } - -} diff --git a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/ValidationStructureHealer.java b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/ValidationStructureHealer.java deleted file mode 100644 index d172432284..0000000000 --- a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/ValidationStructureHealer.java +++ /dev/null @@ -1,246 +0,0 @@ -package org.openecomp.sdc.healing.healers; - -import org.apache.commons.collections4.CollectionUtils; -import org.openecomp.core.utilities.json.JsonUtil; -import org.openecomp.sdc.datatypes.error.ErrorMessage; -import org.openecomp.sdc.healing.interfaces.Healer; -import org.openecomp.sdc.heat.datatypes.manifest.FileData; -import org.openecomp.sdc.heat.datatypes.structure.Artifact; -import org.openecomp.sdc.heat.datatypes.structure.HeatStructureTree; -import org.openecomp.sdc.heat.datatypes.structure.ValidationStructureList; -import org.openecomp.sdc.logging.api.Logger; -import org.openecomp.sdc.logging.api.LoggerFactory; -import org.openecomp.sdc.vendorsoftwareproduct.dao.OrchestrationTemplateDao; -import org.openecomp.sdc.vendorsoftwareproduct.dao.OrchestrationTemplateDaoFactory; -import org.openecomp.sdc.vendorsoftwareproduct.dao.type.OrchestrationTemplateEntity; -import org.openecomp.sdc.versioning.dao.types.Version; - -import java.util.HashSet; -import java.util.List; -import java.util.Objects; -import java.util.Optional; -import java.util.Set; - -/** - * Created by Talio on 7/30/2017. - */ -public class ValidationStructureHealer implements Healer { - - private static final Logger logger = LoggerFactory.getLogger(JsonUtil.class); - private static final OrchestrationTemplateDao orchestrationTemplateDao = - OrchestrationTemplateDaoFactory.getInstance().createInterface(); - - @Override - public Object heal(String vspId, Version version) throws Exception { - - OrchestrationTemplateEntity orchestrationTemplate = - orchestrationTemplateDao.get(vspId, version); - - if (Objects.isNull(orchestrationTemplate.getValidationData()) - || !JsonUtil.isValidJson(orchestrationTemplate.getValidationData())) { - return Optional.empty(); - } - - OldValidationStructureTree oldValidationStructureTree; - try { - oldValidationStructureTree = JsonUtil - .json2Object(orchestrationTemplate.getValidationData(), OldValidationStructureTree.class); - } catch (Exception e) { - logger.debug("", e); - return Optional.empty(); - } - - Optional<HeatStructureTree> newHeatStructureTreeFromOldStructureTree = - createNewHeatStructureTreeFromOldStructureTree( - oldValidationStructureTree.getImportStructure()); - - newHeatStructureTreeFromOldStructureTree.ifPresent(newStructure -> - updateValuesInDb(vspId, version, orchestrationTemplate, - new ValidationStructureList(newStructure))); - - return newHeatStructureTreeFromOldStructureTree; - - } - - private void updateValuesInDb(String vspId, Version version, - OrchestrationTemplateEntity orchestrationTemplate, - ValidationStructureList validationData) { - orchestrationTemplate.setValidationDataStructure(validationData); - orchestrationTemplateDao.update(vspId, version, orchestrationTemplate); - } - - private Optional<HeatStructureTree> createNewHeatStructureTreeFromOldStructureTree( - OldHeatStructureTree oldHeatStructureTree) { - - HeatStructureTree heatStructureTree = new HeatStructureTree(); - - if (Objects.isNull(oldHeatStructureTree)) { - return Optional.empty(); - } - - mapOldHeatStructureTreeValues(oldHeatStructureTree, heatStructureTree); - - Set<OldHeatStructureTree> heat = - oldHeatStructureTree.getHeat() == null ? new HashSet<>() : oldHeatStructureTree.getHeat(); - Set<OldHeatStructureTree> volume = - oldHeatStructureTree.getVolume() == null ? new HashSet<>() - : oldHeatStructureTree.getVolume(); - Set<OldHeatStructureTree> nested = - oldHeatStructureTree.getNested() == null ? new HashSet<>() - : oldHeatStructureTree.getNested(); - Set<OldHeatStructureTree> network = - oldHeatStructureTree.getNetwork() == null ? new HashSet<>() - : oldHeatStructureTree.getNetwork(); - - - heatStructureTree.setHeat(createHeatStructureTreeSetFromOld(heat)); - heatStructureTree.setVolume(createHeatStructureTreeSetFromOld(volume)); - heatStructureTree.setNested(createHeatStructureTreeSetFromOld(nested)); - heatStructureTree.setNetwork(createHeatStructureTreeSetFromOld(network)); - - return Optional.of(heatStructureTree); - } - - private void mapOldHeatStructureTreeValues(OldHeatStructureTree oldHeatStructureTree, - HeatStructureTree heatStructureTree) { - heatStructureTree.setFileName(oldHeatStructureTree.getFileName()); - heatStructureTree.setBase(oldHeatStructureTree.getBase()); - heatStructureTree.setType(oldHeatStructureTree.getType()); - heatStructureTree.setArtifacts(oldHeatStructureTree.getArtifacts()); - heatStructureTree.setErrors(oldHeatStructureTree.getErrors()); - - if (Objects.nonNull(oldHeatStructureTree.getEnv())) { - heatStructureTree.setEnv(new HeatStructureTree(oldHeatStructureTree.getEnv(), false)); - } - } - - private Set<HeatStructureTree> createHeatStructureTreeSetFromOld(Set<OldHeatStructureTree> - oldHeatStructureTreeSet) { - if (CollectionUtils.isEmpty(oldHeatStructureTreeSet)) { - return null; - } - Set<HeatStructureTree> newHeatStructureSet = new HashSet<>(); - - for (OldHeatStructureTree old : oldHeatStructureTreeSet) { - Optional<HeatStructureTree> newHeatStructureTree = - createNewHeatStructureTreeFromOldStructureTree(old); - newHeatStructureTree.ifPresent(newHeatStructureSet::add); - } - - return newHeatStructureSet; - } - - private class OldValidationStructureTree { - private OldHeatStructureTree importStructure; - - OldHeatStructureTree getImportStructure() { - return importStructure; - } - } - - private class OldHeatStructureTree { - private String fileName; - private FileData.Type type; - private Boolean isBase; - private String env; - private List<ErrorMessage> errors; - private Set<OldHeatStructureTree> heat; - private Set<OldHeatStructureTree> volume; - private Set<OldHeatStructureTree> network; - private Set<OldHeatStructureTree> nested; - private Set<OldHeatStructureTree> other; - private Set<Artifact> artifacts; - - public OldHeatStructureTree() { - } - - public String getFileName() { - return fileName; - } - - public void setFileName(String fileName) { - this.fileName = fileName; - } - - public FileData.Type getType() { - return type; - } - - public void setType(FileData.Type type) { - this.type = type; - } - - public Boolean getBase() { - return isBase; - } - - public void setBase(Boolean base) { - isBase = base; - } - - public String getEnv() { - return env; - } - - public void setEnv(String env) { - this.env = env; - } - - public List<ErrorMessage> getErrors() { - return errors; - } - - public void setErrors(List<ErrorMessage> errors) { - this.errors = errors; - } - - public Set<OldHeatStructureTree> getHeat() { - return heat; - } - - public void setHeat(Set<OldHeatStructureTree> heat) { - this.heat = heat; - } - - public Set<OldHeatStructureTree> getVolume() { - return volume; - } - - public void setVolume(Set<OldHeatStructureTree> volume) { - this.volume = volume; - } - - public Set<OldHeatStructureTree> getNetwork() { - return network; - } - - public void setNetwork( - Set<OldHeatStructureTree> network) { - this.network = network; - } - - public Set<OldHeatStructureTree> getNested() { - return nested; - } - - public void setNested(Set<OldHeatStructureTree> nested) { - this.nested = nested; - } - - public Set<OldHeatStructureTree> getOther() { - return other; - } - - public void setOther(Set<OldHeatStructureTree> other) { - this.other = other; - } - - public Set<Artifact> getArtifacts() { - return artifacts; - } - - public void setArtifacts(Set<Artifact> artifacts) { - this.artifacts = artifacts; - } - } -} diff --git a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/VlmVersionHealer.java b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/VlmVersionHealer.java deleted file mode 100644 index a57ac74350..0000000000 --- a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/VlmVersionHealer.java +++ /dev/null @@ -1,67 +0,0 @@ -package org.openecomp.sdc.healing.healers; - -import org.openecomp.sdc.healing.interfaces.Healer; -import org.openecomp.sdc.logging.api.Logger; -import org.openecomp.sdc.logging.api.LoggerFactory; -import org.openecomp.sdc.vendorlicense.dao.LicenseAgreementDao; -import org.openecomp.sdc.vendorlicense.dao.LicenseAgreementDaoFactory; -import org.openecomp.sdc.vendorlicense.dao.types.LicenseAgreementEntity; -import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductInfoDao; -import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductInfoDaoFactory; -import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails; -import org.openecomp.sdc.versioning.VersioningManager; -import org.openecomp.sdc.versioning.VersioningManagerFactory; -import org.openecomp.sdc.versioning.dao.types.Version; -import org.openecomp.sdc.versioning.dao.types.VersionStatus; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Objects; -import java.util.Optional; - -/** - * Created by TALIO on 7/3/2017. - */ -public class VlmVersionHealer implements Healer { - private VersioningManager versioningManager = - VersioningManagerFactory.getInstance().createInterface(); - private static final VendorSoftwareProductInfoDao vspInfoDao = - VendorSoftwareProductInfoDaoFactory.getInstance().createInterface(); - private static final LicenseAgreementDao licenseAgreementDao = - LicenseAgreementDaoFactory.getInstance().createInterface(); - private static final Logger logger = - LoggerFactory.getLogger(VlmVersionHealer.class); - - @Override - public Object heal(String vspId, Version version) throws Exception { - VspDetails vspDetails = vspInfoDao.get(new VspDetails(vspId, version)); - - if (!Objects.isNull(vspDetails.getVlmVersion())) { - return Optional.empty(); - } - - // get the certified vlm version with the highest number in its name - Optional<Version> certifiedVlmVersion = - versioningManager.list(vspDetails.getVendorId()).stream() - .filter(ver -> VersionStatus.Certified == ver.getStatus()) - .max((o1, o2) -> ((Double) Double.parseDouble(o1.getName())) - .compareTo(Double.parseDouble(o2.getName()))); - if (!certifiedVlmVersion.isPresent()) { - logger.debug("No Vlm was found for Vsp " + vspDetails.getName()); - return Optional.empty(); - } - vspDetails.setVlmVersion(certifiedVlmVersion.get()); - - Collection<LicenseAgreementEntity> licenseAgreements = licenseAgreementDao.list( - new LicenseAgreementEntity(vspDetails.getVendorId(), certifiedVlmVersion.get(), null)); - if (!licenseAgreements.isEmpty()) { - LicenseAgreementEntity licenseAgreement = licenseAgreements.iterator().next(); - vspDetails.setLicenseAgreement(licenseAgreement.getId()); - vspDetails.setFeatureGroups(new ArrayList<>(licenseAgreement.getFeatureGroupIds())); - } - - vspInfoDao.update(vspDetails); - - return vspDetails; - } -} diff --git a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/VspOnboardingMethodHealer.java b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/VspOnboardingMethodHealer.java deleted file mode 100644 index d5c082bdae..0000000000 --- a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/VspOnboardingMethodHealer.java +++ /dev/null @@ -1,92 +0,0 @@ -package org.openecomp.sdc.healing.healers; - - -import org.openecomp.core.utilities.orchestration.OnboardingTypesEnum; -import org.openecomp.sdc.healing.interfaces.Healer; -import org.openecomp.sdc.logging.context.impl.MdcDataDebugMessage; -import org.openecomp.sdc.vendorsoftwareproduct.dao.OrchestrationTemplateCandidateDao; -import org.openecomp.sdc.vendorsoftwareproduct.dao.OrchestrationTemplateCandidateDaoFactory; -import org.openecomp.sdc.vendorsoftwareproduct.dao.OrchestrationTemplateDao; -import org.openecomp.sdc.vendorsoftwareproduct.dao.OrchestrationTemplateDaoFactory; -import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductInfoDao; -import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductInfoDaoFactory; -import org.openecomp.sdc.vendorsoftwareproduct.dao.type.OnboardingMethod; -import org.openecomp.sdc.vendorsoftwareproduct.dao.type.OrchestrationTemplateCandidateData; -import org.openecomp.sdc.vendorsoftwareproduct.dao.type.OrchestrationTemplateEntity; -import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails; -import org.openecomp.sdc.versioning.dao.types.Version; - -import java.util.Objects; - -public class VspOnboardingMethodHealer implements Healer { - - private static final String DEFAULT_FILE_NAME = "Upload File"; - private static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage(); - private VendorSoftwareProductInfoDao vendorSoftwareProductInfoDao; - private OrchestrationTemplateDao orchestrationTemplateDao; - private OrchestrationTemplateCandidateDao candidateDao; - - public VspOnboardingMethodHealer(){ - this(VendorSoftwareProductInfoDaoFactory.getInstance().createInterface(), - OrchestrationTemplateDaoFactory.getInstance().createInterface(), - OrchestrationTemplateCandidateDaoFactory.getInstance().createInterface()); - } - - public VspOnboardingMethodHealer(VendorSoftwareProductInfoDao vspInfoDao, - OrchestrationTemplateDao orchestrationTemplateDao, - OrchestrationTemplateCandidateDao candidateDao) { - this.vendorSoftwareProductInfoDao = vspInfoDao; - this.orchestrationTemplateDao = orchestrationTemplateDao; - this.candidateDao = candidateDao; - } - - @Override - public Object heal(String vspId, Version version) throws Exception { - mdcDataDebugMessage.debugEntryMessage(null); - - VspDetails vsp = vendorSoftwareProductInfoDao.get(new VspDetails(vspId, version)); - healOnboardingMethod(vsp); - - if (!OnboardingMethod.Manual.name().equals(vsp.getOnboardingMethod())) { - healOrchestrationTemplateFileName(vspId, version); - healOrchestrationTemplateCandidateFileName(vspId, version); - } - - mdcDataDebugMessage.debugExitMessage(null); - return null; - } - - private void healOnboardingMethod(VspDetails vsp) { - if (Objects.isNull(vsp.getOnboardingMethod()) || "HEAT".equals(vsp.getOnboardingMethod())) { - vsp.setOnboardingMethod(OnboardingMethod.NetworkPackage.name()); - vendorSoftwareProductInfoDao.update(vsp); - } - } - - private void healOrchestrationTemplateFileName(String vspId, Version version) { - OrchestrationTemplateEntity orchestrationTemplate = - orchestrationTemplateDao.get(vspId, version); - - if (orchestrationTemplate == null || orchestrationTemplate.getContentData() == null || - orchestrationTemplate.getFileSuffix() != null) { - return; - } - orchestrationTemplate.setFileSuffix(OnboardingTypesEnum.ZIP.toString()); - orchestrationTemplate.setFileName(DEFAULT_FILE_NAME); - - orchestrationTemplateDao.update(vspId, version, orchestrationTemplate); - } - - private void healOrchestrationTemplateCandidateFileName(String vspId, Version version) { - OrchestrationTemplateCandidateData candidate = candidateDao.get(vspId, version); - - if (candidate == null || candidate.getContentData() == null || - candidate.getFileSuffix() != null) { - return; - } - candidate.setFileSuffix(OnboardingTypesEnum.ZIP.toString()); - candidate.setFileName(DEFAULT_FILE_NAME); - - candidateDao.update(vspId, version, candidate); - } -} diff --git a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/VspQuestionnaireHealer.java b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/VspQuestionnaireHealer.java deleted file mode 100644 index b45ce30a3e..0000000000 --- a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/VspQuestionnaireHealer.java +++ /dev/null @@ -1,86 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * 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.sdc.healing.healers; - -import org.openecomp.core.utilities.json.JsonSchemaDataGenerator; -import org.openecomp.sdc.healing.interfaces.Healer; -import org.openecomp.sdc.logging.api.Logger; -import org.openecomp.sdc.logging.api.LoggerFactory; -import org.openecomp.sdc.logging.context.impl.MdcDataDebugMessage; -import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductInfoDao; -import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductInfoDaoFactory; -import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspQuestionnaireEntity; -import org.openecomp.sdc.vendorsoftwareproduct.services.schemagenerator.SchemaGenerator; -import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEntityType; -import org.openecomp.sdc.vendorsoftwareproduct.types.schemagenerator.SchemaTemplateContext; -import org.openecomp.sdc.versioning.dao.types.Version; - -import java.io.IOException; -import java.util.Objects; -import java.util.Optional; - -public class VspQuestionnaireHealer implements Healer { - private static final VendorSoftwareProductInfoDao vspInfoDao = - VendorSoftwareProductInfoDaoFactory.getInstance().createInterface(); - private static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage(); - - private final Logger log = (Logger) LoggerFactory.getLogger(this.getClass().getName()); - - public VspQuestionnaireHealer() { - } - - @Override - public Object heal(String vspId, Version version) throws IOException { - - - mdcDataDebugMessage.debugEntryMessage(null, null); - - Optional<String> questionnaireData = null; - VspQuestionnaireEntity vspQuestionnaireEntity = - vspInfoDao.getQuestionnaire(vspId, version); - - if(Objects.isNull(vspQuestionnaireEntity.getQuestionnaireData())|| "".equals(vspQuestionnaireEntity.getQuestionnaireData())) { - questionnaireData = healQuestionnaire(vspId, version); - } - - mdcDataDebugMessage.debugExitMessage(null, null); - return questionnaireData; - } - - private Optional<String> healQuestionnaire(String vspId, Version version) { - - - mdcDataDebugMessage.debugEntryMessage(null, null); - - String questionnaireData; - String generatedSchema = SchemaGenerator - .generate(SchemaTemplateContext.questionnaire, CompositionEntityType.vsp, null); - try { - questionnaireData = new JsonSchemaDataGenerator(generatedSchema).generateData(); - vspInfoDao.updateQuestionnaireData(vspId, version, questionnaireData); - }catch(Exception e){ - log.debug("", e); - return Optional.empty(); - } - mdcDataDebugMessage.debugExitMessage(null, null); - return Optional.of(questionnaireData); - } -} |