diff options
| author | Rui Chen <chenrui.momo@gmail.com> | 2017-02-22 14:39:09 +0800 |
|---|---|---|
| committer | Rui Chen <chenrui.momo@gmail.com> | 2017-02-23 12:13:06 +0800 |
| commit | 0898ebacb8d9c38ae36adaf593867a9b16a50504 (patch) | |
| tree | 5731306c371993b8a25449bdc833aafa641676e8 /openstackclient/common | |
| parent | c8435f2d5a31731e3f25f9ed14fa54f8cb372eee (diff) | |
| download | python-openstackclient-0898ebacb8d9c38ae36adaf593867a9b16a50504.tar.gz | |
Support list commands by group name keyword
The output of current "command list" is so long, it's
very difficult for users to find out the commands
they care about.
Add "--group <group-keyword>" option to filter the commands by group
name keyword, like: --group volume, list all openstack.volume.v2
(cinder) commands
That support the scenario that users need to know the current support
commands of some OpenStack services(nova, neutron, cinder and so on) in
OSC.
Change-Id: Id673042729ad36a0cac0b81fb31a3537c24f03fc
Closes-Bug: #1666780
Diffstat (limited to 'openstackclient/common')
| -rw-r--r-- | openstackclient/common/module.py | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/openstackclient/common/module.py b/openstackclient/common/module.py index ba911ecb..20497f21 100644 --- a/openstackclient/common/module.py +++ b/openstackclient/common/module.py @@ -29,12 +29,26 @@ class ListCommand(command.Lister): auth_required = False + def get_parser(self, prog_name): + parser = super(ListCommand, self).get_parser(prog_name) + parser.add_argument( + '--group', + metavar='<group-keyword>', + help=_('Show commands filtered by a command group, for example: ' + 'identity, volume, compute, image, network and ' + 'other keywords'), + ) + return parser + def take_action(self, parsed_args): cm = self.app.command_manager groups = cm.get_command_groups() groups = sorted(groups) columns = ('Command Group', 'Commands') + if parsed_args.group: + groups = (group for group in groups if parsed_args.group in group) + commands = [] for group in groups: command_names = cm.get_command_names(group) |
