1 package org.openecomp.sdc.healing.healers;
4 import org.openecomp.core.model.dao.ServiceModelDao;
5 import org.openecomp.core.model.dao.ServiceModelDaoFactory;
6 import org.openecomp.core.model.types.ServiceElement;
7 import org.openecomp.core.translator.datatypes.TranslatorOutput;
8 import org.openecomp.core.utilities.file.FileContentHandler;
9 import org.openecomp.core.utilities.orchestration.OnboardingTypesEnum;
10 import org.openecomp.sdc.common.utils.CommonUtil;
11 import org.openecomp.sdc.healing.interfaces.Healer;
12 import org.openecomp.sdc.logging.api.Logger;
13 import org.openecomp.sdc.logging.api.LoggerFactory;
14 import org.openecomp.sdc.logging.context.impl.MdcDataDebugMessage;
15 import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel;
16 import org.openecomp.sdc.translator.services.heattotosca.HeatToToscaUtil;
17 import org.openecomp.sdc.vendorsoftwareproduct.dao.OrchestrationTemplateDao;
18 import org.openecomp.sdc.vendorsoftwareproduct.dao.OrchestrationTemplateDaoFactory;
19 import org.openecomp.sdc.vendorsoftwareproduct.dao.type.OrchestrationTemplateEntity;
20 import org.openecomp.sdc.versioning.dao.types.Version;
22 import java.util.Objects;
23 import java.util.Optional;
25 public class HeatToToscaTranslationHealer implements Healer {
27 private static final OrchestrationTemplateDao orchestrationTemplateDao =
28 OrchestrationTemplateDaoFactory.getInstance().createInterface();
29 private static final ServiceModelDao<ToscaServiceModel, ServiceElement> serviceModelDao =
30 ServiceModelDaoFactory.getInstance().createInterface();
31 private static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage();
33 private final Logger log = (Logger) LoggerFactory.getLogger(this.getClass().getName());
35 public HeatToToscaTranslationHealer() {
40 public Object heal(String vspId, Version version) throws Exception {
41 mdcDataDebugMessage.debugEntryMessage(null);;
43 OrchestrationTemplateEntity uploadData =
44 orchestrationTemplateDao.get(vspId, version);
46 if (Objects.isNull(uploadData) || Objects.isNull(uploadData.getContentData())) {
47 return Optional.empty();
50 FileContentHandler fileContentHandler;
51 TranslatorOutput translatorOutput;
54 CommonUtil.validateAndUploadFileContent(OnboardingTypesEnum.ZIP, uploadData
55 .getContentData().array());
57 HeatToToscaUtil.loadAndTranslateTemplateData(fileContentHandler);
58 } catch (Exception e) {
60 return Optional.empty();
63 if (Objects.isNull(translatorOutput)) {
64 return Optional.empty();
67 if (translatorOutput.getToscaServiceModel() == null) {
68 return Optional.empty();
70 //templateDao.deleteAll(vspId, version);
71 serviceModelDao.deleteAll(vspId, version);
72 serviceModelDao.storeServiceModel(vspId, version, translatorOutput.getToscaServiceModel());
73 mdcDataDebugMessage.debugExitMessage("VSP id", vspId);
75 return translatorOutput;