Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ZEPPELIN-6075] Configuration for global Roles #4808

Open
wants to merge 4 commits into
base: master
Choose a base branch
from

Conversation

Reamer
Copy link
Contributor

@Reamer Reamer commented Sep 2, 2024

What is this PR for?

This PR adds global roles, which can be stored in the Zeppelin configuration.

What type of PR is it?

Feature

Todos

  • - Documentation

What is the Jira issue?

How should this be tested?

  • Ci

Questions:

  • Does the license files need to update? No
  • Is there breaking changes for older versions? No
  • Does this needs documentation? Yes

@Reamer Reamer force-pushed the globalRoles branch 2 times, most recently from f929c4c to 5c70491 Compare September 25, 2024 08:27
Copy link
Contributor

@seung-00 seung-00 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Our team needed this feature too. thank you for contributing. I've left a few simple comments for your review.

Comment on lines 327 to 301
switch (confvar) {
case ZEPPELIN_OWNER_ROLES:
case ZEPPELIN_WRITER_ROLES:
case ZEPPELIN_READER_ROLES:
case ZEPPELIN_RUNNER_ROLES:
defaultRolesConf = zConf.getString(confvar);
break;
default:
LOGGER.warn("getDefaultRoles is used with {}, which is not valid", confvar);
break;
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How about using a collection like EnumSet instead of a switch statement to manage valid roles? IMO, this simplifies the code and makes it easier to add or modify roles in the future.

private static final Set<ZeppelinConfiguration.ConfVars> VALID_CONF_VARS = EnumSet.of(
      ZeppelinConfiguration.ConfVars.ZEPPELIN_OWNER_ROLES,
      ZeppelinConfiguration.ConfVars.ZEPPELIN_WRITER_ROLES,
      ZeppelinConfiguration.ConfVars.ZEPPELIN_READER_ROLES,
      ZeppelinConfiguration.ConfVars.ZEPPELIN_RUNNER_ROLES
  );

private Set<String> getDefaultRoles(ZeppelinConfiguration.ConfVars confvar) {
    if (!VALID_CONF_VARS.contains(confvar)) {
      LOGGER.warn("getDefaultRoles is used with {}, which is not valid", confvar);
      return Collections.emptySet();
    }
    ...
}

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for your review. I have adapted the code and agree with your statements.

Copy link
Contributor

@seung-00 seung-00 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM 👍

@Reamer
Copy link
Contributor Author

Reamer commented Oct 30, 2024

I am using the feature in my company and have come across a bug that should be fixed with the latest commit.
The error should no longer occur because it has been covered by unit tests.
I will roll out the feature in my production environment in the next few days and report back on the status.

@Reamer
Copy link
Contributor Author

Reamer commented Oct 31, 2024

The users of my company report that the error found has now been fixed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants