summaryrefslogtreecommitdiff
path: root/designateclient/shell.py
diff options
context:
space:
mode:
authorEndre Karlson <endre.karlson@hp.com>2014-11-07 11:56:08 +0100
committerEndre Karlson <endre.karlson@hp.com>2014-11-13 14:28:06 +0100
commit04f627647fb3ed0f4219cdcfcdb0cdccf07b49b7 (patch)
tree553775201068e1f730cadbc5b76fd5f7445f4dcc /designateclient/shell.py
parent985f4c1eb6bfed23b14a7b70708f14a82622cb77 (diff)
downloadpython-designateclient-04f627647fb3ed0f4219cdcfcdb0cdccf07b49b7.tar.gz
Move session creation up to shell
Change-Id: I65d3f37f60f97240b52b0234da6160121ec292e1
Diffstat (limited to 'designateclient/shell.py')
-rw-r--r--designateclient/shell.py36
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)