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:
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
|
||||||
|
Loading…
x
Reference in New Issue
Block a user