diff options
| author | Terry Howe <terrylhowe@gmail.com> | 2014-03-06 13:56:10 -0700 |
|---|---|---|
| committer | Terry Howe <terrylhowe@gmail.com> | 2014-03-06 18:41:37 -0700 |
| commit | 211cd31d7ac2c7768cc871ac7c9228f7713b8dfc (patch) | |
| tree | 2af6bff6658c017d24321850059212be5a9fe1ee /openstackclient | |
| parent | 808fa652109e8d0141f88b258df05874e6676d98 (diff) | |
| download | python-openstackclient-211cd31d7ac2c7768cc871ac7c9228f7713b8dfc.tar.gz | |
Make bash comple command best effort to authorize
If authorization fails for the complete command, generate the bash complete anyway.
* Added best_effort flag to command
* Attempts to authorize for bash complete, but if it fails, it tries anyway
Change-Id: I796258f8044f42abc6a51164d920a26f73397962
Partial-Bug: #1283550
Diffstat (limited to 'openstackclient')
| -rw-r--r-- | openstackclient/shell.py | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/openstackclient/shell.py b/openstackclient/shell.py index 49307992..cc4570a1 100644 --- a/openstackclient/shell.py +++ b/openstackclient/shell.py @@ -24,6 +24,7 @@ import traceback from cliff import app from cliff import command +from cliff import complete from cliff import help import openstackclient @@ -64,8 +65,10 @@ class OpenStackShell(app.App): def __init__(self): # Patch command.Command to add a default auth_required = True command.Command.auth_required = True + command.Command.best_effort = False # But not help help.HelpCommand.auth_required = False + complete.CompleteCommand.best_effort = True super(OpenStackShell, self).__init__( description=__doc__.strip(), @@ -465,7 +468,15 @@ class OpenStackShell(app.App): """Set up auth and API versions""" self.log.debug('prepare_to_run_command %s', cmd.__class__.__name__) - if cmd.auth_required: + if not cmd.auth_required: + return + if cmd.best_effort: + try: + self.authenticate_user() + self.restapi.set_auth(self.client_manager.identity.auth_token) + except Exception: + pass + else: self.authenticate_user() self.restapi.set_auth(self.client_manager.identity.auth_token) return |
