Skip to content

Commit

Permalink
MetaStoreManagerFactory: make purgeRealms() return purge results (apa…
Browse files Browse the repository at this point in the history
  • Loading branch information
adutra authored and sfc-gh-yzou committed Mar 3, 2025
1 parent bc58cb2 commit 968d8ec
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@
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;
Expand Down Expand Up @@ -97,7 +96,7 @@ private void initializeForRealm(

@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) {
Expand All @@ -111,23 +110,28 @@ public synchronized Map<String, PrincipalSecretsResult> bootstrapRealms(
}
}

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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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);
}
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,7 @@
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;
Expand Down Expand Up @@ -354,12 +355,12 @@ public EntityCache getOrCreateEntityCache(RealmContext realmContext) {

@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");
}
};
Expand Down

0 comments on commit 968d8ec

Please sign in to comment.