diff --git a/persistence/relational-jdbc/src/main/java/org/apache/polaris/persistence/relational/jdbc/JdbcMetaStoreManagerFactory.java b/persistence/relational-jdbc/src/main/java/org/apache/polaris/persistence/relational/jdbc/JdbcMetaStoreManagerFactory.java index a6066895c7..20698b43ef 100644 --- a/persistence/relational-jdbc/src/main/java/org/apache/polaris/persistence/relational/jdbc/JdbcMetaStoreManagerFactory.java +++ b/persistence/relational-jdbc/src/main/java/org/apache/polaris/persistence/relational/jdbc/JdbcMetaStoreManagerFactory.java @@ -159,8 +159,7 @@ public synchronized Map bootstrapRealms( initializeForRealm( datasourceOperations, realmContext, bootstrapOptions.rootCredentialsSet()); PrincipalSecretsResult secretsResult = - bootstrapServiceAndCreatePolarisPrincipalForRealm( - realmContext, metaStoreManagerMap.get(realm)); + bootstrapServiceAndCreatePolarisPrincipalForRealm(realmContext); results.put(realm, secretsResult); } } @@ -228,14 +227,14 @@ public synchronized EntityCache getOrCreateEntityCache( * metastore and creates a root service principal. */ private PrincipalSecretsResult bootstrapServiceAndCreatePolarisPrincipalForRealm( - RealmContext realmContext, PolarisMetaStoreManager metaStoreManager) { + RealmContext realmContext) { // While bootstrapping we need to act as a fake privileged context since the real // CallContext may not have been resolved yet. + PolarisMetaStoreManager metaStoreManager = + metaStoreManagerMap.get(realmContext.getRealmIdentifier()); + BasePersistence metaStore = sessionSupplierMap.get(realmContext.getRealmIdentifier()).get(); PolarisCallContext polarisContext = - new PolarisCallContext( - realmContext, - sessionSupplierMap.get(realmContext.getRealmIdentifier()).get(), - diagServices); + new PolarisCallContext(realmContext, metaStore, diagServices); if (CallContext.getCurrentContext() == null) { CallContext.setCurrentContext(polarisContext); } @@ -264,13 +263,11 @@ private PrincipalSecretsResult bootstrapServiceAndCreatePolarisPrincipalForRealm PolarisEntityType.PRINCIPAL, PolarisEntitySubType.NULL_SUBTYPE, PolarisEntityConstants.getRootPrincipalName()); - PrincipalSecretsResult secrets = - metaStoreManager.loadPrincipalSecrets( - polarisContext, - PolarisEntity.of(rootPrincipalLookup.getEntity()) - .getInternalPropertiesAsMap() - .get(PolarisEntityConstants.getClientIdPropertyName())); - return secrets; + return metaStoreManager.loadPrincipalSecrets( + polarisContext, + PolarisEntity.of(rootPrincipalLookup.getEntity()) + .getInternalPropertiesAsMap() + .get(PolarisEntityConstants.getClientIdPropertyName())); } /** @@ -283,11 +280,9 @@ private PrincipalSecretsResult bootstrapServiceAndCreatePolarisPrincipalForRealm private void checkPolarisServiceBootstrappedForRealm(RealmContext realmContext) { PolarisMetaStoreManager metaStoreManager = metaStoreManagerMap.get(realmContext.getRealmIdentifier()); + BasePersistence metaStore = sessionSupplierMap.get(realmContext.getRealmIdentifier()).get(); PolarisCallContext polarisContext = - new PolarisCallContext( - realmContext, - sessionSupplierMap.get(realmContext.getRealmIdentifier()).get(), - diagServices); + new PolarisCallContext(realmContext, metaStore, diagServices); if (CallContext.getCurrentContext() == null) { CallContext.setCurrentContext(polarisContext); } 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 47aced248c..a54f29aed3 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 @@ -114,8 +114,7 @@ public synchronized Map bootstrapRealms( if (!metaStoreManagerMap.containsKey(realm)) { initializeForRealm(realmContext, rootCredentialsSet); PrincipalSecretsResult secretsResult = - bootstrapServiceAndCreatePolarisPrincipalForRealm( - realmContext, metaStoreManagerMap.get(realm)); + bootstrapServiceAndCreatePolarisPrincipalForRealm(realmContext); results.put(realm, secretsResult); } } @@ -179,18 +178,17 @@ public synchronized EntityCache getOrCreateEntityCache( /** * This method bootstraps service for a given realm: i.e. creates all the needed entities in the - * metastore and creates a root service principal. After that we rotate the root principal - * credentials and print them to stdout + * metastore and creates a root service principal. */ private PrincipalSecretsResult bootstrapServiceAndCreatePolarisPrincipalForRealm( - RealmContext realmContext, PolarisMetaStoreManager metaStoreManager) { + RealmContext realmContext) { // While bootstrapping we need to act as a fake privileged context since the real // CallContext may not have been resolved yet. - var polarisContext = - new PolarisCallContext( - realmContext, - sessionSupplierMap.get(realmContext.getRealmIdentifier()).get(), - diagServices); + PolarisMetaStoreManager metaStoreManager = + metaStoreManagerMap.get(realmContext.getRealmIdentifier()); + BasePersistence metaStore = sessionSupplierMap.get(realmContext.getRealmIdentifier()).get(); + PolarisCallContext polarisContext = + new PolarisCallContext(realmContext, metaStore, diagServices); if (CallContext.getCurrentContext() == null) { CallContext.setCurrentContext(polarisContext); } @@ -236,11 +234,9 @@ private PrincipalSecretsResult bootstrapServiceAndCreatePolarisPrincipalForRealm private void checkPolarisServiceBootstrappedForRealm(RealmContext realmContext) { PolarisMetaStoreManager metaStoreManager = metaStoreManagerMap.get(realmContext.getRealmIdentifier()); + BasePersistence metaStore = sessionSupplierMap.get(realmContext.getRealmIdentifier()).get(); PolarisCallContext polarisContext = - new PolarisCallContext( - realmContext, - sessionSupplierMap.get(realmContext.getRealmIdentifier()).get(), - diagServices); + new PolarisCallContext(realmContext, metaStore, diagServices); if (CallContext.getCurrentContext() == null) { CallContext.setCurrentContext(polarisContext); }