This is an automated email from the ASF dual-hosted git repository.

adutra pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/polaris.git


The following commit(s) were added to refs/heads/main by this push:
     new 07f3199a MetaStoreManagerFactory: make purgeRealms() return purge 
results (#889)
07f3199a is described below

commit 07f3199a7645de55774827323c6765c683eb22cb
Author: Alexandre Dutra <[email protected]>
AuthorDate: Fri Feb 28 09:44:46 2025 +0100

    MetaStoreManagerFactory: make purgeRealms() return purge results (#889)
---
 .../persistence/LocalPolarisMetaStoreManagerFactory.java   | 14 +++++++++-----
 .../polaris/core/persistence/MetaStoreManagerFactory.java  |  5 ++---
 .../service/quarkus/catalog/BasePolarisCatalogTest.java    |  5 +++--
 3 files changed, 14 insertions(+), 10 deletions(-)

diff --git 
a/polaris-core/src/main/java/org/apache/polaris/core/persistence/LocalPolarisMetaStoreManagerFactory.java
 
b/polaris-core/src/main/java/org/apache/polaris/core/persistence/LocalPolarisMetaStoreManagerFactory.java
index 8c7d3bb5..cbaf9487 100644
--- 
a/polaris-core/src/main/java/org/apache/polaris/core/persistence/LocalPolarisMetaStoreManagerFactory.java
+++ 
b/polaris-core/src/main/java/org/apache/polaris/core/persistence/LocalPolarisMetaStoreManagerFactory.java
@@ -21,7 +21,6 @@ package org.apache.polaris.core.persistence;
 import jakarta.annotation.Nonnull;
 import jakarta.annotation.Nullable;
 import java.util.HashMap;
-import java.util.List;
 import java.util.Map;
 import java.util.function.Supplier;
 import org.apache.polaris.core.PolarisCallContext;
@@ -97,7 +96,7 @@ public abstract class 
LocalPolarisMetaStoreManagerFactory<StoreType>
 
   @Override
   public synchronized Map<String, PrincipalSecretsResult> bootstrapRealms(
-      List<String> realms, RootCredentialsSet rootCredentialsSet) {
+      Iterable<String> realms, RootCredentialsSet rootCredentialsSet) {
     Map<String, PrincipalSecretsResult> results = new HashMap<>();
 
     for (String realm : realms) {
@@ -111,23 +110,28 @@ public abstract class 
LocalPolarisMetaStoreManagerFactory<StoreType>
       }
     }
 
-    return results;
+    return Map.copyOf(results);
   }
 
   @Override
-  public void purgeRealms(List<String> realms) {
+  public Map<String, BaseResult> purgeRealms(Iterable<String> realms) {
+    Map<String, BaseResult> results = new HashMap<>();
+
     for (String realm : realms) {
       PolarisMetaStoreManager metaStoreManager = 
getOrCreateMetaStoreManager(() -> realm);
       PolarisMetaStoreSession session = getOrCreateSessionSupplier(() -> 
realm).get();
 
       PolarisCallContext callContext = new PolarisCallContext(session, 
diagServices);
-      metaStoreManager.purge(callContext);
+      BaseResult result = metaStoreManager.purge(callContext);
+      results.put(realm, result);
 
       storageCredentialCacheMap.remove(realm);
       backingStoreMap.remove(realm);
       sessionSupplierMap.remove(realm);
       metaStoreManagerMap.remove(realm);
     }
+
+    return Map.copyOf(results);
   }
 
   @Override
diff --git 
a/polaris-core/src/main/java/org/apache/polaris/core/persistence/MetaStoreManagerFactory.java
 
b/polaris-core/src/main/java/org/apache/polaris/core/persistence/MetaStoreManagerFactory.java
index 13557157..312ff46e 100644
--- 
a/polaris-core/src/main/java/org/apache/polaris/core/persistence/MetaStoreManagerFactory.java
+++ 
b/polaris-core/src/main/java/org/apache/polaris/core/persistence/MetaStoreManagerFactory.java
@@ -18,7 +18,6 @@
  */
 package org.apache.polaris.core.persistence;
 
-import java.util.List;
 import java.util.Map;
 import java.util.function.Supplier;
 import 
org.apache.polaris.core.auth.PolarisSecretsManager.PrincipalSecretsResult;
@@ -39,8 +38,8 @@ public interface MetaStoreManagerFactory {
   EntityCache getOrCreateEntityCache(RealmContext realmContext);
 
   Map<String, PrincipalSecretsResult> bootstrapRealms(
-      List<String> realms, RootCredentialsSet rootCredentialsSet);
+      Iterable<String> realms, RootCredentialsSet rootCredentialsSet);
 
   /** Purge all metadata for the realms provided */
-  void purgeRealms(List<String> realms);
+  Map<String, BaseResult> purgeRealms(Iterable<String> realms);
 }
diff --git 
a/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/catalog/BasePolarisCatalogTest.java
 
b/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/catalog/BasePolarisCatalogTest.java
index 7f5701e2..88f5669a 100644
--- 
a/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/catalog/BasePolarisCatalogTest.java
+++ 
b/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/catalog/BasePolarisCatalogTest.java
@@ -86,6 +86,7 @@ import org.apache.polaris.core.entity.PolarisEntitySubType;
 import org.apache.polaris.core.entity.PolarisEntityType;
 import org.apache.polaris.core.entity.PrincipalEntity;
 import org.apache.polaris.core.entity.TaskEntity;
+import org.apache.polaris.core.persistence.BaseResult;
 import org.apache.polaris.core.persistence.MetaStoreManagerFactory;
 import org.apache.polaris.core.persistence.PolarisEntityManager;
 import org.apache.polaris.core.persistence.PolarisMetaStoreManager;
@@ -354,12 +355,12 @@ public class BasePolarisCatalogTest extends 
CatalogTests<BasePolarisCatalog> {
 
       @Override
       public Map<String, PrincipalSecretsResult> bootstrapRealms(
-          List<String> realms, RootCredentialsSet rootCredentialsSet) {
+          Iterable<String> realms, RootCredentialsSet rootCredentialsSet) {
         throw new NotImplementedException("Bootstrapping realms is not 
supported");
       }
 
       @Override
-      public void purgeRealms(List<String> realms) {
+      public Map<String, BaseResult> purgeRealms(Iterable<String> realms) {
         throw new NotImplementedException("Purging realms is not supported");
       }
     };

Reply via email to