diff --git a/openstackclient/shell.py b/openstackclient/shell.py index 29f9f70a7d..eef2d0612a 100644 --- a/openstackclient/shell.py +++ b/openstackclient/shell.py @@ -298,7 +298,6 @@ class OpenStackShell(App): super(OpenStackShell, self).initialize_app(argv) # stash selected API versions for later - # TODO(dtroyer): how do extenstions add their version requirements? self.api_version = { 'compute': self.options.os_compute_api_version, 'identity': self.options.os_identity_api_version, @@ -312,6 +311,19 @@ class OpenStackShell(App): self.command_manager.add_command_group( 'openstack.' + api + version) + # This is the naive extension implementation referred to in + # blueprint 'client-extensions' + # Extension modules can register their commands in an + # 'openstack.extension' entry point group: + # entry_points={ + # 'openstack.extension': [ + # 'list_repo=qaz.github.repo:ListRepo', + # 'show_repo=qaz.github.repo:ShowRepo', + # ], + # } + self.command_manager.add_command_group( + 'openstack.extension') + # Handle deferred help and exit if self.options.deferred_help: self.DeferredHelpAction(self.parser, self.parser, None, None)