From aea64ba99fa9c9b51112b30aeb0872c4cdb89759 Mon Sep 17 00:00:00 2001 From: "andre.schmid" Date: Wed, 18 Aug 2021 14:34:33 +0100 Subject: Validate the Resource Model before importing VSP Validates the Resource Model selected during the Import VSP. This model must be aligned with one of the models that the imported VSP relates to. Fix VSP package retrieval to get the exact version from the VSP chosen during the Import VSP process. Introduces a client in the Catalog to retrieve from the Onboarding backend a VSP information using its Id and version Id. Change-Id: Ic8fb52b6daadc0e7203c81a9c15c3e46d5b9fffb Issue-ID: SDC-3675 Signed-off-by: andre.schmid --- .../vsp/rest/services/VendorSoftwareProductsImpl.java | 14 ++++++++------ .../errors/PackageNotFoundErrorBuilder.java | 6 ++++++ 2 files changed, 14 insertions(+), 6 deletions(-) (limited to 'openecomp-be') 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 74d2fde097..5367e1ea75 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 @@ -335,16 +335,18 @@ public class VendorSoftwareProductsImpl implements VendorSoftwareProducts { } @Override - public Response getTranslatedFile(String vspId, String versionName, String user) { - List versions = versioningManager.list(vspId); - Version version; - if (versionName == null) { + public Response getTranslatedFile(String vspId, String versionId, String user) { + final List versions = versioningManager.list(vspId); + final Version version; + if (versionId == null) { version = versions.stream().filter(ver -> VersionStatus.Certified == ver.getStatus()) .max(Comparator.comparingDouble(o -> Double.parseDouble(o.getName()))) .orElseThrow(() -> new CoreException(new PackageNotFoundErrorBuilder(vspId).build())); } else { - version = versions.stream().filter(ver -> versionName.equals(ver.getName())).findFirst() - .orElseThrow(() -> new CoreException(new PackageNotFoundErrorBuilder(vspId).build())); + version = versions.stream() + .filter(ver -> versionId.equals(ver.getName()) || versionId.equals(ver.getId())) + .findFirst() + .orElseThrow(() -> new CoreException(new PackageNotFoundErrorBuilder(vspId, versionId).build())); if (version.getStatus() != VersionStatus.Certified) { throw new CoreException(new RequestedVersionInvalidErrorBuilder().build()); } diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/PackageNotFoundErrorBuilder.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/PackageNotFoundErrorBuilder.java index ef80e4d8db..c23a9d512d 100644 --- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/PackageNotFoundErrorBuilder.java +++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/PackageNotFoundErrorBuilder.java @@ -41,6 +41,12 @@ public class PackageNotFoundErrorBuilder { builder.withMessage(String.format(PACKAGE_VERSION_NOT_FOUND_MSG, vendorSoftwareProductId, version == null ? null : version.toString())); } + public PackageNotFoundErrorBuilder(String vendorSoftwareProductId, String version) { + builder.withId(VendorSoftwareProductErrorCodes.PACKAGE_NOT_FOUND); + builder.withCategory(ErrorCategory.APPLICATION); + builder.withMessage(String.format(PACKAGE_VERSION_NOT_FOUND_MSG, vendorSoftwareProductId, version)); + } + /** * Instantiates a new Package not found error builder. * -- cgit 1.2.3-korg