diff options
Diffstat (limited to 'openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main')
-rw-r--r-- | openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/VlmVersionHealer.java | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/VlmVersionHealer.java b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/VlmVersionHealer.java new file mode 100644 index 0000000000..5eb15bf9ba --- /dev/null +++ b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/VlmVersionHealer.java @@ -0,0 +1,73 @@ +package org.openecomp.sdc.healing.healers; + +import org.openecomp.sdc.common.utils.SdcCommon; +import org.openecomp.sdc.healing.interfaces.Healer; +import org.openecomp.sdc.logging.api.Logger; +import org.openecomp.sdc.logging.api.LoggerFactory; +import org.openecomp.sdc.vendorlicense.dao.LicenseAgreementDao; +import org.openecomp.sdc.vendorlicense.dao.LicenseAgreementDaoFactory; +import org.openecomp.sdc.vendorlicense.dao.types.LicenseAgreementEntity; +import org.openecomp.sdc.vendorlicense.dao.types.VendorLicenseModelEntity; +import org.openecomp.sdc.vendorlicense.facade.VendorLicenseFacade; +import org.openecomp.sdc.vendorlicense.facade.VendorLicenseFacadeFactory; +import org.openecomp.sdc.vendorlicense.types.VersionedVendorLicenseModel; +import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductDaoFactory; +import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductInfoDao; +import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductInfoDaoFactory; +import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails; +import org.openecomp.sdc.versioning.dao.types.Version; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import java.util.Map; +import java.util.Optional; + +/** + * Created by TALIO on 7/3/2017. + */ +public class VlmVersionHealer implements Healer { + private static final VendorLicenseFacade vendorLicenseFacade = + VendorLicenseFacadeFactory.getInstance().createInterface(); + private static final VendorSoftwareProductInfoDao vspInfoDao = + VendorSoftwareProductInfoDaoFactory.getInstance().createInterface(); + private static final LicenseAgreementDao licenseAgreementDao = + LicenseAgreementDaoFactory.getInstance().createInterface(); + private static final Logger logger = + LoggerFactory.getLogger(VlmVersionHealer.class); + + @Override + public Object heal(Map<String, Object> healingParams) throws Exception { + String vspId = (String) healingParams.get(SdcCommon.VSP_ID); + Version version = (Version) healingParams.get(SdcCommon.VERSION); + String user = (String) healingParams.get(SdcCommon.USER); + + VspDetails vspDetails = vspInfoDao.get(new VspDetails(vspId, version)); + VersionedVendorLicenseModel vendorLicenseModel; + + try{ + vendorLicenseModel = + vendorLicenseFacade.getVendorLicenseModel(vspDetails.getVendorId(), null, user); + } catch (Exception e){ + logger.debug("No Vlm was found for Vsp " + vspDetails.getName()); + return Optional.empty(); + } + + VendorLicenseModelEntity vlm = vendorLicenseModel.getVendorLicenseModel(); + String vlmId = vlm.getId(); + Version vlmVersion = vlm.getVersion(); + + List<LicenseAgreementEntity> laList = + new ArrayList<>( + licenseAgreementDao.list(new LicenseAgreementEntity(vlmId, vlmVersion, null))); + + vspDetails.setVlmVersion(vlmVersion); + vspDetails.setLicenseAgreement(laList.get(0).getId()); + vspDetails.setFeatureGroups(new ArrayList<>(laList.get(0).getFeatureGroupIds())); + + vspInfoDao.update(vspDetails); + + return vspDetails; + + } +} |