Merge "Add proxy support"
[sdc.git] / openecomp-be / lib / openecomp-healing-lib / openecomp-sdc-healing-impl / src / main / java / org / openecomp / sdc / healing / healers / VlmVersionHealer.java
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.VendorSoftwareProductDaoFactory;
15 import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductInfoDao;
16 import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductInfoDaoFactory;
17 import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails;
18 import org.openecomp.sdc.versioning.dao.types.Version;
19
20 import java.util.ArrayList;
21 import java.util.Collection;
22 import java.util.List;
23 import java.util.Map;
24 import java.util.Optional;
25
26 /**
27  * Created by TALIO on 7/3/2017.
28  */
29 public class VlmVersionHealer implements Healer {
30   private static final VendorLicenseFacade vendorLicenseFacade =
31       VendorLicenseFacadeFactory.getInstance().createInterface();
32   private static final VendorSoftwareProductInfoDao vspInfoDao =
33       VendorSoftwareProductInfoDaoFactory.getInstance().createInterface();
34   private static final LicenseAgreementDao licenseAgreementDao =
35       LicenseAgreementDaoFactory.getInstance().createInterface();
36   private static final Logger logger =
37       LoggerFactory.getLogger(VlmVersionHealer.class);
38
39   @Override
40   public Object heal(Map<String, Object> healingParams) throws Exception {
41     String vspId = (String) healingParams.get(SdcCommon.VSP_ID);
42     Version version = (Version) healingParams.get(SdcCommon.VERSION);
43     String user = (String) healingParams.get(SdcCommon.USER);
44
45     VspDetails vspDetails = vspInfoDao.get(new VspDetails(vspId, version));
46     VersionedVendorLicenseModel vendorLicenseModel;
47
48     try{
49       vendorLicenseModel =
50           vendorLicenseFacade.getVendorLicenseModel(vspDetails.getVendorId(), null, user);
51     } catch (Exception e){
52       logger.debug("No Vlm was found for Vsp " + vspDetails.getName());
53       return Optional.empty();
54     }
55
56     VendorLicenseModelEntity vlm = vendorLicenseModel.getVendorLicenseModel();
57     String vlmId = vlm.getId();
58     Version vlmVersion = vlm.getVersion();
59
60     List<LicenseAgreementEntity> laList =
61         new ArrayList<>(
62             licenseAgreementDao.list(new LicenseAgreementEntity(vlmId, vlmVersion, null)));
63
64     vspDetails.setVlmVersion(vlmVersion);
65     vspDetails.setLicenseAgreement(laList.get(0).getId());
66     vspDetails.setFeatureGroups(new ArrayList<>(laList.get(0).getFeatureGroupIds()));
67
68     vspInfoDao.update(vspDetails);
69
70     return vspDetails;
71
72   }
73 }