diff options
author | sheetalm <sheetal.mudholkar@amdocs.com> | 2018-01-03 19:42:55 +0530 |
---|---|---|
committer | Vitaly Emporopulo <Vitaliy.Emporopulo@amdocs.com> | 2018-01-04 11:31:19 +0000 |
commit | 56c19bc9a30d59b7a9893f39bba9450536500411 (patch) | |
tree | cae726618cfc09f1efb1552d62a10a57e660399a /openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/main | |
parent | 5a4e534aa1581504aac9ec809940cc5c561667e0 (diff) |
Fix issue in vendor-license.xml
If MRN is updated in feature group then update all linked EPs and Lkgs
with new different versionUuId. This will generate new version in
vendor-license.xml with updated MRN for EP and Lkgs
Change-Id: Ib05d931397f24b8131471f423ca43af49b98df8b
Issue-ID: SDC-870
Signed-off-by: sheetalm <sheetal.mudholkar@amdocs.com>
Diffstat (limited to 'openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/main')
-rw-r--r-- | openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/main/java/org/openecomp/sdc/vendorlicense/impl/VendorLicenseManagerImpl.java | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/main/java/org/openecomp/sdc/vendorlicense/impl/VendorLicenseManagerImpl.java b/openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/main/java/org/openecomp/sdc/vendorlicense/impl/VendorLicenseManagerImpl.java index ac7379615f..5d5c0076e3 100644 --- a/openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/main/java/org/openecomp/sdc/vendorlicense/impl/VendorLicenseManagerImpl.java +++ b/openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/main/java/org/openecomp/sdc/vendorlicense/impl/VendorLicenseManagerImpl.java @@ -16,7 +16,9 @@ package org.openecomp.sdc.vendorlicense.impl; +import org.apache.commons.collections.CollectionUtils; import org.openecomp.core.util.UniqueValueUtil; +import org.openecomp.core.utilities.CommonMethods; import org.openecomp.sdc.common.errors.CoreException; import org.openecomp.sdc.common.errors.ErrorCode; import org.openecomp.sdc.datatypes.error.ErrorLevel; @@ -53,6 +55,7 @@ import org.openecomp.sdc.versioning.dao.types.Version; import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.util.Collection; +import java.util.Objects; import java.util.Optional; import java.util.Set; @@ -271,10 +274,66 @@ public class VendorLicenseManagerImpl implements VendorLicenseManager { featureGroupDao.updateFeatureGroup(featureGroup, addedEntitlementPools, removedEntitlementPools, addedLicenseKeyGroups, removedLicenseKeyGroups); + updateEpLkgOnMrnChange(featureGroup, addedLicenseKeyGroups, addedEntitlementPools, retrieved); + mdcDataDebugMessage.debugExitMessage(VLM_ID_FG_ID, featureGroup .getVendorLicenseModelId(), featureGroup.getId()); } + /** + * If MRN is updated in feature group then update all linked EPs and Lkgs with new versionUuId + * @param featureGroup - Feature Group entity which is requested for update + * @param addedLicenseKeyGroups - LicenseKeyGroups added with Feature Group + * @param addedEntitlementPools - EntitlementPools added with Feature Group + * @param retrieved - Feature Group entity fetched from database + */ + private void updateEpLkgOnMrnChange(FeatureGroupEntity featureGroup, + Set<String> addedLicenseKeyGroups, + Set<String> addedEntitlementPools, + FeatureGroupEntity retrieved) { + if (Objects.nonNull(retrieved.getManufacturerReferenceNumber()) + && !retrieved.getManufacturerReferenceNumber().equals(featureGroup + .getManufacturerReferenceNumber())) { + if (CollectionUtils.isEmpty(addedEntitlementPools)) { + updateEntitlementPool(featureGroup, retrieved.getEntitlementPoolIds()); + } else { + updateEntitlementPool(featureGroup, addedEntitlementPools); + } + + if (CollectionUtils.isEmpty(addedLicenseKeyGroups)) { + updateLicenseKeyGroup(featureGroup, retrieved.getLicenseKeyGroupIds()); + } else { + updateLicenseKeyGroup(featureGroup, addedLicenseKeyGroups); + } + } + } + + private void updateEntitlementPool(FeatureGroupEntity featureGroup, + Set<String> entitlementPoolIds) { + for (String epId: entitlementPoolIds) { + final EntitlementPoolEntity entitlementPoolEntity = entitlementPoolDao + .get(new EntitlementPoolEntity(featureGroup.getVendorLicenseModelId(), featureGroup + .getVersion(), epId)); + if (Objects.nonNull(entitlementPoolEntity)) { + entitlementPoolEntity.setVersionUuId(CommonMethods.nextUuId()); + entitlementPoolDao.update(entitlementPoolEntity); + } + } + } + + private void updateLicenseKeyGroup(FeatureGroupEntity featureGroup, + Set<String> licenseKeyGroupIds) { + for (String lkgId: licenseKeyGroupIds) { + final LicenseKeyGroupEntity licenseKeyGroupEntity = licenseKeyGroupDao + .get(new LicenseKeyGroupEntity(featureGroup.getVendorLicenseModelId(), + featureGroup.getVersion(), lkgId)); + if (Objects.nonNull(licenseKeyGroupEntity)) { + licenseKeyGroupEntity.setVersionUuId(CommonMethods.nextUuId()); + licenseKeyGroupDao.update(licenseKeyGroupEntity); + } + } + } + @Override public FeatureGroupModel getFeatureGroupModel(FeatureGroupEntity featureGroup) { mdcDataDebugMessage.debugEntryMessage(VLM_ID_FG_ID, |