aboutsummaryrefslogtreecommitdiffstats
path: root/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/OrchestrationTemplateCandidateImpl.java
diff options
context:
space:
mode:
Diffstat (limited to '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/OrchestrationTemplateCandidateImpl.java')
-rw-r--r--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/OrchestrationTemplateCandidateImpl.java114
1 files changed, 85 insertions, 29 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/OrchestrationTemplateCandidateImpl.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/OrchestrationTemplateCandidateImpl.java
index 5cf6f40c37..10f96e9d3b 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/OrchestrationTemplateCandidateImpl.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/OrchestrationTemplateCandidateImpl.java
@@ -19,8 +19,24 @@
package org.openecomp.sdcrests.vsp.rest.services;
+import static org.openecomp.core.utilities.file.FileUtils.getFileExtension;
+import static org.openecomp.core.utilities.file.FileUtils.getNetworkPackageName;
+import static org.openecomp.core.validation.errors.ErrorMessagesFormatBuilder.getErrorWithParameters;
+
+import java.io.IOException;
+import java.nio.ByteBuffer;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+import javax.activation.DataHandler;
+import javax.inject.Named;
+import javax.ws.rs.core.Response;
+import org.apache.commons.io.FilenameUtils;
import org.apache.commons.lang3.tuple.Pair;
import org.apache.cxf.jaxrs.ext.multipart.Attachment;
+import org.openecomp.core.utilities.orchestration.OnboardingTypesEnum;
import org.openecomp.sdc.activitylog.ActivityLogManager;
import org.openecomp.sdc.activitylog.ActivityLogManagerFactory;
import org.openecomp.sdc.activitylog.dao.type.ActivityLogEntity;
@@ -35,7 +51,10 @@ import org.openecomp.sdc.vendorsoftwareproduct.OrchestrationTemplateCandidateMan
import org.openecomp.sdc.vendorsoftwareproduct.OrchestrationTemplateCandidateManagerFactory;
import org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductManager;
import org.openecomp.sdc.vendorsoftwareproduct.VspManagerFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails;
import org.openecomp.sdc.vendorsoftwareproduct.security.SecurityManagerException;
+import org.openecomp.sdc.vendorsoftwareproduct.types.OnboardPackage;
+import org.openecomp.sdc.vendorsoftwareproduct.types.OnboardPackageInfo;
import org.openecomp.sdc.vendorsoftwareproduct.types.OrchestrationTemplateActionResponse;
import org.openecomp.sdc.vendorsoftwareproduct.types.UploadFileResponse;
import org.openecomp.sdc.vendorsoftwareproduct.types.ValidationResponse;
@@ -53,20 +72,6 @@ import org.openecomp.sdcrests.vsp.rest.mapping.MapValidationResponseToDto;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Service;
-import javax.inject.Named;
-import javax.ws.rs.core.Response;
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
-
-import static org.openecomp.core.utilities.file.FileUtils.getFileExtension;
-import static org.openecomp.core.utilities.file.FileUtils.getNetworkPackageName;
-import static org.openecomp.core.validation.errors.ErrorMessagesFormatBuilder.getErrorWithParameters;
-
@Named
@Service("orchestrationTemplateCandidate")
@Scope(value = "prototype")
@@ -81,35 +86,86 @@ public class OrchestrationTemplateCandidateImpl implements OrchestrationTemplate
ActivityLogManagerFactory.getInstance().createInterface();
@Override
- public Response upload(String vspId, String versionId, Attachment fileToUpload, String user) {
- PackageArchive archive = new PackageArchive(fileToUpload.getObject(byte[].class));
+ public Response upload(final String vspId, final String versionId,
+ final Attachment fileToUpload, final String user) {
+ final byte[] fileToUploadBytes = fileToUpload.getObject(byte[].class);
+ String fileToUploadName = "";
+ String fileToUploadExtension = "";
+ final DataHandler dataHandler = fileToUpload.getDataHandler();
+ if(dataHandler != null) {
+ final String filename = dataHandler.getName();
+ fileToUploadName = FilenameUtils.removeExtension(filename);
+ fileToUploadExtension = FilenameUtils.getExtension(filename);
+ }
+ final PackageArchive archive = new PackageArchive(fileToUploadBytes);
+ final Optional<UploadFileResponseDto> validatePackageArchiveResponse =
+ validatePackageArchive(archive);
+ if (!validatePackageArchiveResponse.isPresent()) {
+ final VspDetails vspDetails = new VspDetails(vspId, new Version(versionId));
+ return processOnboardPackage(fileToUpload, fileToUploadBytes, fileToUploadName,
+ fileToUploadExtension, archive, vspDetails);
+ } else {
+ return Response.ok(validatePackageArchiveResponse.get()).build();
+ }
+ }
+
+ private Optional<UploadFileResponseDto> validatePackageArchive(final PackageArchive archive) {
UploadFileResponseDto uploadFileResponseDto;
try {
if (archive.isSigned() && !archive.isSignatureValid()) {
- ErrorMessage errorMessage = new ErrorMessage(ErrorLevel.ERROR,
- getErrorWithParameters(Messages.FAILED_TO_VERIFY_SIGNATURE.getErrorMessage(), ""));
+ final ErrorMessage errorMessage = new ErrorMessage(ErrorLevel.ERROR,
+ getErrorWithParameters(Messages.FAILED_TO_VERIFY_SIGNATURE.getErrorMessage(), ""));
LOGGER.error(errorMessage.getMessage());
uploadFileResponseDto = buildUploadResponseWithError(errorMessage);
//returning OK as SDC UI won't show error message if NOT OK error code.
- return Response.ok(uploadFileResponseDto).build();
+ return Optional.of(uploadFileResponseDto);
}
+ } catch (final SecurityManagerException e) {
+ final ErrorMessage errorMessage = new ErrorMessage(ErrorLevel.ERROR,
+ getErrorWithParameters(e.getMessage(), ""));
+ LOGGER.error(errorMessage.getMessage(), e);
+ uploadFileResponseDto = buildUploadResponseWithError(errorMessage);
+ //returning OK as SDC UI won't show error message if NOT OK error code.
+ return Optional.of(uploadFileResponseDto);
+ }
+ return Optional.empty();
+ }
- String filename = archive.getArchiveFileName().orElse(fileToUpload.getContentDisposition().getFilename());
- UploadFileResponse uploadFileResponse = candidateManager
- .upload(vspId, new Version(versionId), new ByteArrayInputStream(archive.getPackageFileContents()),
- getFileExtension(filename), getNetworkPackageName(filename));
-
+ private Response processOnboardPackage(final Attachment fileToUpload,
+ final byte[] fileToUploadBytes,
+ final String fileToUploadName,
+ final String fileToUploadExtension,
+ final PackageArchive archive,
+ final VspDetails vspDetails) {
+ final String filename = archive.getArchiveFileName()
+ .orElse(fileToUpload.getContentDisposition().getFilename());
+ UploadFileResponseDto uploadFileResponseDto;
+ try {
+ final String archiveFileExtension = getFileExtension(filename);
+ final OnboardPackageInfo onboardPackageInfo;
+ if (OnboardingTypesEnum.CSAR.toString().equalsIgnoreCase(archiveFileExtension)) {
+ final OnboardPackage onboardPackage = new OnboardPackage(getNetworkPackageName(filename),
+ archiveFileExtension, ByteBuffer.wrap(archive.getPackageFileContents()));
+ onboardPackageInfo = new OnboardPackageInfo(fileToUploadName,
+ fileToUploadExtension, ByteBuffer.wrap(fileToUploadBytes), onboardPackage);
+ } else {
+ onboardPackageInfo = new OnboardPackageInfo(fileToUploadName,
+ fileToUploadExtension, ByteBuffer.wrap(fileToUploadBytes));
+ }
+ final UploadFileResponse uploadFileResponse = candidateManager
+ .upload(vspDetails, onboardPackageInfo);
uploadFileResponseDto = new MapUploadFileResponseToUploadFileResponseDto()
- .applyMapping(uploadFileResponse, UploadFileResponseDto.class);
- } catch (SecurityManagerException e) {
- ErrorMessage errorMessage = new ErrorMessage(ErrorLevel.ERROR,
- getErrorWithParameters(e.getMessage(), ""));
+ .applyMapping(uploadFileResponse, UploadFileResponseDto.class);
+
+ return Response.ok(uploadFileResponseDto).build();
+ } catch (final SecurityManagerException e) {
+ final ErrorMessage errorMessage = new ErrorMessage(ErrorLevel.ERROR,
+ getErrorWithParameters(e.getMessage(), ""));
LOGGER.error(errorMessage.getMessage(), e);
uploadFileResponseDto = buildUploadResponseWithError(errorMessage);
//returning OK as SDC UI won't show error message if NOT OK error code.
return Response.ok(uploadFileResponseDto).build();
}
- return Response.ok(uploadFileResponseDto).build();
}
private UploadFileResponseDto buildUploadResponseWithError(ErrorMessage errorMessage) {