diff options
Diffstat (limited to 'openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/VlmVersionHealer.java')
-rw-r--r-- | openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/VlmVersionHealer.java | 69 |
1 files changed, 24 insertions, 45 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 index 085923b8a0..a57ac74350 100644 --- 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 @@ -1,26 +1,21 @@ package org.openecomp.sdc.healing.healers; -import org.apache.commons.collections4.CollectionUtils; -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.VendorSoftwareProductInfoDao; import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductInfoDaoFactory; import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails; +import org.openecomp.sdc.versioning.VersioningManager; +import org.openecomp.sdc.versioning.VersioningManagerFactory; import org.openecomp.sdc.versioning.dao.types.Version; -import org.openecomp.sdc.versioning.types.VersionInfo; +import org.openecomp.sdc.versioning.dao.types.VersionStatus; import java.util.ArrayList; -import java.util.List; -import java.util.Map; +import java.util.Collection; import java.util.Objects; import java.util.Optional; @@ -28,8 +23,8 @@ 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 VersioningManager versioningManager = + VersioningManagerFactory.getInstance().createInterface(); private static final VendorSoftwareProductInfoDao vspInfoDao = VendorSoftwareProductInfoDaoFactory.getInstance().createInterface(); private static final LicenseAgreementDao licenseAgreementDao = @@ -38,51 +33,35 @@ public class VlmVersionHealer implements Healer { 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); - + public Object heal(String vspId, Version version) throws Exception { VspDetails vspDetails = vspInfoDao.get(new VspDetails(vspId, version)); - VersionedVendorLicenseModel vendorLicenseModel; - - if(!Objects.isNull(vspDetails.getVlmVersion())) { + + if (!Objects.isNull(vspDetails.getVlmVersion())) { return Optional.empty(); } - - try{ - vendorLicenseModel = - vendorLicenseFacade.getVendorLicenseModel(vspDetails.getVendorId(), null, user); - } catch (Exception e){ - logger.debug("" + e); + // get the certified vlm version with the highest number in its name + Optional<Version> certifiedVlmVersion = + versioningManager.list(vspDetails.getVendorId()).stream() + .filter(ver -> VersionStatus.Certified == ver.getStatus()) + .max((o1, o2) -> ((Double) Double.parseDouble(o1.getName())) + .compareTo(Double.parseDouble(o2.getName()))); + if (!certifiedVlmVersion.isPresent()) { logger.debug("No Vlm was found for Vsp " + vspDetails.getName()); return Optional.empty(); } + vspDetails.setVlmVersion(certifiedVlmVersion.get()); - VendorLicenseModelEntity vlm = vendorLicenseModel.getVendorLicenseModel(); - String vlmId = vlm.getId(); - Version vlmVersion = getLatestFinalVlmVersion(vendorLicenseModel.getVersionInfo()); - - List<LicenseAgreementEntity> laList = - new ArrayList<>( - licenseAgreementDao.list(new LicenseAgreementEntity(vlmId, vlmVersion, null))); - - - vspDetails.setVlmVersion(vlmVersion); - - if(CollectionUtils.isNotEmpty(laList)) { - vspDetails.setLicenseAgreement(laList.get(0).getId()); - vspDetails.setFeatureGroups(new ArrayList<>(laList.get(0).getFeatureGroupIds())); + Collection<LicenseAgreementEntity> licenseAgreements = licenseAgreementDao.list( + new LicenseAgreementEntity(vspDetails.getVendorId(), certifiedVlmVersion.get(), null)); + if (!licenseAgreements.isEmpty()) { + LicenseAgreementEntity licenseAgreement = licenseAgreements.iterator().next(); + vspDetails.setLicenseAgreement(licenseAgreement.getId()); + vspDetails.setFeatureGroups(new ArrayList<>(licenseAgreement.getFeatureGroupIds())); } vspInfoDao.update(vspDetails); - return vspDetails; - } - - private Version getLatestFinalVlmVersion(VersionInfo versionInfo){ - return versionInfo.getActiveVersion().isFinal() ? versionInfo.getActiveVersion() - : versionInfo.getLatestFinalVersion(); + return vspDetails; } } |