summaryrefslogtreecommitdiffstats
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.java112
1 files changed, 28 insertions, 84 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 10f96e9d3b..e4262df105 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,13 +19,11 @@
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.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -33,10 +31,8 @@ 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;
@@ -52,8 +48,7 @@ import org.openecomp.sdc.vendorsoftwareproduct.OrchestrationTemplateCandidateMan
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.impl.onboarding.OnboardingPackageProcessor;
import org.openecomp.sdc.vendorsoftwareproduct.types.OnboardPackageInfo;
import org.openecomp.sdc.vendorsoftwareproduct.types.OrchestrationTemplateActionResponse;
import org.openecomp.sdc.vendorsoftwareproduct.types.UploadFileResponse;
@@ -65,7 +60,6 @@ import org.openecomp.sdcrests.vendorsoftwareproducts.types.OrchestrationTemplate
import org.openecomp.sdcrests.vendorsoftwareproducts.types.UploadFileResponseDto;
import org.openecomp.sdcrests.vendorsoftwareproducts.types.ValidationResponseDto;
import org.openecomp.sdcrests.vsp.rest.OrchestrationTemplateCandidate;
-import org.openecomp.sdcrests.vsp.rest.data.PackageArchive;
import org.openecomp.sdcrests.vsp.rest.mapping.MapFilesDataStructureToDto;
import org.openecomp.sdcrests.vsp.rest.mapping.MapUploadFileResponseToUploadFileResponseDto;
import org.openecomp.sdcrests.vsp.rest.mapping.MapValidationResponseToDto;
@@ -89,91 +83,41 @@ public class OrchestrationTemplateCandidateImpl implements OrchestrationTemplate
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();
- }
- }
+ final String filename = dataHandler.getName();
- private Optional<UploadFileResponseDto> validatePackageArchive(final PackageArchive archive) {
- UploadFileResponseDto uploadFileResponseDto;
- try {
- if (archive.isSigned() && !archive.isSignatureValid()) {
- 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 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);
+ final OnboardingPackageProcessor onboardingPackageProcessor = new OnboardingPackageProcessor(filename, fileToUploadBytes);
+ if (onboardingPackageProcessor.hasErrors()) {
+ final UploadFileResponseDto uploadFileResponseDto =
+ buildUploadResponseWithError(onboardingPackageProcessor.getErrorMessageSet().toArray(new ErrorMessage[0]));
+ return Response.ok(uploadFileResponseDto).build();
}
- return Optional.empty();
- }
- 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);
+ final OnboardPackageInfo onboardPackageInfo = onboardingPackageProcessor.getOnboardPackageInfo().orElse(null);
- 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.
+ if (onboardPackageInfo == null) {
+ final UploadFileResponseDto uploadFileResponseDto = buildUploadResponseWithError(
+ new ErrorMessage(ErrorLevel.ERROR, Messages.PACKAGE_PROCESS_ERROR.formatMessage(filename)));
return Response.ok(uploadFileResponseDto).build();
}
+
+ final VspDetails vspDetails = new VspDetails(vspId, new Version(versionId));
+ return processOnboardPackage(onboardPackageInfo, vspDetails);
}
- private UploadFileResponseDto buildUploadResponseWithError(ErrorMessage errorMessage) {
- UploadFileResponseDto uploadFileResponseDto = new UploadFileResponseDto();
- Map<String, List<ErrorMessage>> errorMap = new HashMap<>();
- List<ErrorMessage> errorMessages = new ArrayList<>();
- errorMessages.add(errorMessage);
- errorMap.put(SdcCommon.UPLOAD_FILE, errorMessages);
+ private Response processOnboardPackage(final OnboardPackageInfo onboardPackageInfo, final VspDetails vspDetails) {
+ final UploadFileResponse uploadFileResponse = candidateManager.upload(vspDetails, onboardPackageInfo);
+ final UploadFileResponseDto uploadFileResponseDto = new MapUploadFileResponseToUploadFileResponseDto()
+ .applyMapping(uploadFileResponse, UploadFileResponseDto.class);
+ return Response.ok(uploadFileResponseDto).build();
+ }
+
+ private UploadFileResponseDto buildUploadResponseWithError(final ErrorMessage... errorMessages) {
+ final UploadFileResponseDto uploadFileResponseDto = new UploadFileResponseDto();
+ final Map<String, List<ErrorMessage>> errorMap = new HashMap<>();
+ final List<ErrorMessage> errorMessageList = new ArrayList<>();
+ Collections.addAll(errorMessageList, errorMessages);
+ errorMap.put(SdcCommon.UPLOAD_FILE, errorMessageList);
uploadFileResponseDto.setErrors(errorMap);
return uploadFileResponseDto;
}