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
This commit is contained in:
Terry Howe 2014-03-06 13:56:10 -07:00
parent 808fa65210
commit 211cd31d7a

@ -24,6 +24,7 @@ import traceback
from cliff import app from cliff import app
from cliff import command from cliff import command
from cliff import complete
from cliff import help from cliff import help
import openstackclient import openstackclient
@ -64,8 +65,10 @@ class OpenStackShell(app.App):
def __init__(self): def __init__(self):
# Patch command.Command to add a default auth_required = True # Patch command.Command to add a default auth_required = True
command.Command.auth_required = True command.Command.auth_required = True
command.Command.best_effort = False
# But not help # But not help
help.HelpCommand.auth_required = False help.HelpCommand.auth_required = False
complete.CompleteCommand.best_effort = True
super(OpenStackShell, self).__init__( super(OpenStackShell, self).__init__(
description=__doc__.strip(), description=__doc__.strip(),
@ -465,7 +468,15 @@ class OpenStackShell(app.App):
"""Set up auth and API versions""" """Set up auth and API versions"""
self.log.debug('prepare_to_run_command %s', cmd.__class__.__name__) 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.authenticate_user()
self.restapi.set_auth(self.client_manager.identity.auth_token) self.restapi.set_auth(self.client_manager.identity.auth_token)
return return