adding nova to session cache

* adding nova specific pieces to sahara.service.sessions
* updating nova client to use session and auth
* adding tests for keystone and nova sessions

Change-Id: I1ddb967c1925ff8d6ca9e35b4da5b6eaa9e5e0de
Partial-Implements: blueprint keystone-sessions
This commit is contained in:
Michael McCune
2015-07-22 15:10:16 -04:00
parent f240d55ac5
commit 5ef1302f1b
3 changed files with 59 additions and 16 deletions

View File

@@ -29,6 +29,7 @@ _SESSION_CACHE = None
SESSION_TYPE_GENERIC = 'generic'
SESSION_TYPE_KEYSTONE = 'keystone'
SESSION_TYPE_NOVA = 'nova'
def cache():
@@ -56,6 +57,7 @@ class SessionCache(object):
self._session_funcs = {
SESSION_TYPE_GENERIC: self.get_generic_session,
SESSION_TYPE_KEYSTONE: self.get_keystone_session,
SESSION_TYPE_NOVA: self.get_nova_session,
}
def _set_session(self, session_type, session):
@@ -104,3 +106,14 @@ class SessionCache(object):
session = self.get_generic_session()
self._set_session(SESSION_TYPE_KEYSTONE, session)
return session
def get_nova_session(self):
session = self._sessions.get(SESSION_TYPE_NOVA)
if not session:
if CONF.nova.ca_file:
session = keystone.Session(cert=CONF.nova.ca_file,
verify=CONF.nova.api_insecure)
else:
session = self.get_generic_session()
self._sessions[SESSION_TYPE_NOVA] = session
return session