diff options
author | Michael Lando <ml636r@att.com> | 2017-07-12 00:54:52 +0300 |
---|---|---|
committer | Michael Lando <ml636r@att.com> | 2017-07-12 01:55:12 +0300 |
commit | dd60339b06d252fcb1382aa97ab3d65b37dad021 (patch) | |
tree | c1551ce67cd77ca810ad5f579eb3617af86be85f /openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl | |
parent | ab146a193c43e9be0e9efeac7bab2690a7ba2d33 (diff) |
[sdc] rebase update
Change-Id: I8f1fc7150975122dd9f3f4e653b9983064b399a6
Signed-off-by: Michael Lando <ml636r@att.com>
Diffstat (limited to 'openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl')
2 files changed, 83 insertions, 0 deletions
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 @@ <version>${project.version}</version> <scope>runtime</scope> </dependency> + <dependency> + <groupId>org.openecomp.sdc</groupId> + <artifactId>openecomp-sdc-vendor-license-api</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.openecomp.sdc</groupId> + <artifactId>openecomp-sdc-vendor-license-api</artifactId> + <version>${project.version}</version> + </dependency> </dependencies> </project> 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; + + } +} |