diff --git a/multiapps-controller-persistence/src/main/java/org/cloudfoundry/multiapps/controller/persistence/services/GcpObjectStoreFileStorage.java b/multiapps-controller-persistence/src/main/java/org/cloudfoundry/multiapps/controller/persistence/services/GcpObjectStoreFileStorage.java index ab81b1750f..2e8feca30a 100644 --- a/multiapps-controller-persistence/src/main/java/org/cloudfoundry/multiapps/controller/persistence/services/GcpObjectStoreFileStorage.java +++ b/multiapps-controller-persistence/src/main/java/org/cloudfoundry/multiapps/controller/persistence/services/GcpObjectStoreFileStorage.java @@ -26,7 +26,6 @@ import com.google.cloud.storage.StorageException; import com.google.cloud.storage.StorageOptions; import com.google.cloud.storage.StorageRetryStrategy; -import org.cloudfoundry.multiapps.common.util.MiscUtil; import org.cloudfoundry.multiapps.controller.persistence.Messages; import org.cloudfoundry.multiapps.controller.persistence.model.FileEntry; import org.cloudfoundry.multiapps.controller.persistence.util.ObjectStoreFilter; @@ -200,17 +199,21 @@ public Set getAllEntries() { .collect(Collectors.toSet()); } - protected int removeBlobsByFilter(Predicate filter) { + private int removeBlobsByFilter(Predicate filter) { List blobIds = getEntryNames(filter).stream() .map(entry -> BlobId.of(bucketName, entry)) .toList(); List deletedBlobsResults = new ArrayList<>(); if (!blobIds.isEmpty()) { - deletedBlobsResults = storage.delete(blobIds); + deletedBlobsResults = deleteBlobs(blobIds); } - return MiscUtil.cast(deletedBlobsResults.stream() - .filter(Boolean::booleanValue) - .count()); + + deletedBlobsResults.removeIf(Boolean.FALSE::equals); + return deletedBlobsResults.size(); + } + + protected List deleteBlobs(List blobIds) { + return storage.delete(blobIds); } protected Set getEntryNames(Predicate filter) { diff --git a/multiapps-controller-persistence/src/test/java/org/cloudfoundry/multiapps/controller/persistence/services/GcpObjectStoreFileStorageTest.java b/multiapps-controller-persistence/src/test/java/org/cloudfoundry/multiapps/controller/persistence/services/GcpObjectStoreFileStorageTest.java index cc4b0aa773..7e70e2bc56 100644 --- a/multiapps-controller-persistence/src/test/java/org/cloudfoundry/multiapps/controller/persistence/services/GcpObjectStoreFileStorageTest.java +++ b/multiapps-controller-persistence/src/test/java/org/cloudfoundry/multiapps/controller/persistence/services/GcpObjectStoreFileStorageTest.java @@ -3,10 +3,10 @@ import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; +import java.util.ArrayList; +import java.util.List; import java.util.Map; -import java.util.Set; import java.util.UUID; -import java.util.function.Predicate; import com.google.cloud.storage.Blob; import com.google.cloud.storage.BlobId; @@ -38,13 +38,12 @@ protected Storage createObjectStoreStorage(Map credentials) { } @Override - protected int removeBlobsByFilter(Predicate filter) { - Set entries = getEntryNames(filter); - for (String entry : entries) { - storage.delete(CONTAINER, entry); + protected List deleteBlobs(List blobIds) { + List deletedBlobsResults = new ArrayList<>(); + for (BlobId blobId : blobIds) { + deletedBlobsResults.add(storage.delete(blobId)); } - - return entries.size(); + return deletedBlobsResults; } }; spaceId = UUID.randomUUID()