diff options
author | talig <talig@amdocs.com> | 2018-10-24 16:57:45 +0300 |
---|---|---|
committer | talig <talig@amdocs.com> | 2018-10-24 16:58:14 +0300 |
commit | 838c368551e086ef14936b86e58d7148a131c4f5 (patch) | |
tree | e8a5731680f25467c4846fa1776406c07ddcbbc9 | |
parent | 93c6575bb4efd4744b54d800a9057f66b5687035 (diff) |
Validate vlm is not draft during vsp submit
If vlm version is used - make sure it is Certified,
otherwise - make sure the vlm contains at least one Certified version
Change-Id: Iacb28d622f334d7d81d3e56991e5a2540ed7bcc3
Issue-ID: SDC-1843
Signed-off-by: talig <talig@amdocs.com>
2 files changed, 22 insertions, 16 deletions
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/services/VendorSoftwareProductsImpl.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/services/VendorSoftwareProductsImpl.java index 36e076083f..582bf473d7 100644 --- a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/services/VendorSoftwareProductsImpl.java +++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/services/VendorSoftwareProductsImpl.java @@ -497,7 +497,9 @@ public class VendorSoftwareProductsImpl implements VendorSoftwareProducts { String user) throws IOException { VspDetails vspDetails = vendorSoftwareProductManager.getVsp(vspId, version); - vspDetails.setVlmVersion(versioningManager.get(vspDetails.getVendorId(),vspDetails.getVlmVersion())); + if (vspDetails.getVlmVersion() != null) { + vspDetails.setVlmVersion(versioningManager.get(vspDetails.getVendorId(), vspDetails.getVlmVersion())); + } ValidationResponse validationResponse = vendorSoftwareProductManager.validate(vspDetails); Map<String, List<ErrorMessage>> compilationErrors = vendorSoftwareProductManager.compile(vspId, version); 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 50772a3de3..818d772db4 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 @@ -92,7 +92,7 @@ public class VendorLicenseFacadeImpl implements VendorLicenseFacade { .withMessage("The supplied vendor is archived and therefore cannot be used").build(); private static final ErrorCode USED_VLM_IS_DRAFT_ERROR = new ErrorCode.ErrorCodeBuilder().withCategory(ErrorCategory.APPLICATION).withId(FIELD_VALIDATION_ERROR_ERR_ID) - .withMessage("The supplied vendor version is draft and therefor can not be used").build(); + .withMessage("The supplied vendor version is draft and therefore can not be used").build(); /** @@ -328,25 +328,29 @@ public class VendorLicenseFacadeImpl implements VendorLicenseFacade { return errorMessages; } - @Override - public Optional<ErrorCode> validateVendorForUsage(String vlmId, Version version) { - Item vlm = ItemManagerFactory.getInstance().createInterface().get(vlmId); - if(vlm == null) { - return Optional.of(USED_VLM_NOT_EXIST_ERROR); + @Override + public Optional<ErrorCode> validateVendorForUsage(String vlmId, Version version) { + Item vlm = ItemManagerFactory.getInstance().createInterface().get(vlmId); + return vlm == null + ? Optional.of(USED_VLM_NOT_EXIST_ERROR) + : ItemStatus.ARCHIVED == vlm.getStatus() + ? Optional.of(USED_VLM_ARCHIVE_ERROR) + : isDraftVlm(vlm, version) + ? Optional.of(USED_VLM_IS_DRAFT_ERROR) + : Optional.empty(); } - if (ItemStatus.ARCHIVED == vlm.getStatus()){ - return Optional.of(USED_VLM_ARCHIVE_ERROR); - } + private boolean isDraftVlm(Item vlm, Version version) { + return (version == null && isVlmWithoutCertifiedVersions(vlm)) || + (version != null && VersionStatus.Draft.equals(version.getStatus())); + } - if(VersionStatus.Draft.equals(version.getStatus())){ - return Optional.of(USED_VLM_IS_DRAFT_ERROR); + private boolean isVlmWithoutCertifiedVersions(Item vlm) { + Integer numOfCertifiedVersions = vlm.getVersionStatusCounters().get(VersionStatus.Certified); + return numOfCertifiedVersions == null || numOfCertifiedVersions < 1; } - return Optional.empty(); - } - - @Override + @Override public LicenseAgreementEntity getLicenseAgreement(String vlmId, Version version, String licenseAgreementId) { LicenseAgreementEntity input = new LicenseAgreementEntity(vlmId, version, licenseAgreementId); |