Create new VSP, onboard from TOSCA file - UI
[sdc.git] / openecomp-be / lib / openecomp-healing-lib / openecomp-sdc-healing-impl / src / main / java / org / openecomp / sdc / healing / healers / VspOnboardingMethodHealer.java
1 package org.openecomp.sdc.healing.healers;
2
3
4 import org.openecomp.core.utilities.orchestration.OnboardingTypesEnum;
5 import org.openecomp.sdc.common.utils.SdcCommon;
6 import org.openecomp.sdc.healing.interfaces.Healer;
7 import org.openecomp.sdc.logging.context.impl.MdcDataDebugMessage;
8 import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductInfoDao;
9 import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductInfoDaoFactory;
10 import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails;
11 import org.openecomp.sdc.versioning.dao.types.Version;
12
13 import java.util.Map;
14 import java.util.Objects;
15
16 public class VspOnboardingMethodHealer implements Healer {
17   private static VendorSoftwareProductInfoDao vendorSoftwareProductInfoDao =
18       VendorSoftwareProductInfoDaoFactory.getInstance().createInterface();
19   private static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage();
20
21   public VspOnboardingMethodHealer(){
22   }
23
24   public VspOnboardingMethodHealer( VendorSoftwareProductInfoDao inVendorSoftwareProductInfoDao){
25     vendorSoftwareProductInfoDao = inVendorSoftwareProductInfoDao;
26   }
27
28
29   @Override
30   public Object heal(Map<String, Object> healingParams) throws Exception {
31     mdcDataDebugMessage.debugEntryMessage(null, null);
32
33     String onboardingMethod=null;
34     String vspId = (String) healingParams.get(SdcCommon.VSP_ID);
35     Version version = (Version) healingParams.get(SdcCommon.VERSION);
36     VspDetails vendorSoftwareProductInfo =
37         vendorSoftwareProductInfoDao.get(new VspDetails(vspId, version));
38     String onboardingValue = vendorSoftwareProductInfo.getOnboardingMethod();
39
40     if(Objects.isNull(onboardingValue)) {
41       onboardingMethod="NetworkPackage";
42
43       updateVSPInfo(OnboardingTypesEnum.ZIP.toString(), onboardingMethod, vendorSoftwareProductInfo);
44     } else if (onboardingValue.equals("HEAT")){
45       onboardingMethod="NetworkPackage";
46       updateVSPInfo(OnboardingTypesEnum.ZIP.toString(),onboardingMethod, vendorSoftwareProductInfo);
47     }
48     return onboardingMethod;
49   }
50
51   private void updateVSPInfo(String onboardingOrigin,  String onboardingMethod, VspDetails vendorSoftwareProductInfo) {
52     vendorSoftwareProductInfo.setOnboardingMethod(onboardingMethod);
53     vendorSoftwareProductInfo.setOnboardingOrigin(onboardingOrigin);
54     vendorSoftwareProductInfoDao.update(vendorSoftwareProductInfo);
55   }
56 }