Add a simple extension hook
This enables stand-alone modules to hook in to the command-line handler in a dedicated API namespace. These extensions have access to the existing clients via the client manager but no way to add another client to the manager is provided.. blueprint client-extensions Change-Id: I4b2eaa780d8ba881db23d950d09b8702e9e314ef
This commit is contained in:
parent
6fae83b935
commit
4fd5dd3b1a
@ -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)
|
||||
|
Loading…
x
Reference in New Issue
Block a user