[
https://issues.apache.org/jira/browse/HADOOP-18691?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17712652#comment-17712652
]
ASF GitHub Bot commented on HADOOP-18691:
-----------------------------------------
steveloughran commented on code in PR #5540:
URL: https://github.com/apache/hadoop/pull/5540#discussion_r1167526769
##########
hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestIdentityProviders.java:
##########
@@ -61,7 +63,7 @@ public void testPluggableIdentityProvider() {
CommonConfigurationKeys.IPC_IDENTITY_PROVIDER_KEY,
IdentityProvider.class);
- assertTrue(providers.size() == 1);
+ assertEquals(1, providers.size());
Review Comment:
use assertJ
```
assertThat(providers)
.describedAs("provider list")
.hasSize(1);
```
##########
hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestIdentityProviders.java:
##########
@@ -71,12 +73,20 @@ public void testPluggableIdentityProvider() {
@Test
public void testUserIdentityProvider() throws IOException {
UserIdentityProvider uip = new UserIdentityProvider();
- String identity = uip.makeIdentity(new FakeSchedulable());
+ FakeSchedulable fakeSchedulable = new FakeSchedulable();
+ String identity = uip.makeIdentity(fakeSchedulable);
// Get our username
UserGroupInformation ugi = UserGroupInformation.getCurrentUser();
String username = ugi.getUserName();
assertEquals(username, identity);
+
+ // FakeSchedulable doesn't override getCallerContext()
+ // accessing it should throw a NotImplementedException
+ NotImplementedException nie = assertThrows(
Review Comment:
our own LambdaTestUtils.intercept() does this with better reporting of
mismatch, including rethrowing the failing exception if there's no string match
##########
hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/Schedulable.java:
##########
@@ -29,5 +30,9 @@
public interface Schedulable {
public UserGroupInformation getUserGroupInformation();
+ default CallerContext getCallerContext() {
+ throw new NotImplementedException("Code is not implemented");
Review Comment:
i worry about exposing commons.* classes in an API, as if we change what is
raised external code may break. Just raise java's UnsupportedOperationException
and mention this may happen in the javadocs
##########
hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/Schedulable.java:
##########
@@ -29,5 +30,9 @@
public interface Schedulable {
public UserGroupInformation getUserGroupInformation();
+ default CallerContext getCallerContext() {
Review Comment:
javadocs, even if the rest of the interface left them out
> Add a CallerContext getter on the Schedulable interface
> -------------------------------------------------------
>
> Key: HADOOP-18691
> URL: https://issues.apache.org/jira/browse/HADOOP-18691
> Project: Hadoop Common
> Issue Type: Improvement
> Reporter: Christos Bisias
> Priority: Major
> Labels: pull-request-available
>
> We would like to add a default *{color:#00875a}CallerContext{color}* getter
> on the *{color:#00875a}Schedulable{color}* interface
> {code:java}
> default public CallerContext getCallerContext() {
> return null;
> } {code}
> and then override it on the
> *{color:#00875a}i{color}{color:#00875a}{*}pc/{*}Server.Call{color}* class
> {code:java}
> @Override
> public CallerContext getCallerContext() {
> return this.callerContext;
> } {code}
> to expose the already existing *{color:#00875a}callerContext{color}* field.
>
> This change will help us access the *{color:#00875a}CallerContext{color}* on
> an Apache Ozone *{color:#00875a}IdentityProvider{color}* implementation.
> On Ozone side the *{color:#00875a}FairCallQueue{color}* doesn't work with the
> Ozone S3G, because all users are masked under a special S3G user and there is
> no impersonation. Therefore, the FCQ reads only 1 user and becomes
> ineffective. We can use the *{color:#00875a}CallerContext{color}* field to
> store the current user and access it on the Ozone
> {*}{color:#00875a}IdentityProvider{color}{*}.
>
> This is a presentation with the proposed approach.
> [https://docs.google.com/presentation/d/1iChpCz_qf-LXiPyvotpOGiZ31yEUyxAdU4RhWMKo0c0/edit#slide=id.p]
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]