summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--common-be/src/main/java/org/openecomp/sdc/be/csar/storage/MinIoStorageArtifactStorageManager.java14
-rw-r--r--common-be/src/test/java/org/openecomp/sdc/be/csar/storage/MinIoStorageArtifactStorageManagerTest.java16
2 files changed, 26 insertions, 4 deletions
diff --git a/common-be/src/main/java/org/openecomp/sdc/be/csar/storage/MinIoStorageArtifactStorageManager.java b/common-be/src/main/java/org/openecomp/sdc/be/csar/storage/MinIoStorageArtifactStorageManager.java
index bc0792b472..78ee4bed23 100644
--- a/common-be/src/main/java/org/openecomp/sdc/be/csar/storage/MinIoStorageArtifactStorageManager.java
+++ b/common-be/src/main/java/org/openecomp/sdc/be/csar/storage/MinIoStorageArtifactStorageManager.java
@@ -92,7 +92,7 @@ public class MinIoStorageArtifactStorageManager implements ArtifactStorageManage
try {
// Make bucket if not exist.
- final boolean found = minioClient.bucketExists(BucketExistsArgs.builder().bucket(vspId).build());
+ final boolean found = bucketExists(vspId);
if (!found) {
// Make a new bucket ${vspId} .
@@ -174,6 +174,10 @@ public class MinIoStorageArtifactStorageManager implements ArtifactStorageManage
@Override
public void delete(final String vspId) {
LOGGER.debug("DELETE VSP - bucket: '{}'", vspId);
+ if (!bucketExists(vspId)) {
+ LOGGER.debug("VSP '{}' bucket was not found while trying to delete it", vspId);
+ return;
+ }
final var listObjects = minioClient.listObjects(ListObjectsArgs.builder().bucket(vspId).build());
listObjects.forEach(itemResult -> {
Item versionId;
@@ -193,6 +197,14 @@ public class MinIoStorageArtifactStorageManager implements ArtifactStorageManage
}
}
+ private boolean bucketExists(final String vspId) {
+ try {
+ return minioClient.bucketExists(BucketExistsArgs.builder().bucket(vspId).build());
+ } catch (final Exception e) {
+ throw new ArtifactStorageException(String.format("An unexpected error occurred while checking for vsp '%s'", vspId), e);
+ }
+ }
+
private MinIoStorageArtifactStorageConfig readMinIoStorageArtifactStorageConfig() {
final var commonConfigurationManager = CommonConfigurationManager.getInstance();
final Map<String, Object> endpoint = commonConfigurationManager.getConfigValue(EXTERNAL_CSAR_STORE, ENDPOINT, null);
diff --git a/common-be/src/test/java/org/openecomp/sdc/be/csar/storage/MinIoStorageArtifactStorageManagerTest.java b/common-be/src/test/java/org/openecomp/sdc/be/csar/storage/MinIoStorageArtifactStorageManagerTest.java
index 09e62841e6..4d12a0be39 100644
--- a/common-be/src/test/java/org/openecomp/sdc/be/csar/storage/MinIoStorageArtifactStorageManagerTest.java
+++ b/common-be/src/test/java/org/openecomp/sdc/be/csar/storage/MinIoStorageArtifactStorageManagerTest.java
@@ -27,6 +27,7 @@ import static org.mockito.ArgumentMatchers.anyBoolean;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Mockito.doThrow;
+import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import io.minio.BucketExistsArgs;
@@ -155,10 +156,19 @@ class MinIoStorageArtifactStorageManagerTest {
@Test
void testDeleteVspFail() throws Exception {
+ when(minioClient.bucketExists(BucketExistsArgs.builder().bucket(VSP_ID).build())).thenReturn(true);
doThrow(new RuntimeException()).when(minioClient).removeBucket(any(RemoveBucketArgs.class));
- assertThrows(ArtifactStorageException.class, () -> {
- testSubject.delete(VSP_ID);
- });
+ assertThrows(ArtifactStorageException.class, () -> testSubject.delete(VSP_ID));
+ }
+
+ @Test
+ void testDeleteVspBucketNotFound() throws Exception {
+ final BucketExistsArgs bucketExistsArgs = BucketExistsArgs.builder().bucket(VSP_ID).build();
+ //when
+ when(minioClient.bucketExists(bucketExistsArgs)).thenReturn(false);
+ testSubject.delete(VSP_ID);
+ //then
+ verify(minioClient).bucketExists(bucketExistsArgs);
}
@Test