diff options
| author | Endre Karlson <endre.karlson@hp.com> | 2014-11-07 11:56:08 +0100 |
|---|---|---|
| committer | Endre Karlson <endre.karlson@hp.com> | 2014-11-13 14:28:06 +0100 |
| commit | 04f627647fb3ed0f4219cdcfcdb0cdccf07b49b7 (patch) | |
| tree | 553775201068e1f730cadbc5b76fd5f7445f4dcc /designateclient/shell.py | |
| parent | 985f4c1eb6bfed23b14a7b70708f14a82622cb77 (diff) | |
| download | python-designateclient-04f627647fb3ed0f4219cdcfcdb0cdccf07b49b7.tar.gz | |
Move session creation up to shell
Change-Id: I65d3f37f60f97240b52b0234da6160121ec292e1
Diffstat (limited to 'designateclient/shell.py')
| -rw-r--r-- | designateclient/shell.py | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/designateclient/shell.py b/designateclient/shell.py index d88d0db..9e25a35 100644 --- a/designateclient/shell.py +++ b/designateclient/shell.py @@ -20,6 +20,8 @@ import traceback from cliff.app import App from cliff.commandmanager import CommandManager +from keystoneclient.auth.identity import generic +from keystoneclient import session as ks_session from designateclient.version import version_info as version @@ -202,6 +204,40 @@ class DesignateShell(App): # --debug forces traceback self.dump_stack_trace = True + def initialize_app(self, argv): + super(DesignateShell, self).initialize_app(argv) + self.session = self.get_session() + + def get_session(self): + session = ks_session.Session() + + auth_args = { + 'auth_url': self.options.os_auth_url, + 'domain_id': self.options.os_domain_id, + 'domain_name': self.options.os_domain_name, + 'project_id': self.options.os_project_id, + 'project_name': self.options.os_project_name, + 'project_domain_name': self.options.os_project_domain_name, + 'project_domain_id': self.options.os_project_domain_id, + 'tenant_id': self.options.os_tenant_id, + 'tenant_name': self.options.os_tenant_name, + } + + if self.options.os_token: + auth_args['token'] = self.options.os_token + session.auth = generic.Token(**auth_args) + else: + password_args = { + 'username': self.options.os_username, + 'user_id': self.options.os_user_id, + 'user_domain_id': self.options.os_user_domain_id, + 'user_domain_name': self.options.os_user_domain_name, + 'password': self.options.os_password + } + auth_args.update(password_args) + session.auth = generic.Password(**auth_args) + return session + def run(self, argv): try: return super(DesignateShell, self).run(argv) |
