Remove temp file if Minio-upload failed 77/131877/2
authorvasraz <vasyl.razinkov@est.tech>
Wed, 26 Oct 2022 13:00:08 +0000 (14:00 +0100)
committerMichael Morris <michael.morris@est.tech>
Thu, 27 Oct 2022 12:02:27 +0000 (12:02 +0000)
Signed-off-by: Vasyl Razinkov <vasyl.razinkov@est.tech>
Change-Id: Ib30f2b4643974c838d003db39c616fa82021cc6e
Issue-ID: SDC-4232

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
openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/security/SecurityManager.java

index ec1e96e..c4b55e5 100644 (file)
@@ -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);
index f16467f..663801b 100644 (file)
@@ -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);
+            }
         }
     }