4accd790ab5c45399d18358192ab502a8c490178
[sdc.git] /
1 package org.openecomp.sdc.healing.healers;
2
3 import org.openecomp.sdc.common.utils.SdcCommon;
4 import org.openecomp.sdc.healing.interfaces.Healer;
5 import org.openecomp.sdc.logging.api.Logger;
6 import org.openecomp.sdc.logging.api.LoggerFactory;
7 import org.openecomp.sdc.vendorlicense.dao.LicenseAgreementDao;
8 import org.openecomp.sdc.vendorlicense.dao.LicenseAgreementDaoFactory;
9 import org.openecomp.sdc.vendorlicense.dao.types.LicenseAgreementEntity;
10 import org.openecomp.sdc.vendorlicense.dao.types.VendorLicenseModelEntity;
11 import org.openecomp.sdc.vendorlicense.facade.VendorLicenseFacade;
12 import org.openecomp.sdc.vendorlicense.facade.VendorLicenseFacadeFactory;
13 import org.openecomp.sdc.vendorlicense.types.VersionedVendorLicenseModel;
14 import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductInfoDao;
15 import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductInfoDaoFactory;
16 import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails;
17 import org.openecomp.sdc.versioning.dao.types.Version;
18
19 import java.util.ArrayList;
20 import java.util.List;
21 import java.util.Map;
22 import java.util.Objects;
23 import java.util.Optional;
24
25 /**
26  * Created by TALIO on 7/3/2017.
27  */
28 public class VlmVersionHealer implements Healer {
29   private static final VendorLicenseFacade vendorLicenseFacade =
30       VendorLicenseFacadeFactory.getInstance().createInterface();
31   private static final VendorSoftwareProductInfoDao vspInfoDao =
32       VendorSoftwareProductInfoDaoFactory.getInstance().createInterface();
33   private static final LicenseAgreementDao licenseAgreementDao =
34       LicenseAgreementDaoFactory.getInstance().createInterface();
35   private static final Logger logger =
36       LoggerFactory.getLogger(VlmVersionHealer.class);
37
38   @Override
39   public Object heal(Map<String, Object> healingParams) throws Exception {
40     String vspId = (String) healingParams.get(SdcCommon.VSP_ID);
41     Version version = (Version) healingParams.get(SdcCommon.VERSION);
42     String user = (String) healingParams.get(SdcCommon.USER);
43
44     VspDetails vspDetails = vspInfoDao.get(new VspDetails(vspId, version));
45     VersionedVendorLicenseModel vendorLicenseModel;
46     
47     if(!Objects.isNull(vspDetails.getVlmVersion())) {
48       return Optional.empty();
49     }
50
51
52     try{
53       vendorLicenseModel =
54           vendorLicenseFacade.getVendorLicenseModel(vspDetails.getVendorId(), null, user);
55     } catch (Exception e){
56       logger.debug("" + e);
57       logger.debug("No Vlm was found for Vsp " + vspDetails.getName());
58       return Optional.empty();
59     }
60
61     VendorLicenseModelEntity vlm = vendorLicenseModel.getVendorLicenseModel();
62     String vlmId = vlm.getId();
63     Version vlmVersion = vlm.getVersion();
64
65     List<LicenseAgreementEntity> laList =
66         new ArrayList<>(
67             licenseAgreementDao.list(new LicenseAgreementEntity(vlmId, vlmVersion, null)));
68
69
70     vspDetails.setVlmVersion(vlmVersion);
71     vspDetails.setLicenseAgreement(laList.get(0).getId());
72     vspDetails.setFeatureGroups(new ArrayList<>(laList.get(0).getFeatureGroupIds()));
73
74     vspInfoDao.update(vspDetails);
75
76     return vspDetails;
77
78   }
79 }