Skip to content

Commit 8382af8

Browse files
committed
[S3AG] log warning for missing plugin without exception
1 parent ec60368 commit 8382af8

File tree

2 files changed

+18
-22
lines changed

2 files changed

+18
-22
lines changed

hadoop-tools/hadoop-aws/src/main/java/org/apache/hadoop/fs/s3a/DefaultS3ClientFactory.java

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -439,18 +439,19 @@ private static Region getS3RegionFromEndpoint(final String endpoint,
439439
}
440440

441441
public static <BuilderT extends S3BaseClientBuilder<BuilderT, ClientT>, ClientT> void
442-
applyS3AccessGrantsConfigurations(BuilderT builder, Configuration conf) throws InstantiationIOException {
442+
applyS3AccessGrantsConfigurations(BuilderT builder, Configuration conf) {
443443
boolean s3agEnabled = conf.getBoolean(AWS_S3_ACCESS_GRANTS_ENABLED, false);
444444
if (s3agEnabled) {
445-
if (!isS3AGPluginAvailable()) {
446-
throw unavailable(null, S3AG_PLUGIN_CLASSNAME, null, "No S3AG plugin available");
445+
if (isS3AGPluginAvailable()) {
446+
boolean s3agFallbackEnabled = conf.getBoolean(
447+
AWS_S3_ACCESS_GRANTS_FALLBACK_TO_IAM_ENABLED, false);
448+
S3AccessGrantsPlugin accessGrantsPlugin =
449+
S3AccessGrantsPlugin.builder().enableFallback(s3agFallbackEnabled).build();
450+
builder.addPlugin(accessGrantsPlugin);
451+
LOG_EXACTLY_ONCE.info("s3ag plugin is added to s3 client with fallback: {}", s3agFallbackEnabled);
452+
} else {
453+
LOG_EXACTLY_ONCE.warn("s3ag plugin is not available.");
447454
}
448-
boolean s3agFallbackEnabled = conf.getBoolean(
449-
AWS_S3_ACCESS_GRANTS_FALLBACK_TO_IAM_ENABLED, false);
450-
S3AccessGrantsPlugin accessGrantsPlugin =
451-
S3AccessGrantsPlugin.builder().enableFallback(s3agFallbackEnabled).build();
452-
builder.addPlugin(accessGrantsPlugin);
453-
LOG_EXACTLY_ONCE.info("s3ag plugin is added to s3 client with fallback: {}", s3agFallbackEnabled);
454455
} else {
455456
LOG_EXACTLY_ONCE.debug("s3ag plugin is not added to s3 client.");
456457
}

hadoop-tools/hadoop-aws/src/test/java/org/apache/hadoop/fs/s3a/TestS3AccessGrantConfiguration.java

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -77,19 +77,14 @@ private Configuration createConfig(boolean isDefault, boolean s3agEnabled) {
7777

7878
private <BuilderT extends S3BaseClientBuilder<BuilderT, ClientT>, ClientT> void
7979
applyVerifyS3AGPlugin(BuilderT builder, boolean isDefault, boolean enabled) {
80-
try {
81-
DefaultS3ClientFactory.applyS3AccessGrantsConfigurations(builder, createConfig(isDefault, enabled));
82-
if (enabled){
83-
assertEquals(builder.plugins().size(), 1);
84-
assertEquals(builder.plugins().get(0).getClass().getName(),
85-
"software.amazon.awssdk.s3accessgrants.plugin.S3AccessGrantsPlugin");
86-
}
87-
else {
88-
assertEquals(builder.plugins().size(), 0);
89-
}
90-
} catch (InstantiationIOException e) {
91-
Assert.assertTrue(true);
80+
DefaultS3ClientFactory.applyS3AccessGrantsConfigurations(builder, createConfig(isDefault, enabled));
81+
if (enabled){
82+
assertEquals(builder.plugins().size(), 1);
83+
assertEquals(builder.plugins().get(0).getClass().getName(),
84+
"software.amazon.awssdk.s3accessgrants.plugin.S3AccessGrantsPlugin");
85+
}
86+
else {
87+
assertEquals(builder.plugins().size(), 0);
9288
}
9389
}
94-
9590
}

0 commit comments

Comments
 (0)