summaryrefslogtreecommitdiffstats
path: root/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/ToscaServiceModelHealer.java
diff options
context:
space:
mode:
Diffstat (limited to 'openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/ToscaServiceModelHealer.java')
-rw-r--r--openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/ToscaServiceModelHealer.java146
1 files changed, 61 insertions, 85 deletions
diff --git a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/ToscaServiceModelHealer.java b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/ToscaServiceModelHealer.java
index 1aed46163d..b65629002a 100644
--- a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/ToscaServiceModelHealer.java
+++ b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/ToscaServiceModelHealer.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.
@@ -17,9 +17,11 @@
* limitations under the License.
* ============LICENSE_END=========================================================
*/
-
package org.openecomp.sdc.healing.healers;
+import java.io.IOException;
+import java.util.Objects;
+import java.util.Optional;
import org.apache.commons.collections4.MapUtils;
import org.openecomp.core.converter.ToscaConverter;
import org.openecomp.core.converter.factory.ToscaConverterFactory;
@@ -40,99 +42,73 @@ import org.openecomp.sdc.vendorsoftwareproduct.dao.OrchestrationTemplateDaoFacto
import org.openecomp.sdc.vendorsoftwareproduct.dao.type.OrchestrationTemplateEntity;
import org.openecomp.sdc.versioning.dao.types.Version;
-import java.io.IOException;
-import java.util.Objects;
-import java.util.Optional;
-
public class ToscaServiceModelHealer implements Healer {
- private ServiceModelDao<ToscaServiceModel, ServiceElement> serviceModelDao;
- private OrchestrationTemplateDao orchestrationTemplateDao;
- private static final String VALIDATION_FAILURE_MESSAGE = "Product was updated. Please " +
- "update the uploaded Heat file according to these validation errors: \n";
-
- public ToscaServiceModelHealer() {
- this.serviceModelDao = ServiceModelDaoFactory.getInstance().createInterface();
- this.orchestrationTemplateDao = OrchestrationTemplateDaoFactory.getInstance().createInterface();
- }
-
- public ToscaServiceModelHealer(
- ServiceModelDao<ToscaServiceModel, ServiceElement> serviceModelDao,
- OrchestrationTemplateDao orchestrationTemplateDao) {
- this.serviceModelDao = serviceModelDao;
- this.orchestrationTemplateDao = orchestrationTemplateDao;
- }
-
- @Override
- public boolean isHealingNeeded(String itemId, Version version) {
- OrchestrationTemplateEntity orchestrationTemplate =
- orchestrationTemplateDao.get(itemId, version);
- OnboardingTypesEnum onboardingTypes =
- OnboardingTypesEnum.getOnboardingTypesEnum(orchestrationTemplate.getFileSuffix());
- return Objects.nonNull(onboardingTypes) &&
- Objects.nonNull(orchestrationTemplate.getContentData());
- }
+ private static final String VALIDATION_FAILURE_MESSAGE =
+ "Product was updated. Please " + "update the uploaded Heat file according to these validation errors: \n";
+ private ServiceModelDao<ToscaServiceModel, ServiceElement> serviceModelDao;
+ private OrchestrationTemplateDao orchestrationTemplateDao;
- @Override
- public void heal(String itemId, Version version) throws Exception {
- OrchestrationTemplateEntity orchestrationTemplateEntity =
- orchestrationTemplateDao.get(itemId, version);
- OnboardingTypesEnum type =
- OnboardingTypesEnum.getOnboardingTypesEnum(orchestrationTemplateEntity.getFileSuffix());
-
- Optional<ToscaServiceModel> healedServiceModel =
- healServiceModel(orchestrationTemplateEntity, type);
-
- healedServiceModel.ifPresent(serviceModel -> serviceModelDao
- .overrideServiceModel(itemId, version, serviceModel));
- }
-
- private Optional<ToscaServiceModel> healServiceModel(
- OrchestrationTemplateEntity orchestrationTemplateEntity,
- OnboardingTypesEnum type) throws IOException {
- switch (type) {
- case ZIP:
- return Optional.of(healServiceModelFromZip(
- getFileContentHandlerForHealing(orchestrationTemplateEntity, type)));
+ public ToscaServiceModelHealer() {
+ this.serviceModelDao = ServiceModelDaoFactory.getInstance().createInterface();
+ this.orchestrationTemplateDao = OrchestrationTemplateDaoFactory.getInstance().createInterface();
+ }
- case CSAR:
- return Optional.of(healServiceModelFromCsar(
- getFileContentHandlerForHealing(orchestrationTemplateEntity, type)));
+ public ToscaServiceModelHealer(ServiceModelDao<ToscaServiceModel, ServiceElement> serviceModelDao,
+ OrchestrationTemplateDao orchestrationTemplateDao) {
+ this.serviceModelDao = serviceModelDao;
+ this.orchestrationTemplateDao = orchestrationTemplateDao;
+ }
- default:
- return Optional.empty();
+ @Override
+ public boolean isHealingNeeded(String itemId, Version version) {
+ OrchestrationTemplateEntity orchestrationTemplate = orchestrationTemplateDao.get(itemId, version);
+ OnboardingTypesEnum onboardingTypes = OnboardingTypesEnum.getOnboardingTypesEnum(orchestrationTemplate.getFileSuffix());
+ return Objects.nonNull(onboardingTypes) && Objects.nonNull(orchestrationTemplate.getContentData());
}
- }
- private FileContentHandler getFileContentHandlerForHealing(
- OrchestrationTemplateEntity orchestrationTemplateEntity, OnboardingTypesEnum type)
- throws IOException {
- byte[] uploadedFileContent = orchestrationTemplateEntity.getContentData().array();
- return CommonUtil.validateAndUploadFileContent(type, uploadedFileContent);
- }
+ @Override
+ public void heal(String itemId, Version version) throws Exception {
+ OrchestrationTemplateEntity orchestrationTemplateEntity = orchestrationTemplateDao.get(itemId, version);
+ OnboardingTypesEnum type = OnboardingTypesEnum.getOnboardingTypesEnum(orchestrationTemplateEntity.getFileSuffix());
+ Optional<ToscaServiceModel> healedServiceModel = healServiceModel(orchestrationTemplateEntity, type);
+ healedServiceModel.ifPresent(serviceModel -> serviceModelDao.overrideServiceModel(itemId, version, serviceModel));
+ }
- private ToscaServiceModel healServiceModelFromZip(FileContentHandler contentMap) {
- TranslatorOutput translatorOutput =
- HeatToToscaUtil.loadAndTranslateTemplateData(contentMap);
+ private Optional<ToscaServiceModel> healServiceModel(OrchestrationTemplateEntity orchestrationTemplateEntity, OnboardingTypesEnum type)
+ throws IOException {
+ switch (type) {
+ case ZIP:
+ return Optional.of(healServiceModelFromZip(getFileContentHandlerForHealing(orchestrationTemplateEntity, type)));
+ case CSAR:
+ return Optional.of(healServiceModelFromCsar(getFileContentHandlerForHealing(orchestrationTemplateEntity, type)));
+ default:
+ return Optional.empty();
+ }
+ }
- if (areThereValidationErrors(translatorOutput)) {
- String validationErrorsAsString = MessageContainerUtil.getErrorMessagesListAsString
- (MessageContainerUtil
- .getMessageByLevel(ErrorLevel.ERROR, translatorOutput.getErrorMessages()));
- throw new RuntimeException(VALIDATION_FAILURE_MESSAGE + validationErrorsAsString);
+ private FileContentHandler getFileContentHandlerForHealing(OrchestrationTemplateEntity orchestrationTemplateEntity, OnboardingTypesEnum type)
+ throws IOException {
+ byte[] uploadedFileContent = orchestrationTemplateEntity.getContentData().array();
+ return CommonUtil.validateAndUploadFileContent(type, uploadedFileContent);
}
- return translatorOutput.getToscaServiceModel();
- }
+ private ToscaServiceModel healServiceModelFromZip(FileContentHandler contentMap) {
+ TranslatorOutput translatorOutput = HeatToToscaUtil.loadAndTranslateTemplateData(contentMap);
+ if (areThereValidationErrors(translatorOutput)) {
+ String validationErrorsAsString = MessageContainerUtil
+ .getErrorMessagesListAsString(MessageContainerUtil.getMessageByLevel(ErrorLevel.ERROR, translatorOutput.getErrorMessages()));
+ throw new RuntimeException(VALIDATION_FAILURE_MESSAGE + validationErrorsAsString);
+ }
+ return translatorOutput.getToscaServiceModel();
+ }
- private boolean areThereValidationErrors(TranslatorOutput translatorOutput) {
- return MapUtils.isNotEmpty(MessageContainerUtil.getMessageByLevel(ErrorLevel.ERROR,
- translatorOutput.getErrorMessages()));
- }
+ private boolean areThereValidationErrors(TranslatorOutput translatorOutput) {
+ return MapUtils.isNotEmpty(MessageContainerUtil.getMessageByLevel(ErrorLevel.ERROR, translatorOutput.getErrorMessages()));
+ }
- private ToscaServiceModel healServiceModelFromCsar(FileContentHandler contentMap)
- throws IOException {
- ToscaConverter toscaConverter = ToscaConverterFactory.getInstance().createInterface();
- return toscaConverter.convert(contentMap);
- }
+ private ToscaServiceModel healServiceModelFromCsar(FileContentHandler contentMap) throws IOException {
+ ToscaConverter toscaConverter = ToscaConverterFactory.getInstance().createInterface();
+ return toscaConverter.convert(contentMap);
+ }
}