From 61070c9c6b665fdea79b3ccdfeafc3a6b50d262e Mon Sep 17 00:00:00 2001 From: Avi Ziv Date: Wed, 26 Jul 2017 17:37:57 +0300 Subject: [SDC] Full OnBoard health-check and NFoD support Change-Id: I606f8a52c7e6d2bd5558f824957d890e552c5423 Signed-off-by: Avi Ziv --- .../zusammen/EntitlementPoolZusammenDaoImpl.java | 36 +------ .../zusammen/LicenseKeyGroupZusammenDaoImpl.java | 33 ++++++- .../facade/impl/VendorLicenseFacadeImpl.java | 110 +++++++++++---------- .../impl/VendorLicenseArtifactsServiceImpl.java | 42 +++++++- ...itlementPoolEntityForVendorLicenseArtifact.java | 10 +- .../MixinEntitlementPoolEntityForVnfArtifact.java | 10 +- .../impl/types/mixins/MixinFeatureGroupModel.java | 6 +- ...enseKeyGroupEntityForVendorLicenseArtifact.java | 23 ++++- .../MixinLicenseKeyGroupEntityForVnfArtifact.java | 24 ++++- 9 files changed, 185 insertions(+), 109 deletions(-) (limited to 'openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp') diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/EntitlementPoolZusammenDaoImpl.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/EntitlementPoolZusammenDaoImpl.java index 4cccb6712a..b880c67cbc 100644 --- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/EntitlementPoolZusammenDaoImpl.java +++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/EntitlementPoolZusammenDaoImpl.java @@ -11,11 +11,7 @@ import com.amdocs.zusammen.datatypes.item.Info; import org.openecomp.core.zusammen.api.ZusammenAdaptor; import org.openecomp.core.zusammen.api.ZusammenUtil; import org.openecomp.sdc.vendorlicense.dao.EntitlementPoolDao; -import org.openecomp.sdc.vendorlicense.dao.types.AggregationFunction; -import org.openecomp.sdc.vendorlicense.dao.types.ChoiceOrOther; -import org.openecomp.sdc.vendorlicense.dao.types.EntitlementMetric; import org.openecomp.sdc.vendorlicense.dao.types.EntitlementPoolEntity; -import org.openecomp.sdc.vendorlicense.dao.types.EntitlementTime; import org.openecomp.sdc.vendorlicense.dao.types.MultiChoiceOrOther; import org.openecomp.sdc.vendorlicense.dao.types.OperationalScope; import org.openecomp.sdc.vendorlicense.dao.types.ThresholdUnit; @@ -214,15 +210,11 @@ public class EntitlementPoolZusammenDaoImpl implements EntitlementPoolDao { Info info = new Info(); info.setName(entitlementPool.getName()); info.setDescription(entitlementPool.getDescription()); + info.addProperty("version_uuid", entitlementPool.getVersionUuId()); info.addProperty("thresholdValue", entitlementPool.getThresholdValue()); info.addProperty("threshold_unit", entitlementPool.getThresholdUnit()); - info.addProperty("entitlement_metric", entitlementPool.getEntitlementMetric()); info.addProperty("increments", entitlementPool.getIncrements()); - info.addProperty("aggregation_func", entitlementPool.getAggregationFunction()); info.addProperty("operational_scope", entitlementPool.getOperationalScope()); - info.addProperty("EntitlementTime", entitlementPool.getTime()); - info.addProperty("manufacturerReferenceNumber", - entitlementPool.getManufacturerReferenceNumber()); info.addProperty("startDate", entitlementPool.getStartDate()); info.addProperty("expiryDate", entitlementPool.getExpiryDate()); entitlementPoolElement.setInfo(info); @@ -243,6 +235,7 @@ public class EntitlementPoolZusammenDaoImpl implements EntitlementPoolDao { new EntitlementPoolEntity(vlmId, version, elementInfo.getId().getValue()); entitlmentPool.setName(elementInfo.getInfo().getName()); entitlmentPool.setDescription(elementInfo.getInfo().getDescription()); + entitlmentPool.setVersionUuId(elementInfo.getInfo().getProperty("version_uuid")); entitlmentPool .setThresholdValue(elementInfo.getInfo().getProperty("thresholdValue") != null ? VlmZusammenUtil.toInteger(elementInfo.getInfo().getProperty("thresholdValue")) : null); @@ -250,17 +243,9 @@ public class EntitlementPoolZusammenDaoImpl implements EntitlementPoolDao { Object threshold_unit = elementInfo.getInfo().getProperty("threshold_unit"); entitlmentPool.setThresholdUnit( threshold_unit != null ? ThresholdUnit.valueOf(elementInfo.getInfo().getProperty("threshold_unit")) : null); - entitlmentPool.setEntitlementMetric( - getEntitlementMetricCoiceOrOther(elementInfo.getInfo().getProperty("entitlement_metric"))); entitlmentPool.setIncrements(elementInfo.getInfo().getProperty("increments")); - entitlmentPool.setAggregationFunction( - getAggregationFuncCoiceOrOther(elementInfo.getInfo().getProperty("aggregation_func"))); entitlmentPool.setOperationalScope(getOperationalScopeMultiChoiceOrOther( elementInfo.getInfo().getProperty("operational_scope"))); - entitlmentPool.setTime( - getEntitlementTimeCoiceOrOther(elementInfo.getInfo().getProperty("EntitlementTime"))); - entitlmentPool.setManufacturerReferenceNumber( - elementInfo.getInfo().getProperty("manufacturerReferenceNumber")); entitlmentPool.setStartDate(elementInfo.getInfo().getProperty("startDate")); entitlmentPool.setExpiryDate(elementInfo.getInfo().getProperty("expiryDate")); @@ -272,23 +257,6 @@ public class EntitlementPoolZusammenDaoImpl implements EntitlementPoolDao { return entitlmentPool; } - private ChoiceOrOther getAggregationFuncCoiceOrOther( - Map aggregationFunction) { - return new ChoiceOrOther<> - (AggregationFunction.valueOf((String) aggregationFunction.get("choice")), - (String) aggregationFunction.get("other")); - } - - private ChoiceOrOther getEntitlementMetricCoiceOrOther(Map entitlementMetric) { - return new ChoiceOrOther<>(EntitlementMetric.valueOf((String) entitlementMetric.get("choice") - ), (String) entitlementMetric.get("other")); - } - - private ChoiceOrOther getEntitlementTimeCoiceOrOther(Map entitlementTime) { - return new ChoiceOrOther<>(EntitlementTime.valueOf((String) entitlementTime.get("choice")), - (String) entitlementTime.get("other")); - } - private MultiChoiceOrOther getOperationalScopeMultiChoiceOrOther (Map operationalScope) { diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/LicenseKeyGroupZusammenDaoImpl.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/LicenseKeyGroupZusammenDaoImpl.java index 95dfd79cb6..976db94f39 100644 --- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/LicenseKeyGroupZusammenDaoImpl.java +++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/LicenseKeyGroupZusammenDaoImpl.java @@ -15,6 +15,7 @@ import org.openecomp.sdc.vendorlicense.dao.types.LicenseKeyGroupEntity; import org.openecomp.sdc.vendorlicense.dao.types.LicenseKeyType; import org.openecomp.sdc.vendorlicense.dao.types.MultiChoiceOrOther; import org.openecomp.sdc.vendorlicense.dao.types.OperationalScope; +import org.openecomp.sdc.vendorlicense.dao.types.ThresholdUnit; import org.openecomp.sdc.versioning.dao.types.Version; import java.util.ArrayList; @@ -212,8 +213,15 @@ public class LicenseKeyGroupZusammenDaoImpl implements LicenseKeyGroupDao { Info info = new Info(); info.setName(licenseKeyGroup.getName()); info.setDescription(licenseKeyGroup.getDescription()); + info.addProperty("version_uuid", licenseKeyGroup.getVersionUuId()); info.addProperty("LicenseKeyType", licenseKeyGroup.getType()); + info.addProperty("version_uuid", licenseKeyGroup.getVersionUuId()); info.addProperty("operational_scope", licenseKeyGroup.getOperationalScope()); + info.addProperty("startDate", licenseKeyGroup.getStartDate()); + info.addProperty("expiryDate", licenseKeyGroup.getExpiryDate()); + info.addProperty("thresholdValue", licenseKeyGroup.getThresholdValue()); + info.addProperty("thresholdUnits", licenseKeyGroup.getThresholdUnits()); + info.addProperty("increments", licenseKeyGroup.getIncrements()); lkgElement.setInfo(info); if (licenseKeyGroup.getReferencingFeatureGroups() != null @@ -233,11 +241,23 @@ public class LicenseKeyGroupZusammenDaoImpl implements LicenseKeyGroupDao { new LicenseKeyGroupEntity(vlmId, version, elementInfo.getId().getValue()); licenseKeyGroup.setName(elementInfo.getInfo().getName()); licenseKeyGroup.setDescription(elementInfo.getInfo().getDescription()); - + licenseKeyGroup.setVersionUuId(elementInfo.getInfo().getProperty("version_uuid")); licenseKeyGroup .setType(LicenseKeyType.valueOf(elementInfo.getInfo().getProperty("LicenseKeyType"))); + licenseKeyGroup.setVersionUuId(elementInfo.getInfo().getProperty("version_uuid")); licenseKeyGroup.setOperationalScope(getOperationalScopeMultiChoiceOrOther( elementInfo.getInfo().getProperty("operational_scope"))); + licenseKeyGroup.setStartDate(elementInfo.getInfo().getProperty("startDate")); + licenseKeyGroup.setExpiryDate(elementInfo.getInfo().getProperty("expiryDate")); + if (elementInfo.getInfo().getProperty("thresholdUnits") != null ){ + licenseKeyGroup.setThresholdUnits(ThresholdUnit.valueOf(elementInfo + .getInfo().getProperty("thresholdUnits"))); + } + if (elementInfo.getInfo().getProperty("thresholdValue") != null ){ + licenseKeyGroup.setThresholdValue(toInteger(elementInfo.getInfo().getProperty + ("thresholdValue"))); + } + licenseKeyGroup.setIncrements(elementInfo.getInfo().getProperty("increments")); if (elementInfo.getRelations() != null && elementInfo.getRelations().size() > 0) { licenseKeyGroup @@ -259,4 +279,15 @@ public class LicenseKeyGroupZusammenDaoImpl implements LicenseKeyGroupDao { } return null; } + + private Integer toInteger(Object val) { + if (val instanceof Double) { + return ((Double) val).intValue(); + } else if (val instanceof String) { + return new Integer((String) val); + } else if (val instanceof Integer) { + return (Integer) val; + } + throw new RuntimeException("invalid value for integer:" + val.getClass()); + } } diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/facade/impl/VendorLicenseFacadeImpl.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/facade/impl/VendorLicenseFacadeImpl.java index 857ee7f9fa..5f9dd10816 100644 --- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/facade/impl/VendorLicenseFacadeImpl.java +++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/facade/impl/VendorLicenseFacadeImpl.java @@ -25,6 +25,7 @@ import static org.openecomp.sdc.vendorlicense.errors.UncompletedVendorLicenseMod import static org.openecomp.sdc.vendorlicense.errors.UncompletedVendorLicenseModelErrorType.SUBMIT_UNCOMPLETED_VLM_MSG_LA_MISSING_FG; import static org.openecomp.sdc.vendorlicense.errors.UncompletedVendorLicenseModelErrorType.SUBMIT_UNCOMPLETED_VLM_MSG_MISSING_LA; +import org.apache.commons.collections4.CollectionUtils; import org.openecomp.core.util.UniqueValueUtil; import org.openecomp.core.utilities.CommonMethods; import org.openecomp.sdc.common.errors.CoreException; @@ -70,10 +71,7 @@ import org.openecomp.sdc.versioning.errors.VersionableSubEntityNotFoundErrorBuil import org.openecomp.sdc.versioning.types.VersionInfo; import org.openecomp.sdc.versioning.types.VersionableEntityAction; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.List; +import java.util.*; public class VendorLicenseFacadeImpl implements VendorLicenseFacade { @@ -128,8 +126,6 @@ public class VendorLicenseFacadeImpl implements VendorLicenseFacade { getVersionInfo(featureGroup.getVendorLicenseModelId(), VersionableEntityAction.Read, user), user); featureGroup.setVersion(version); - - return getFeatureGroup(featureGroup); } @@ -137,19 +133,9 @@ public class VendorLicenseFacadeImpl implements VendorLicenseFacade { FeatureGroupEntity retrieved = featureGroupDao.get(featureGroup); VersioningUtil .validateEntityExistence(retrieved, featureGroup, VendorLicenseModelEntity.ENTITY_TYPE); - if(retrieved.getManufacturerReferenceNumber() == null){ - Object[] entitlementPoolIdsList = retrieved.getEntitlementPoolIds().toArray(); - if(entitlementPoolIdsList != null && entitlementPoolIdsList.length > 0){ - String entitlementPoolId = entitlementPoolIdsList[0].toString(); - EntitlementPoolEntity entitlementPoolEntity = new EntitlementPoolEntity(retrieved.getVendorLicenseModelId(), - retrieved.getVersion(), entitlementPoolId); - entitlementPoolEntity = entitlementPoolDao.get(entitlementPoolEntity); - retrieved.setManufacturerReferenceNumber(entitlementPoolDao.getManufacturerReferenceNumber( - entitlementPoolEntity)); - featureGroupDao.update(retrieved); - } + if (retrieved.getManufacturerReferenceNumber() == null) { + updateManufacturerNumberInFeatureGroup(retrieved); } - return retrieved; } @@ -399,6 +385,20 @@ public class VendorLicenseFacadeImpl implements VendorLicenseFacade { return featureGroup; } + @Override + public Collection listFeatureGroups(String vlmId, Version version, + String user) { + Collection featureGroupEntities = + featureGroupDao.list(new FeatureGroupEntity(vlmId, VersioningUtil + .resolveVersion(version, getVersionInfo(vlmId, VersionableEntityAction.Read, user), + user), null)); + featureGroupEntities.stream() + .filter(fgEntity -> Objects.isNull(fgEntity.getManufacturerReferenceNumber())) + .forEach(fgEntity -> updateManufacturerNumberInFeatureGroup(fgEntity)); + return featureGroupEntities; + } + + @Override public Collection validateLicensingData(String vlmId, Version version, String licenseAgreementId, @@ -503,41 +503,49 @@ public class VendorLicenseFacadeImpl implements VendorLicenseFacade { return retrieved; } - private void validateCompletedVendorLicenseModel(String vendorLicenseModelId, String user) { - Version version = VersioningUtil.resolveVersion(null, - getVersionInfo(vendorLicenseModelId, VersionableEntityAction.Read, user), user); - Collection licenseAgreements = licenseAgreementDao - .list(new LicenseAgreementEntity(vendorLicenseModelId, version, null)); - - if (licenseAgreements == null || licenseAgreements.isEmpty()) { - MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB, - LoggerTragetServiceName.SUBMIT_ENTITY, ErrorLevel.ERROR.name(), - LoggerErrorCode.DATA_ERROR.getErrorCode(), LoggerErrorDescription.SUBMIT_ENTITY); - throw new CoreException( - new SubmitUncompletedLicenseModelErrorBuilder(SUBMIT_UNCOMPLETED_VLM_MSG_MISSING_LA).build()); - } - - for (LicenseAgreementEntity licenseAgreement : licenseAgreements) { - if (licenseAgreement.getFeatureGroupIds() == null || licenseAgreement.getFeatureGroupIds().isEmpty()) { - MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB, - LoggerTragetServiceName.SUBMIT_ENTITY, ErrorLevel.ERROR.name(), - LoggerErrorCode.DATA_ERROR.getErrorCode(), LoggerErrorDescription.SUBMIT_ENTITY); - throw new CoreException( - new SubmitUncompletedLicenseModelErrorBuilder(SUBMIT_UNCOMPLETED_VLM_MSG_LA_MISSING_FG).build()); + private void updateManufacturerNumberInFeatureGroup(FeatureGroupEntity featureGroupEntity) { + if (CollectionUtils.isNotEmpty(featureGroupEntity.getEntitlementPoolIds())) { + Object[] entitlementPoolIdsList = featureGroupEntity.getEntitlementPoolIds().toArray(); + if (entitlementPoolIdsList != null && entitlementPoolIdsList.length > 0) { + String entitlementPoolId = entitlementPoolIdsList[0].toString(); + EntitlementPoolEntity entitlementPoolEntity = + new EntitlementPoolEntity(featureGroupEntity.getVendorLicenseModelId(), + featureGroupEntity.getVersion(), entitlementPoolId); + entitlementPoolEntity = entitlementPoolDao.get(entitlementPoolEntity); + featureGroupEntity.setManufacturerReferenceNumber( + entitlementPoolDao.getManufacturerReferenceNumber(entitlementPoolEntity)); + featureGroupDao.update(featureGroupEntity); } } - - Collection featureGroupEntities = - featureGroupDao.list(new FeatureGroupEntity(vendorLicenseModelId, version, null)); - for (FeatureGroupEntity featureGroupEntity : featureGroupEntities) { - if (featureGroupEntity.getEntitlementPoolIds() == null || featureGroupEntity.getEntitlementPoolIds().isEmpty()) { - MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB, - LoggerTragetServiceName.SUBMIT_ENTITY, ErrorLevel.ERROR.name(), - LoggerErrorCode.DATA_ERROR.getErrorCode(), LoggerErrorDescription.SUBMIT_ENTITY); - throw new CoreException( - new SubmitUncompletedLicenseModelErrorBuilder(SUBMIT_UNCOMPLETED_VLM_MSG_FG_MISSING_EP).build()); + } + private void validateCompletedVendorLicenseModel(String vendorLicenseModelId, String user) { + Version version = VersioningUtil.resolveVersion(null, + getVersionInfo(vendorLicenseModelId, VersionableEntityAction.Read, user), user); + Collection licenseAgreements = licenseAgreementDao + .list(new LicenseAgreementEntity(vendorLicenseModelId, version, null)); + + if (CollectionUtils.isNotEmpty(licenseAgreements)) { + licenseAgreements.forEach(licenseAgreement -> { + if (CollectionUtils.isEmpty(licenseAgreement.getFeatureGroupIds())) { + MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB, + LoggerTragetServiceName.SUBMIT_ENTITY, ErrorLevel.ERROR.name(), + LoggerErrorCode.DATA_ERROR.getErrorCode(), LoggerErrorDescription.SUBMIT_ENTITY); + throw new CoreException( + new SubmitUncompletedLicenseModelErrorBuilder(SUBMIT_UNCOMPLETED_VLM_MSG_LA_MISSING_FG).build()); + } + }); + + Collection featureGroupEntities = featureGroupDao.list( + new FeatureGroupEntity(vendorLicenseModelId, version, null)); + featureGroupEntities.forEach(featureGroupEntity -> { + if(CollectionUtils.isEmpty(featureGroupEntity.getEntitlementPoolIds())) { + MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB, + LoggerTragetServiceName.SUBMIT_ENTITY, ErrorLevel.ERROR.name(), + LoggerErrorCode.DATA_ERROR.getErrorCode(), LoggerErrorDescription.SUBMIT_ENTITY); + throw new CoreException( + new SubmitUncompletedLicenseModelErrorBuilder(SUBMIT_UNCOMPLETED_VLM_MSG_FG_MISSING_EP).build()); + } + }); } - } - } } diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/VendorLicenseArtifactsServiceImpl.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/VendorLicenseArtifactsServiceImpl.java index d91a5107af..7d2cdc5474 100644 --- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/VendorLicenseArtifactsServiceImpl.java +++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/VendorLicenseArtifactsServiceImpl.java @@ -20,6 +20,7 @@ package org.openecomp.sdc.vendorlicense.licenseartifacts.impl; +import org.apache.commons.collections.CollectionUtils; import org.openecomp.core.utilities.file.FileContentHandler; import org.openecomp.sdc.common.utils.CommonUtil; import org.openecomp.sdc.logging.context.impl.MdcDataDebugMessage; @@ -41,6 +42,7 @@ import org.openecomp.sdc.versioning.dao.types.Version; import java.util.Collection; import java.util.HashSet; import java.util.List; +import java.util.Optional; import java.util.Set; import java.util.stream.Collectors; @@ -74,11 +76,15 @@ public class VendorLicenseArtifactsServiceImpl implements VendorLicenseArtifacts for(EntitlementPoolEntity entitlementPoolEntity : entitlementPoolEntities){ entitlementPoolEntity.setLimits(vendorLicenseFacade.listLimits(vlmId, vlmVersion, entitlementPoolEntity.getId(), user)); + entitlementPoolEntity.setManufacturerReferenceNumber(featureGroupModel. + getEntityManufacturerReferenceNumber()); } Set licenseKeyGroupEntities = featureGroupModel.getLicenseKeyGroups(); for(LicenseKeyGroupEntity licenseKeyGroupEntity : licenseKeyGroupEntities){ licenseKeyGroupEntity.setLimits(vendorLicenseFacade.listLimits(vlmId, vlmVersion, licenseKeyGroupEntity.getId(), user)); + licenseKeyGroupEntity.setManufacturerReferenceNumber(featureGroupModel. + getEntityManufacturerReferenceNumber()); } featureGroupModel.setEntitlementPools(entitlementPoolEntities.stream().map( @@ -109,18 +115,29 @@ public class VendorLicenseArtifactsServiceImpl implements VendorLicenseArtifacts for (Version finalVersion : finalVersions) { Collection coll = vendorLicenseFacade.listEntitlementPools(vlmId, finalVersion, user); - for(EntitlementPoolEntity entitlementPoolEntity : coll){ + coll.stream().forEach( entitlementPoolEntity -> { entitlementPoolEntity.setLimits(vendorLicenseFacade.listLimits(vlmId, finalVersion, entitlementPoolEntity.getId(), user)); - } + Optional manufacturerReferenceNumber = getFeatureGroupManufactureRefNumber + (entitlementPoolEntity.getReferencingFeatureGroups(), vlmId, finalVersion, user); + manufacturerReferenceNumber.ifPresent(mrn -> entitlementPoolEntity + .setManufacturerReferenceNumber(mrn)); + }); + entitlementPoolEntities.addAll(coll); Collection coll2 = vendorLicenseFacade.listLicenseKeyGroups(vlmId, finalVersion, user); - for(LicenseKeyGroupEntity licenseKeyGroupEntity : coll2){ + + coll2.stream().forEach( licenseKeyGroupEntity -> { licenseKeyGroupEntity.setLimits(vendorLicenseFacade.listLimits(vlmId, finalVersion, licenseKeyGroupEntity.getId(), user)); - } + Optional manufacturerReferenceNumber = getFeatureGroupManufactureRefNumber + (licenseKeyGroupEntity.getReferencingFeatureGroups(), vlmId, finalVersion, user); + manufacturerReferenceNumber.ifPresent(mrn -> licenseKeyGroupEntity + .setManufacturerReferenceNumber(mrn)); + }); + licenseKeyGroupEntities.addAll(coll2); } @@ -138,6 +155,23 @@ public class VendorLicenseArtifactsServiceImpl implements VendorLicenseArtifacts return vendorLicenseArtifact.toXml().getBytes(); } + private static Optional getFeatureGroupManufactureRefNumber(Set featureGroupIds, + String vlmId, Version finalVersion, String user) { + String manufactureReferenceNumber = null; + if (CollectionUtils.isNotEmpty(featureGroupIds)) { + Object[] featureGroupIdsList = featureGroupIds.toArray(); + if (featureGroupIdsList != null && featureGroupIdsList.length > 0) { + FeatureGroupEntity featureGroup = + vendorLicenseFacade.getFeatureGroup(new FeatureGroupEntity(vlmId, finalVersion, + featureGroupIdsList[0].toString()), user); + manufactureReferenceNumber = featureGroup != null ? featureGroup + .getManufacturerReferenceNumber() : null; + } + } + return manufactureReferenceNumber != null ? Optional.of(manufactureReferenceNumber) : + Optional.empty(); + } + /** * Create License Artifacts. diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinEntitlementPoolEntityForVendorLicenseArtifact.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinEntitlementPoolEntityForVendorLicenseArtifact.java index 936f4da2a7..dc0db0d96c 100644 --- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinEntitlementPoolEntityForVendorLicenseArtifact.java +++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinEntitlementPoolEntityForVendorLicenseArtifact.java @@ -35,6 +35,7 @@ import org.openecomp.sdc.vendorlicense.dao.types.AggregationFunction; import org.openecomp.sdc.vendorlicense.dao.types.xml.AggregationFunctionForXml; import org.openecomp.sdc.vendorlicense.dao.types.xml.EntitlementMetricForXml; import org.openecomp.sdc.vendorlicense.dao.types.xml.EntitlementTimeForXml; +import org.openecomp.sdc.vendorlicense.dao.types.xml.OperationalScopeForXml; import org.openecomp.sdc.vendorlicense.dao.types.xml.ThresholdForXml; import org.openecomp.sdc.vendorlicense.dao.types.xml.LimitForXml; @@ -64,10 +65,10 @@ public abstract class MixinEntitlementPoolEntityForVendorLicenseArtifact { @JsonProperty(value = "version") abstract String getVersionForArtifact(); - @JsonInclude(JsonInclude.Include.NON_NULL) + @JsonProperty(value = "start-date") abstract String getStartDate(); - @JsonInclude(JsonInclude.Include.NON_NULL) + @JsonProperty(value = "expiry-date") abstract String getExpiryDate(); @JsonIgnore @@ -93,9 +94,8 @@ public abstract class MixinEntitlementPoolEntityForVendorLicenseArtifact { @JsonIgnore abstract String getEntityType(); - @JacksonXmlProperty(localName = "value") - @JacksonXmlElementWrapper(localName = "operational-scope") - abstract String getOperationalScopeForArtifact(); + @JsonProperty(value = "operational-scope") + abstract OperationalScopeForXml getOperationalScopeForArtifact(); @JsonIgnore abstract ChoiceOrOther getOperationalScope(); diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinEntitlementPoolEntityForVnfArtifact.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinEntitlementPoolEntityForVnfArtifact.java index 1a29d5b2c9..8a2d17d9ff 100644 --- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinEntitlementPoolEntityForVnfArtifact.java +++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinEntitlementPoolEntityForVnfArtifact.java @@ -34,6 +34,7 @@ import org.openecomp.sdc.vendorlicense.dao.types.OperationalScope; import org.openecomp.sdc.vendorlicense.dao.types.xml.AggregationFunctionForXml; import org.openecomp.sdc.vendorlicense.dao.types.xml.EntitlementMetricForXml; import org.openecomp.sdc.vendorlicense.dao.types.xml.EntitlementTimeForXml; +import org.openecomp.sdc.vendorlicense.dao.types.xml.OperationalScopeForXml; import org.openecomp.sdc.vendorlicense.dao.types.xml.ThresholdForXml; import org.openecomp.sdc.vendorlicense.dao.types.xml.LimitForXml; @@ -74,10 +75,10 @@ public abstract class MixinEntitlementPoolEntityForVnfArtifact { @JsonIgnore abstract float getThresholdValue(); - @JsonInclude(JsonInclude.Include.NON_NULL) + @JsonProperty(value = "start-date") abstract String getStartDate(); - @JsonInclude(JsonInclude.Include.NON_NULL) + @JsonProperty(value = "expiry-date") abstract String getExpiryDate(); @JsonIgnore @@ -92,9 +93,8 @@ public abstract class MixinEntitlementPoolEntityForVnfArtifact { @JsonIgnore abstract String getEntityType(); - @JacksonXmlProperty(isAttribute = false, localName = "value") - @JacksonXmlElementWrapper(localName = "operational-scope") - abstract String getOperationalScopeForArtifact(); + @JsonProperty(value = "operational-scope") + abstract OperationalScopeForXml getOperationalScopeForArtifact(); @JsonIgnore abstract ChoiceOrOther getOperationalScope(); diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinFeatureGroupModel.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinFeatureGroupModel.java index 75beee4c6a..b8c45ba4c6 100644 --- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinFeatureGroupModel.java +++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinFeatureGroupModel.java @@ -41,9 +41,6 @@ public abstract class MixinFeatureGroupModel { @JacksonXmlProperty(isAttribute = false, localName = "part-number") abstract String getEntityPartNumber(); - @JacksonXmlProperty(isAttribute = false, localName = "manufacturer-reference-number") - abstract String getManufacturerReferenceNumber(); - @JacksonXmlProperty(isAttribute = false, localName = "feature-group-uuid") abstract String getEntityId(); @@ -60,5 +57,8 @@ public abstract class MixinFeatureGroupModel { @JsonIgnore abstract String getEntityType(); + @JsonIgnore + abstract String getEntityManufacturerReferenceNumber(); + } diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinLicenseKeyGroupEntityForVendorLicenseArtifact.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinLicenseKeyGroupEntityForVendorLicenseArtifact.java index 6238988ece..78bf531e82 100644 --- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinLicenseKeyGroupEntityForVendorLicenseArtifact.java +++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinLicenseKeyGroupEntityForVendorLicenseArtifact.java @@ -21,6 +21,7 @@ package org.openecomp.sdc.vendorlicense.licenseartifacts.impl.types.mixins; import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper; import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty; @@ -28,6 +29,8 @@ import org.openecomp.sdc.vendorlicense.dao.types.ChoiceOrOther; import org.openecomp.sdc.vendorlicense.dao.types.LimitEntity; import org.openecomp.sdc.vendorlicense.dao.types.OperationalScope; import org.openecomp.sdc.vendorlicense.dao.types.xml.LicenseKeyTypeForXml; +import org.openecomp.sdc.vendorlicense.dao.types.xml.OperationalScopeForXml; +import org.openecomp.sdc.vendorlicense.dao.types.xml.ThresholdForXml; import org.openecomp.sdc.vendorlicense.dao.types.xml.LimitForXml; import java.util.Collection; @@ -60,9 +63,8 @@ public abstract class MixinLicenseKeyGroupEntityForVendorLicenseArtifact { @JsonIgnore abstract ChoiceOrOther getOperationalScope(); - @JacksonXmlProperty(isAttribute = false, localName = "value") - @JacksonXmlElementWrapper(localName = "operational-scope") - abstract String getOperationalScopeForArtifact(); + @JsonProperty(value = "operational-scope") + abstract OperationalScopeForXml getOperationalScopeForArtifact(); @JsonIgnore @@ -80,4 +82,19 @@ public abstract class MixinLicenseKeyGroupEntityForVendorLicenseArtifact { @JsonIgnore abstract Collection getLimits(); + @JsonProperty(value = "start-date") + abstract String getStartDate(); + + @JsonProperty(value = "expiry-date") + abstract String getExpiryDate(); + + @JsonProperty(value = "threshold-value") + abstract ThresholdForXml getThresholdForArtifact(); + + @JsonIgnore + abstract String getThresholdUnits(); + + @JsonIgnore + abstract float getThresholdValue(); + } diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinLicenseKeyGroupEntityForVnfArtifact.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinLicenseKeyGroupEntityForVnfArtifact.java index 80ae054db0..b25b93ff7c 100644 --- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinLicenseKeyGroupEntityForVnfArtifact.java +++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinLicenseKeyGroupEntityForVnfArtifact.java @@ -21,6 +21,7 @@ package org.openecomp.sdc.vendorlicense.licenseartifacts.impl.types.mixins; import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper; import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty; @@ -29,6 +30,8 @@ import org.openecomp.sdc.vendorlicense.dao.types.LimitEntity; import org.openecomp.sdc.vendorlicense.dao.types.OperationalScope; import org.openecomp.sdc.vendorlicense.dao.types.xml.LicenseKeyTypeForXml; import org.openecomp.sdc.vendorlicense.dao.types.xml.LimitForXml; +import org.openecomp.sdc.vendorlicense.dao.types.xml.OperationalScopeForXml; +import org.openecomp.sdc.vendorlicense.dao.types.xml.ThresholdForXml; import java.util.Collection; import java.util.Set; @@ -37,6 +40,9 @@ public abstract class MixinLicenseKeyGroupEntityForVnfArtifact { @JsonIgnore abstract String getId(); + @JsonProperty(value = "manufacturer-reference-number") + abstract String getManufacturerReferenceNumber(); + @JsonIgnore abstract Set getReferencingFeatureGroups(); @@ -63,9 +69,8 @@ public abstract class MixinLicenseKeyGroupEntityForVnfArtifact { @JsonIgnore abstract ChoiceOrOther getOperationalScope(); - @JacksonXmlProperty(isAttribute = false, localName = "value") - @JacksonXmlElementWrapper(localName = "operational-scope") - abstract String getOperationalScopeForArtifact(); + @JsonProperty(value = "operational-scope") + abstract OperationalScopeForXml getOperationalScopeForArtifact(); @JsonIgnore @@ -74,6 +79,8 @@ public abstract class MixinLicenseKeyGroupEntityForVnfArtifact { @JsonIgnore abstract String getVersionableId(); + @JsonProperty(value = "threshold-value") + abstract ThresholdForXml getThresholdForArtifact(); @JsonProperty(value = "sp-limits") abstract LimitForXml getSPLimits(); @@ -83,4 +90,15 @@ public abstract class MixinLicenseKeyGroupEntityForVnfArtifact { @JsonIgnore abstract Collection getLimits(); + @JsonProperty(value = "start-date") + abstract String getStartDate(); + + @JsonProperty(value = "expiry-date") + abstract String getExpiryDate(); + + @JsonIgnore + abstract String getThresholdUnits(); + + @JsonIgnore + abstract float getThresholdValue(); } -- cgit 1.2.3-korg