Skip to content

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

Closed
sandeep-mst wants to merge 2 commits into
apache:branch-3.1from
cognitree:branch-3.1-21194-shell
Closed

[improve][cli]Support for pulsar-shell persistent modes#22515
sandeep-mst wants to merge 2 commits into
apache:branch-3.1from
cognitree:branch-3.1-21194-shell

Conversation

@sandeep-mst
Copy link
Copy Markdown
Contributor

@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
Copy Markdown
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
Copy Markdown
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
Copy Markdown
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
Copy Markdown
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
Copy Markdown
Contributor 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.

2 participants