From dd60339b06d252fcb1382aa97ab3d65b37dad021 Mon Sep 17 00:00:00 2001 From: Michael Lando Date: Wed, 12 Jul 2017 00:54:52 +0300 Subject: [sdc] rebase update Change-Id: I8f1fc7150975122dd9f3f4e653b9983064b399a6 Signed-off-by: Michael Lando --- .../openecomp-sdc-healing-impl/pom.xml | 10 +++ .../sdc/healing/healers/VlmVersionHealer.java | 73 ++++++++++++++++++++++ 2 files changed, 83 insertions(+) create mode 100644 openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/VlmVersionHealer.java (limited to 'openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl') diff --git a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/pom.xml b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/pom.xml index 70d40be2a6..bdbf985832 100644 --- a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/pom.xml +++ b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/pom.xml @@ -29,6 +29,16 @@ ${project.version} runtime + + org.openecomp.sdc + openecomp-sdc-vendor-license-api + ${project.version} + + + org.openecomp.sdc + openecomp-sdc-vendor-license-api + ${project.version} + 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 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 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; + + } +} -- cgit 1.2.3-korg