Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,7 @@ public KeyInfoWithVolumeContext getKeyInfo(final OmKeyArgs args,

final OmKeyArgs resolvedVolumeArgs;
if (assumeS3Context) {
S3VolumeContext context = ozoneManager.getS3VolumeContext();
S3VolumeContext context = ozoneManager.getS3VolumeContext(true);
s3VolumeContext = java.util.Optional.of(context);
resolvedVolumeArgs = args.toBuilder()
.setVolumeName(context.getOmVolumeArgs().getVolume())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3436,6 +3436,10 @@ public TenantUserList listUsersInTenant(String tenantId, String prefix)

@Override
public S3VolumeContext getS3VolumeContext() throws IOException {
return getS3VolumeContext(false);
}

S3VolumeContext getS3VolumeContext(boolean skipChecks) throws IOException {
long start = Time.monotonicNowNanos();
// Unless the OM request contains S3 authentication info with an access
// ID that corresponds to a tenant volume, the request will be directed
Expand Down Expand Up @@ -3515,9 +3519,19 @@ public S3VolumeContext getS3VolumeContext() throws IOException {
}
}

// getVolumeInfo() performs acl checks and checks volume existence.

final OmVolumeArgs volumeInfo;
if (skipChecks) {
// for internal usages, skip acl checks and metrics.
volumeInfo = volumeManager.getVolumeInfo(s3Volume);
} else {
// for external usages, getVolumeInfo() performs acl checks
// and metric updates.
volumeInfo = getVolumeInfo(s3Volume);
}

final S3VolumeContext.Builder s3VolumeContext = S3VolumeContext.newBuilder()
.setOmVolumeArgs(getVolumeInfo(s3Volume))
.setOmVolumeArgs(volumeInfo)
.setUserPrincipal(userPrincipal);
perfMetrics.addS3VolumeContextLatencyNs(Time.monotonicNowNanos() - start);
return s3VolumeContext.build();
Expand Down