1 package org.openecomp.sdc.healing.healers;
4 import org.openecomp.core.utilities.orchestration.OnboardingTypesEnum;
5 import org.openecomp.sdc.healing.interfaces.Healer;
6 import org.openecomp.sdc.logging.context.impl.MdcDataDebugMessage;
7 import org.openecomp.sdc.vendorsoftwareproduct.dao.OrchestrationTemplateCandidateDao;
8 import org.openecomp.sdc.vendorsoftwareproduct.dao.OrchestrationTemplateCandidateDaoFactory;
9 import org.openecomp.sdc.vendorsoftwareproduct.dao.OrchestrationTemplateDao;
10 import org.openecomp.sdc.vendorsoftwareproduct.dao.OrchestrationTemplateDaoFactory;
11 import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductInfoDao;
12 import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductInfoDaoFactory;
13 import org.openecomp.sdc.vendorsoftwareproduct.dao.type.OnboardingMethod;
14 import org.openecomp.sdc.vendorsoftwareproduct.dao.type.OrchestrationTemplateCandidateData;
15 import org.openecomp.sdc.vendorsoftwareproduct.dao.type.OrchestrationTemplateEntity;
16 import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails;
17 import org.openecomp.sdc.versioning.dao.types.Version;
19 import java.util.Objects;
21 public class VspOnboardingMethodHealer implements Healer {
23 private static final String DEFAULT_FILE_NAME = "Upload File";
24 private static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage();
25 private VendorSoftwareProductInfoDao vendorSoftwareProductInfoDao;
26 private OrchestrationTemplateDao orchestrationTemplateDao;
27 private OrchestrationTemplateCandidateDao candidateDao;
29 public VspOnboardingMethodHealer(){
30 this(VendorSoftwareProductInfoDaoFactory.getInstance().createInterface(),
31 OrchestrationTemplateDaoFactory.getInstance().createInterface(),
32 OrchestrationTemplateCandidateDaoFactory.getInstance().createInterface());
35 public VspOnboardingMethodHealer(VendorSoftwareProductInfoDao vspInfoDao,
36 OrchestrationTemplateDao orchestrationTemplateDao,
37 OrchestrationTemplateCandidateDao candidateDao) {
38 this.vendorSoftwareProductInfoDao = vspInfoDao;
39 this.orchestrationTemplateDao = orchestrationTemplateDao;
40 this.candidateDao = candidateDao;
44 public Object heal(String vspId, Version version) throws Exception {
45 mdcDataDebugMessage.debugEntryMessage(null);
47 VspDetails vsp = vendorSoftwareProductInfoDao.get(new VspDetails(vspId, version));
48 healOnboardingMethod(vsp);
50 if (!OnboardingMethod.Manual.name().equals(vsp.getOnboardingMethod())) {
51 healOrchestrationTemplateFileName(vspId, version);
52 healOrchestrationTemplateCandidateFileName(vspId, version);
55 mdcDataDebugMessage.debugExitMessage(null);
59 private void healOnboardingMethod(VspDetails vsp) {
60 if (Objects.isNull(vsp.getOnboardingMethod()) || "HEAT".equals(vsp.getOnboardingMethod())) {
61 vsp.setOnboardingMethod(OnboardingMethod.NetworkPackage.name());
62 vendorSoftwareProductInfoDao.update(vsp);
66 private void healOrchestrationTemplateFileName(String vspId, Version version) {
67 OrchestrationTemplateEntity orchestrationTemplate =
68 orchestrationTemplateDao.get(vspId, version);
70 if (orchestrationTemplate == null || orchestrationTemplate.getContentData() == null ||
71 orchestrationTemplate.getFileSuffix() != null) {
74 orchestrationTemplate.setFileSuffix(OnboardingTypesEnum.ZIP.toString());
75 orchestrationTemplate.setFileName(DEFAULT_FILE_NAME);
77 orchestrationTemplateDao.update(vspId, version, orchestrationTemplate);
80 private void healOrchestrationTemplateCandidateFileName(String vspId, Version version) {
81 OrchestrationTemplateCandidateData candidate = candidateDao.get(vspId, version);
83 if (candidate == null || candidate.getContentData() == null ||
84 candidate.getFileSuffix() != null) {
87 candidate.setFileSuffix(OnboardingTypesEnum.ZIP.toString());
88 candidate.setFileName(DEFAULT_FILE_NAME);
90 candidateDao.update(vspId, version, candidate);