diff options
Diffstat (limited to 'openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/CompositionDataHealer.java')
-rw-r--r-- | openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/CompositionDataHealer.java | 117 |
1 files changed, 100 insertions, 17 deletions
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 index 656f7af26f..6fdf14451f 100644 --- 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 @@ -7,9 +7,9 @@ * 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. @@ -35,6 +35,12 @@ 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; @@ -42,6 +48,9 @@ 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.DeploymentFlavorEntity; +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.UploadDataEntity; @@ -49,6 +58,7 @@ import org.openecomp.sdc.vendorsoftwareproduct.factory.CompositionDataExtractorF 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; @@ -70,6 +80,10 @@ public class CompositionDataHealer implements Healer { 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(); @@ -97,24 +111,93 @@ public class CompositionDataHealer implements Healer { networkDao.list(new NetworkEntity(vspId, version, null)); Optional<ToscaServiceModel> serviceModelForHealing = getServiceModelForHealing(vspId, version); - - if (!doesVspNeedCompositionDataHealing(componentEntities, networkEntities, + CompositionData compositionData = null; + if (!doesVspNeedCompositionDataHealing(vspId, version, componentEntities, networkEntities, nicEntities)) { updateComponentsDisplayNames(componentEntities); - mdcDataDebugMessage.debugExitMessage(null); - return Optional.empty(); + mdcDataDebugMessage.debugExitMessage(null, null); + //return Optional.empty(); + } else { + if (!serviceModelForHealing.isPresent()) { + mdcDataDebugMessage.debugExitMessage(null, null); + return Optional.empty(); + } + compositionData = healCompositionData(vspId, version, serviceModelForHealing); } + compositionData = + getCompositionDataForHealing(vspId, version, serviceModelForHealing.get()); + HealNfodData(vspId, version, compositionData); + mdcDataDebugMessage.debugExitMessage(null, null); + return Optional.of(compositionData); + } + private boolean doesVspNeedCompositionDataHealing(String vspId, Version version, + Collection<ComponentEntity> componentEntities, + Collection<NetworkEntity> networkEntities, + Collection<NicEntity> nicEntities) { - if (!serviceModelForHealing.isPresent()) { - mdcDataDebugMessage.debugExitMessage(null); - return Optional.empty(); - } + return (CollectionUtils.isEmpty(componentEntities) && CollectionUtils.isEmpty(nicEntities) && + CollectionUtils.isEmpty(networkEntities) ); + +// mdcDataDebugMessage.debugEntryMessage(null, null); +// +//// ToscaServiceModel toscaServiceModel; +// +// ByteBuffer contentData = uploadData.getContentData(); +// FileContentHandler fileContentHandler = CommonUtil.validateAndUploadFileContent(uploadData +// .getContentData().array()); +// +// +// +// TranslatorOutput translatorOutput = +// HeatToToscaUtil.loadAndTranslateTemplateData(fileContentHandler); +// ToscaServiceModel toscaServiceModel = translatorOutput.getToscaServiceModel(); +// +//// toscaServiceModel = enrichedServiceModelDao.getServiceModel(vspId, version); +// +// mdcDataDebugMessage.debugExitMessage(null, null); +// return toscaServiceModel; - CompositionData compositionData = healCompositionData(vspId, version, serviceModelForHealing); + } - mdcDataDebugMessage.debugExitMessage(null); - return Optional.of(compositionData); + private void HealNfodData(String vspId, Version version, CompositionData compositionData) { + Collection<ComponentEntity> componentEntities; + /*componentEntities = + vendorSoftwareProductDao.listComponents(vspId, version);*/ + componentEntities = componentDao.list(new ComponentEntity(vspId, version, null)); + + /*Collection<ComputeEntity> computeEntities=vendorSoftwareProductDao.listComputesByVsp(vspId, + version); + Collection<ImageEntity> imageEntities =vendorSoftwareProductDao.listImagesByVsp(vspId, version); + Collection<DeploymentFlavorEntity> deploymentFlavorEntities =vendorSoftwareProductDao + .listDeploymentFlavors(vspId, version);*/ + + Collection<ComputeEntity> computeEntities = computeDao.listByVsp(vspId, version); + Collection<ImageEntity> imageEntities = imageDao.listByVsp(vspId, version); + Collection<DeploymentFlavorEntity> deploymentFlavorEntities = deloymentFlavorDao.list(new + DeploymentFlavorEntity(vspId, version, null)); + + 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); + } + + } + + if (CollectionUtils.isEmpty(deploymentFlavorEntities)) { + compositionEntityDataManager.saveDeploymentFlavors(vspId,version,compositionData); + } } private CompositionData healCompositionData(String vspId, Version version, @@ -204,7 +287,7 @@ public class CompositionDataHealer implements Healer { try { serviceModelDao.storeServiceModel(vspId, version, translatorOutput.getToscaServiceModel()); - }catch (Exception e){ + } catch (Exception e) { return Optional.empty(); } @@ -212,14 +295,14 @@ public class CompositionDataHealer implements Healer { return Optional.of(translatorOutput.getToscaServiceModel()); } - private TranslatorOutput getTranslatorOutputForHealing(UploadDataEntity uploadData){ + private TranslatorOutput getTranslatorOutputForHealing(UploadDataEntity uploadData) { FileContentHandler fileContentHandler; try { fileContentHandler = - CommonUtil.loadUploadFileContent(uploadData.getContentData().array()); + CommonUtil.validateAndUploadFileContent(uploadData.getContentData().array()); return HeatToToscaUtil.loadAndTranslateTemplateData(fileContentHandler); - }catch (Exception e){ + } catch (Exception e) { return null; } } |