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

[improve][cli]Support for pulsar-shell persistent modes #22515

Closed

Conversation

sandeep-mst
Copy link

@sandeep-mst sandeep-mst commented Apr 16, 2024

Fixes 21194 of apache/pulsar

Motivation

Pulsar shell doesn't support persistent mode for admin, client, config. If we need to run a lot of admin commands for example, we would need to prefix admin each time. This will provide an alternative approach.

Modifications

Modified so that admin, client, config commands individually will launch their own mode and prompt message also gets updated. exitmode command will exit from the mode to the default mode.
In the admin mode, we can run command topics instead of admin topics.

Verifying this change

  • Make sure that the change passes the CI checks.

(Please pick either of the following options)

This change is already covered by existing tests, such as (please describe tests).

Does this pull request potentially affect one of the following parts:

If the box was checked, please highlight the changes

  • Dependencies (add or upgrade a dependency)
  • The public API
  • The schema
  • The default values of configurations
  • The threading model
  • The binary protocol
  • The REST endpoints
  • The admin CLI options
  • The metrics
  • Anything that affects deployment

Documentation

  • doc
  • doc-required
  • doc-not-needed
  • doc-complete

Matching PR in forked repository

PR in forked repository:
cognitree#5

@github-actions github-actions bot added the doc-not-needed Your PR changes do not impact docs label Apr 16, 2024
Comment on lines +605 to +607
private static boolean isExitModeCommand(String line) {
return line.equalsIgnoreCase("exitmode");
}
Copy link
Member

Choose a reason for hiding this comment

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

there shouldn't be a separate exitmode command. Simple exit or pressing CTRL-D should do that.

}

private static boolean isChangeModeCommand(String line) {
return line.equalsIgnoreCase("admin") || line.equalsIgnoreCase("client") || line.equalsIgnoreCase("config");
Copy link
Member

Choose a reason for hiding this comment

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

seems like duplication. I'd assume that the ShellMode enum would have a status lookup method instead.

Copy link
Member

Choose a reason for hiding this comment

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

for example https://www.baeldung.com/java-enum-values contains some advice how this could be handled.

@lhotari
Copy link
Member

lhotari commented Apr 16, 2024

@sandeep-mst Thanks for the contribution. Please target the master branch since we currently follow that type of process where PRs target the master branch when it's applicable.

@sandeep-mst
Copy link
Author

Closing in favour of #22522
I have resolved the review comments in that PR

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
doc-not-needed Your PR changes do not impact docs
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants