From f22f815d5c4e5d89049c6bbab781fec27ed1b894 Mon Sep 17 00:00:00 2001 From: vasraz Date: Wed, 26 Oct 2022 14:00:08 +0100 Subject: Remove temp file if Minio-upload failed Signed-off-by: Vasyl Razinkov Change-Id: Ib30f2b4643974c838d003db39c616fa82021cc6e Issue-ID: SDC-4232 --- .../OrchestrationTemplateCandidateImpl.java | 21 +++++++++++++++------ .../security/SecurityManager.java | 10 ++++++---- 2 files changed, 21 insertions(+), 10 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 ec1e96e0bd..c4b55e5b4b 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 @@ -214,7 +214,7 @@ public class OrchestrationTemplateCandidateImpl implements OrchestrationTemplate throw new ArtifactStorageException(PACKAGE_REDUCER_NOT_CONFIGURED.getErrorMessage()); } - final Path tempArtifactPath; + Path tempArtifactPath = null; try { final ArtifactStorageConfig storageConfiguration = artifactStorageManager.getStorageConfiguration(); @@ -228,12 +228,14 @@ public class OrchestrationTemplateCandidateImpl implements OrchestrationTemplate } LOGGER.debug("FINISHED -> Transfer to '{}'", tempArtifactPath.toString()); } catch (final Exception e) { + deleteTempFile(tempArtifactPath); throw new ArtifactStorageException(UNEXPECTED_PROBLEM_HAPPENED_WHILE_GETTING.formatMessage(filename)); } final ArtifactInfo artifactInfo; try (final InputStream inputStream = new FileInputStream(tempArtifactPath.toFile())) { artifactInfo = artifactStorageManager.upload(vspId, versionId, inputStream); } catch (final Exception e) { + deleteTempFile(tempArtifactPath); LOGGER.error("Package Size Reducer not configured", e); throw new ArtifactStorageException(ERROR_HAS_OCCURRED_WHILE_PERSISTING_THE_ARTIFACT.formatMessage(filename)); } @@ -243,19 +245,26 @@ public class OrchestrationTemplateCandidateImpl implements OrchestrationTemplate artifactInfo.setBytes(packageSizeReducer.reduce(tempArtifactPath)); LOGGER.debug("FINISHED -> reducing '{}'", tempArtifactPath); } catch (final Exception e) { + deleteTempFile(tempArtifactPath); LOGGER.debug("ERROR -> reducing '{}'", tempArtifactPath, e); throw new ArtifactStorageException(ERROR_HAS_OCCURRED_WHILE_REDUCING_THE_ARTIFACT_SIZE.formatMessage(filename), e); } - try { - Files.delete(tempArtifactPath); - } catch (final Exception e) { - LOGGER.warn("Could not delete temporary package at '{}'", tempArtifactPath, e); - } + deleteTempFile(tempArtifactPath); return artifactInfo; } + private void deleteTempFile(final Path tempArtifactPath) { + if (Files.exists(tempArtifactPath)) { + try { + Files.delete(tempArtifactPath); + } catch (final Exception e) { + LOGGER.warn("Could not delete temporary package at '{}'", tempArtifactPath, e); + } + } + } + private Response processOnboardPackage(final OnboardPackageInfo onboardPackageInfo, final VspDetails vspDetails, final ErrorMessage... errorMessages) { final UploadFileResponse uploadFileResponse = candidateManager.upload(vspDetails, onboardPackageInfo); diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/security/SecurityManager.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/security/SecurityManager.java index f16467f568..663801bd8e 100644 --- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/security/SecurityManager.java +++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/security/SecurityManager.java @@ -233,10 +233,12 @@ public class SecurityManager { } private void deleteFile(final Path filePath) { - try { - Files.delete(filePath); - } catch (final IOException e) { - LOGGER.warn("Failed to delete '{}' after verifying package signed data", filePath, e); + if (Files.exists(filePath)) { + try { + Files.delete(filePath); + } catch (final IOException e) { + LOGGER.warn("Failed to delete '{}' after verifying package signed data", filePath, e); + } } } -- cgit 1.2.3-korg