From 540455d0fab82130280b34c0dd32111a43067eb6 Mon Sep 17 00:00:00 2001 From: Alexandre Dutra Date: Sat, 1 Feb 2025 13:16:26 +0100 Subject: [PATCH] Use Strings as map keys instead of RealmId --- .../LocalPolarisMetaStoreManagerFactory.java | 13 ++++++------- .../core/persistence/MetaStoreManagerFactory.java | 4 ++-- .../apache/polaris/admintool/BootstrapCommand.java | 8 ++++---- .../quarkus/catalog/BasePolarisCatalogTest.java | 4 ++-- .../InMemoryPolarisMetaStoreManagerFactory.java | 8 ++++---- 5 files changed, 18 insertions(+), 19 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 445f48c77..f6841502e 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 @@ -28,7 +28,6 @@ import org.apache.polaris.core.PolarisConfigurationStore; import org.apache.polaris.core.PolarisDiagnostics; import org.apache.polaris.core.auth.PolarisSecretsManager.PrincipalSecretsResult; -import org.apache.polaris.core.context.ImmutableRealmId; import org.apache.polaris.core.context.RealmId; import org.apache.polaris.core.entity.PolarisEntity; import org.apache.polaris.core.entity.PolarisEntityConstants; @@ -99,9 +98,9 @@ private void initializeForRealm( } @Override - public synchronized Map bootstrapRealms( + public synchronized Map bootstrapRealms( List realms, PolarisCredentialsBootstrap credentialsBootstrap) { - Map results = new HashMap<>(); + Map results = new HashMap<>(); for (RealmId realm : realms) { if (!metaStoreManagerMap.containsKey(realm.id())) { @@ -110,7 +109,7 @@ public synchronized Map bootstrapRealms( bootstrapServiceAndCreatePolarisPrincipalForRealm( realm, metaStoreManagerMap.get(realm.id())); // copy to avoid using a CDI proxy as a key - results.put(ImmutableRealmId.copyOf(realm), secretsResult); + results.put(realm.id(), secretsResult); } } @@ -118,8 +117,8 @@ public synchronized Map bootstrapRealms( } @Override - public synchronized Map purgeRealms(List realms) { - Map results = new HashMap<>(); + public synchronized Map purgeRealms(List realms) { + Map results = new HashMap<>(); for (RealmId realm : realms) { PolarisMetaStoreManager metaStoreManager = getOrCreateMetaStoreManager(realm); @@ -127,7 +126,7 @@ public synchronized Map purgeRealms(List realms) { BaseResult result = metaStoreManager.purge(session); // copy to avoid using a CDI proxy as a key - results.put(ImmutableRealmId.copyOf(realm), result); + results.put(realm.id(), result); storageCredentialCacheMap.remove(realm.id()); sessionSupplierMap.remove(realm.id()); 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 e59bdf3d7..aac7fdf3d 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 @@ -39,10 +39,10 @@ public interface MetaStoreManagerFactory { EntityCache getOrCreateEntityCache(RealmId realmId); @CanIgnoreReturnValue - Map bootstrapRealms( + Map bootstrapRealms( List realms, PolarisCredentialsBootstrap credentialsBootstrap); /** Purge all metadata for the realms provided */ @CanIgnoreReturnValue - Map purgeRealms(List realms); + Map purgeRealms(List realms); } diff --git a/quarkus/admin/src/main/java/org/apache/polaris/admintool/BootstrapCommand.java b/quarkus/admin/src/main/java/org/apache/polaris/admintool/BootstrapCommand.java index 4a60af1c7..1e8cf3d84 100644 --- a/quarkus/admin/src/main/java/org/apache/polaris/admintool/BootstrapCommand.java +++ b/quarkus/admin/src/main/java/org/apache/polaris/admintool/BootstrapCommand.java @@ -56,19 +56,19 @@ public Integer call() { : PolarisCredentialsBootstrap.fromList(credentials); // Execute the bootstrap - Map results = + Map results = metaStoreManagerFactory.bootstrapRealms(realms, credentialsBootstrap); // Log any errors: boolean success = true; - for (Map.Entry result : results.entrySet()) { + for (Map.Entry result : results.entrySet()) { if (!result.getValue().isSuccess()) { - RealmId realm = result.getKey(); + String realm = result.getKey(); spec.commandLine() .getErr() .printf( "Bootstrapping '%s' failed: %s%n", - realm.id(), result.getValue().getReturnStatus().toString()); + realm, result.getValue().getReturnStatus().toString()); success = false; } } 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 c64a88364..77bd8e394 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 @@ -334,13 +334,13 @@ public EntityCache getOrCreateEntityCache(RealmId realmId) { } @Override - public Map bootstrapRealms( + public Map bootstrapRealms( List realms, PolarisCredentialsBootstrap credentialsBootstrap) { throw new NotImplementedException("Bootstrapping realms is not supported"); } @Override - public Map purgeRealms(List realms) { + public Map purgeRealms(List realms) { throw new NotImplementedException("Purging realms is not supported"); } }; diff --git a/service/common/src/main/java/org/apache/polaris/service/persistence/InMemoryPolarisMetaStoreManagerFactory.java b/service/common/src/main/java/org/apache/polaris/service/persistence/InMemoryPolarisMetaStoreManagerFactory.java index a1be080b2..5ec46e4fa 100644 --- a/service/common/src/main/java/org/apache/polaris/service/persistence/InMemoryPolarisMetaStoreManagerFactory.java +++ b/service/common/src/main/java/org/apache/polaris/service/persistence/InMemoryPolarisMetaStoreManagerFactory.java @@ -106,17 +106,17 @@ public synchronized Supplier getOrCreateSessionSupplier private void bootstrapRealmsAndPrintCredentials(List realms) { PolarisCredentialsBootstrap credentialsBootstrap = PolarisCredentialsBootstrap.fromEnvironment(); - Map results = + Map results = this.bootstrapRealms(realms, credentialsBootstrap); - for (RealmId realm : results.keySet()) { - bootstrappedRealms.add(realm.id()); + for (String realm : results.keySet()) { + bootstrappedRealms.add(realm); PrincipalSecretsResult principalSecrets = results.get(realm); String msg = String.format( "realm: %1s root principal credentials: %2s:%3s", - realm.id(), + realm, principalSecrets.getPrincipalSecrets().getPrincipalClientId(), principalSecrets.getPrincipalSecrets().getMainSecret()); System.out.println(msg);