diff options
| author | Doug Hellmann <doug.hellmann@dreamhost.com> | 2012-05-10 15:20:40 -0400 |
|---|---|---|
| committer | Doug Hellmann <doug.hellmann@dreamhost.com> | 2012-05-10 16:05:23 -0400 |
| commit | bf582a2d56e6eaaaf20f8b399dd6bdd7789e056f (patch) | |
| tree | 834edd8e23ab84eba7aeec334b5e539a99b01d80 /openstackclient/shell.py | |
| parent | 3b2129f0b8e7e71797aec1b6280f3867a7128bcf (diff) | |
| download | python-openstackclient-bf582a2d56e6eaaaf20f8b399dd6bdd7789e056f.tar.gz | |
look at the command the user is going to run before trying to authenticate them
Change-Id: I4edc6a0f1e16be4cd80fe01f62869094b50ef120
Diffstat (limited to 'openstackclient/shell.py')
| -rw-r--r-- | openstackclient/shell.py | 46 |
1 files changed, 29 insertions, 17 deletions
diff --git a/openstackclient/shell.py b/openstackclient/shell.py index 986cdcdb..8ffe81fd 100644 --- a/openstackclient/shell.py +++ b/openstackclient/shell.py @@ -124,24 +124,10 @@ class OpenStackShell(App): return parser - def initialize_app(self): - """Global app init bits: - - * set up API versions - * validate authentication info - * authenticate against Identity if requested + def authenticate_user(self): + """Make sure the user has provided all of the authentication + info we need. """ - - super(OpenStackShell, self).initialize_app() - - # 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, - 'image': self.options.os_image_api_version, - } - self.log.debug('validating authentication options') if self.options.os_token or self.options.os_url: # Token flow auth takes priority @@ -190,6 +176,32 @@ class OpenStackShell(App): compute_api_version=self.options.os_compute_api_version, image_api_version=self.options.os_image_api_version, ) + return + + def initialize_app(self, argv): + """Global app init bits: + + * set up API versions + * validate authentication info + * authenticate against Identity if requested + """ + + 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, + 'image': self.options.os_image_api_version, + } + + # If the user is not asking for help, make sure they + # have given us auth. + cmd_info = self.command_manager.find_command(argv) + cmd_factory, cmd_name, sub_argv = cmd_info + if cmd_name != 'help': + self.authenticate_user() self.log.debug("API: Identity=%s Compute=%s Image=%s" % ( self.api_version['identity'], |
