VSP submit doesn't validate vlm version 79/70579/2
authorayalaben <ayala.benzvi@amdocs.com>
Tue, 16 Oct 2018 15:13:22 +0000 (18:13 +0300)
committerAvi Gaffa <avi.gaffa@amdocs.com>
Wed, 17 Oct 2018 10:24:05 +0000 (10:24 +0000)
Change-Id: If98f41c186b330e7f17e51ef88c6b5e91121f2c9
Issue-ID: SDC-1843
Signed-off-by: ayalaben <ayala.benzvi@amdocs.com>
openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/VendorSoftwareProductManagerImpl.java
openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/facade/VendorLicenseFacade.java
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 56ea8da..df2e098 100644 (file)
@@ -499,7 +499,7 @@ public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductMa
 
   private Collection<ErrorCode> validateLicensingData(VspDetails vspDetails) {
     if (vspDetails.getVendorId() != null) {
-      Optional<ErrorCode> errorCode = vendorLicenseFacade.validateVendorForUsage(vspDetails.getVendorId());
+      Optional<ErrorCode> errorCode = vendorLicenseFacade.validateVendorForUsage(vspDetails.getVendorId(),vspDetails.getVlmVersion());
       if (errorCode.isPresent()) {
         return Collections.singleton(errorCode.get());
       }
index 42a4699..d25a189 100644 (file)
@@ -70,7 +70,7 @@ public interface VendorLicenseFacade {
                                               String licenseAgreementId,
                                               Collection<String> featureGroupIds);
 
-  Optional<ErrorCode> validateVendorForUsage(String vlmId);
+  Optional<ErrorCode> validateVendorForUsage(String vlmId, Version version);
 
   void validate(String vendorLicenseModelId, Version version);
 }
index 5b39a79..50772a3 100644 (file)
@@ -64,6 +64,7 @@ import org.openecomp.sdc.vendorlicense.facade.VendorLicenseFacade;
 import org.openecomp.sdc.versioning.ItemManagerFactory;
 import org.openecomp.sdc.versioning.VersioningUtil;
 import org.openecomp.sdc.versioning.dao.types.Version;
+import org.openecomp.sdc.versioning.dao.types.VersionStatus;
 import org.openecomp.sdc.versioning.errors.VersionableSubEntityNotFoundErrorBuilder;
 import org.openecomp.sdc.versioning.types.Item;
 import org.openecomp.sdc.versioning.types.ItemStatus;
@@ -89,6 +90,10 @@ public class VendorLicenseFacadeImpl implements VendorLicenseFacade {
   private static final ErrorCode USED_VLM_ARCHIVE_ERROR =
           new ErrorCode.ErrorCodeBuilder().withCategory(ErrorCategory.APPLICATION).withId(FIELD_VALIDATION_ERROR_ERR_ID)
                   .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();
+
 
   /**
    * Instantiates a new Vendor license facade.
@@ -324,13 +329,21 @@ public class VendorLicenseFacadeImpl implements VendorLicenseFacade {
   }
 
   @Override
-  public Optional<ErrorCode> validateVendorForUsage(String vlmId) {
+  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)
-                             : Optional.empty();
+    if(vlm == null) {
+      return Optional.of(USED_VLM_NOT_EXIST_ERROR);
+    }
+
+    if (ItemStatus.ARCHIVED == vlm.getStatus()){
+      return  Optional.of(USED_VLM_ARCHIVE_ERROR);
+    }
+
+   if(VersionStatus.Draft.equals(version.getStatus())){
+     return Optional.of(USED_VLM_IS_DRAFT_ERROR);
+    }
+
+    return Optional.empty();
   }
 
   @Override