Skip to content

Commit 453e3a3

Browse files
committed
Remove CallContext
since `PolarisCredentialVendor` (a sub-interface of `PolarisMetaStoreManager`) no longer has a `CallContext` parameter we can see a domino effect: - `StorageCredentialCache` no longer needs `CallContext` - `TokenBroker` no longer needs `CallContext` - `FileIOFactory` no longer needs `CallContext` - `TaskFileIOSupplier` no longer needs `CallContext` - `TaskHandler` and `TaskExecutor` no longer needs `CallContext` - `ResolverFactory` and `ResolutionManifest` no longer needs `CallContext` and eventually `PolarisCallContext` and `CallContext` are really unused and can be removed or replaced by passing `RealmContext` and `RealmConfig` individually.
1 parent c014ca0 commit 453e3a3

File tree

64 files changed

+550
-642
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

64 files changed

+550
-642
lines changed

polaris-core/src/main/java/org/apache/polaris/core/PolarisCallContext.java

Lines changed: 0 additions & 75 deletions
This file was deleted.

polaris-core/src/main/java/org/apache/polaris/core/context/CallContext.java

Lines changed: 0 additions & 44 deletions
This file was deleted.

polaris-core/src/main/java/org/apache/polaris/core/persistence/resolver/PolarisResolutionManifest.java

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,13 @@
3030
import java.util.Set;
3131
import org.apache.polaris.core.PolarisDiagnostics;
3232
import org.apache.polaris.core.auth.PolarisPrincipal;
33-
import org.apache.polaris.core.context.CallContext;
33+
import org.apache.polaris.core.config.RealmConfig;
34+
import org.apache.polaris.core.context.RealmContext;
3435
import org.apache.polaris.core.entity.PolarisBaseEntity;
3536
import org.apache.polaris.core.entity.PolarisEntityConstants;
3637
import org.apache.polaris.core.entity.PolarisEntitySubType;
3738
import org.apache.polaris.core.entity.PolarisEntityType;
39+
import org.apache.polaris.core.persistence.PolarisMetaStoreManager;
3840
import org.apache.polaris.core.persistence.PolarisResolvedPathWrapper;
3941
import org.apache.polaris.core.persistence.ResolvedPolarisEntity;
4042
import org.slf4j.Logger;
@@ -52,7 +54,9 @@ public class PolarisResolutionManifest implements PolarisResolutionManifestCatal
5254
private static final Logger LOGGER = LoggerFactory.getLogger(PolarisResolutionManifest.class);
5355

5456
private final ResolverFactory resolverFactory;
55-
private final CallContext callContext;
57+
private final RealmContext realmContext;
58+
private final RealmConfig realmConfig;
59+
private final PolarisMetaStoreManager metaStoreManager;
5660
private final SecurityContext securityContext;
5761
private final String catalogName;
5862
private final Resolver primaryResolver;
@@ -71,15 +75,20 @@ public class PolarisResolutionManifest implements PolarisResolutionManifestCatal
7175

7276
public PolarisResolutionManifest(
7377
PolarisDiagnostics diagnostics,
74-
CallContext callContext,
78+
RealmContext realmContext,
79+
RealmConfig realmConfig,
80+
PolarisMetaStoreManager metaStoreManager,
7581
ResolverFactory resolverFactory,
7682
SecurityContext securityContext,
7783
String catalogName) {
78-
this.callContext = callContext;
84+
this.realmContext = realmContext;
85+
this.realmConfig = realmConfig;
86+
this.metaStoreManager = metaStoreManager;
7987
this.resolverFactory = resolverFactory;
8088
this.catalogName = catalogName;
8189
this.primaryResolver =
82-
resolverFactory.createResolver(callContext, securityContext, catalogName);
90+
resolverFactory.createResolver(
91+
realmContext, realmConfig, metaStoreManager, securityContext, catalogName);
8392
this.diagnostics = diagnostics;
8493
this.diagnostics.checkNotNull(securityContext, "null_security_context_for_resolution_manifest");
8594
this.securityContext = securityContext;
@@ -188,7 +197,8 @@ public PolarisResolvedPathWrapper getPassthroughResolvedPath(Object key) {
188197

189198
// Run a single-use Resolver for this path.
190199
Resolver passthroughResolver =
191-
resolverFactory.createResolver(callContext, securityContext, catalogName);
200+
resolverFactory.createResolver(
201+
realmContext, realmConfig, metaStoreManager, securityContext, catalogName);
192202
passthroughResolver.addPath(requestedPath);
193203
ResolverStatus status = passthroughResolver.resolveAll();
194204

@@ -273,7 +283,7 @@ public Set<PolarisBaseEntity> getAllActivatedPrincipalRoleEntities() {
273283
if (resolvedEntity == null) {
274284
LOGGER.warn(
275285
"Failed to find rootContainer for realm: {} and catalog: {}",
276-
callContext.getRealmContext().getRealmIdentifier(),
286+
realmContext.getRealmIdentifier(),
277287
catalogName);
278288
}
279289
return resolvedEntity;

polaris-core/src/main/java/org/apache/polaris/core/persistence/resolver/ResolutionManifestFactory.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,17 @@
2222
import jakarta.annotation.Nonnull;
2323
import jakarta.annotation.Nullable;
2424
import jakarta.ws.rs.core.SecurityContext;
25-
import org.apache.polaris.core.context.CallContext;
25+
import org.apache.polaris.core.config.RealmConfig;
26+
import org.apache.polaris.core.context.RealmContext;
27+
import org.apache.polaris.core.persistence.PolarisMetaStoreManager;
2628

2729
public interface ResolutionManifestFactory {
2830

2931
@Nonnull
3032
PolarisResolutionManifest createResolutionManifest(
31-
@Nonnull CallContext callContext,
33+
@Nonnull RealmContext realmContext,
34+
@Nonnull RealmConfig realmConfig,
35+
@Nonnull PolarisMetaStoreManager metaStoreManager,
3236
@Nonnull SecurityContext securityContext,
3337
@Nullable String referenceCatalogName);
3438
}

polaris-core/src/main/java/org/apache/polaris/core/persistence/resolver/ResolutionManifestFactoryImpl.java

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,9 @@
2323
import jakarta.annotation.Nullable;
2424
import jakarta.ws.rs.core.SecurityContext;
2525
import org.apache.polaris.core.PolarisDiagnostics;
26-
import org.apache.polaris.core.context.CallContext;
26+
import org.apache.polaris.core.config.RealmConfig;
27+
import org.apache.polaris.core.context.RealmContext;
28+
import org.apache.polaris.core.persistence.PolarisMetaStoreManager;
2729

2830
public class ResolutionManifestFactoryImpl implements ResolutionManifestFactory {
2931

@@ -39,10 +41,18 @@ public ResolutionManifestFactoryImpl(
3941
@Nonnull
4042
@Override
4143
public PolarisResolutionManifest createResolutionManifest(
42-
@Nonnull CallContext callContext,
44+
@Nonnull RealmContext realmContext,
45+
@Nonnull RealmConfig realmConfig,
46+
@Nonnull PolarisMetaStoreManager metaStoreManager,
4347
@Nonnull SecurityContext securityContext,
4448
@Nullable String referenceCatalogName) {
4549
return new PolarisResolutionManifest(
46-
diagnostics, callContext, resolverFactory, securityContext, referenceCatalogName);
50+
diagnostics,
51+
realmContext,
52+
realmConfig,
53+
metaStoreManager,
54+
resolverFactory,
55+
securityContext,
56+
referenceCatalogName);
4757
}
4858
}

polaris-core/src/main/java/org/apache/polaris/core/persistence/resolver/ResolverFactory.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,15 @@
2222
import jakarta.annotation.Nonnull;
2323
import jakarta.annotation.Nullable;
2424
import jakarta.ws.rs.core.SecurityContext;
25-
import org.apache.polaris.core.context.CallContext;
25+
import org.apache.polaris.core.config.RealmConfig;
26+
import org.apache.polaris.core.context.RealmContext;
27+
import org.apache.polaris.core.persistence.PolarisMetaStoreManager;
2628

2729
public interface ResolverFactory {
2830
Resolver createResolver(
29-
@Nonnull CallContext callContext,
31+
@Nonnull RealmContext realmContext,
32+
@Nonnull RealmConfig realmConfig,
33+
@Nonnull PolarisMetaStoreManager metaStoreManager,
3034
@Nonnull SecurityContext securityContext,
3135
@Nullable String referenceCatalogName);
3236
}

polaris-core/src/main/java/org/apache/polaris/core/storage/cache/StorageCredentialCache.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,10 @@
3030
import java.util.Set;
3131
import java.util.function.Function;
3232
import org.apache.iceberg.exceptions.UnprocessableEntityException;
33-
import org.apache.polaris.core.PolarisCallContext;
3433
import org.apache.polaris.core.PolarisDiagnostics;
3534
import org.apache.polaris.core.config.FeatureConfiguration;
3635
import org.apache.polaris.core.config.RealmConfig;
36+
import org.apache.polaris.core.context.RealmContext;
3737
import org.apache.polaris.core.entity.PolarisEntity;
3838
import org.apache.polaris.core.entity.PolarisEntityType;
3939
import org.apache.polaris.core.persistence.dao.entity.ScopedCredentialsResult;
@@ -96,7 +96,8 @@ private long maxCacheDurationMs(RealmConfig realmConfig) {
9696
* Either get from the cache or generate a new entry for a scoped creds
9797
*
9898
* @param credentialVendor the credential vendor used to generate a new scoped creds if needed
99-
* @param callCtx the call context
99+
* @param realmContext the realm context
100+
* @param realmConfig the realm config
100101
* @param polarisEntity the polaris entity that is going to scoped creds
101102
* @param allowListOperation whether allow list action on the provided read and write locations
102103
* @param allowedReadLocations a set of allowed to read locations
@@ -105,7 +106,8 @@ private long maxCacheDurationMs(RealmConfig realmConfig) {
105106
*/
106107
public AccessConfig getOrGenerateSubScopeCreds(
107108
@Nonnull PolarisCredentialVendor credentialVendor,
108-
@Nonnull PolarisCallContext callCtx,
109+
@Nonnull RealmContext realmContext,
110+
@Nonnull RealmConfig realmConfig,
109111
@Nonnull PolarisEntity polarisEntity,
110112
boolean allowListOperation,
111113
@Nonnull Set<String> allowedReadLocations,
@@ -117,7 +119,7 @@ public AccessConfig getOrGenerateSubScopeCreds(
117119
}
118120
StorageCredentialCacheKey key =
119121
StorageCredentialCacheKey.of(
120-
callCtx.getRealmContext().getRealmIdentifier(),
122+
realmContext.getRealmIdentifier(),
121123
polarisEntity,
122124
allowListOperation,
123125
allowedReadLocations,
@@ -137,7 +139,7 @@ public AccessConfig getOrGenerateSubScopeCreds(
137139
k.allowedWriteLocations(),
138140
k.refreshCredentialsEndpoint());
139141
if (scopedCredentialsResult.isSuccess()) {
140-
long maxCacheDurationMs = maxCacheDurationMs(callCtx.getRealmConfig());
142+
long maxCacheDurationMs = maxCacheDurationMs(realmConfig);
141143
return new StorageCredentialCacheEntry(
142144
scopedCredentialsResult.getAccessConfig(), maxCacheDurationMs);
143145
}

0 commit comments

Comments
 (0)