diff options
author | Bin Yang <bin.yang@windriver.com> | 2017-09-06 15:30:42 +0800 |
---|---|---|
committer | Bin Yang <bin.yang@windriver.com> | 2017-09-06 15:33:09 +0800 |
commit | 6f89e2f32ed4bb2a6a6a5447f53dedc12e556bbc (patch) | |
tree | 8000f4d15abf0554a5e5b8d7b69e96e12820800e /newton/newton/requests | |
parent | 21da6a95b1c043c5a17ce1e802295aea26de5a8d (diff) |
Refactor proxy API
refactor logger and auth method
fix identity proxy bug
Change-Id: Ie26c01c2fbf0869dcc77b8c182b775bce90b8d69
Issue-Id: MULTICLOUD-58
Signed-off-by: Bin Yang <bin.yang@windriver.com>
Diffstat (limited to 'newton/newton/requests')
-rw-r--r-- | newton/newton/requests/views/util.py | 40 |
1 files changed, 21 insertions, 19 deletions
diff --git a/newton/newton/requests/views/util.py b/newton/newton/requests/views/util.py index b94a9ed3..c5046387 100644 --- a/newton/newton/requests/views/util.py +++ b/newton/newton/requests/views/util.py @@ -71,6 +71,11 @@ class VimDriverUtils(object): username=vim["userName"], password=vim["password"], project_id=tenantid) + elif '/identity' in vim["url"]: + auth = keystone_v3.Password(auth_url=vim["url"]+"/v3", + username=vim["userName"], + password=vim["password"], + project_id=tenantid) elif tenant_name: if '/v2' in vim["url"]: auth = keystone_v2.Password(auth_url=vim["url"], @@ -84,6 +89,13 @@ class VimDriverUtils(object): project_name=tenant_name, user_domain_name=vim["domain"], project_domain_name=vim["domain"]) + elif '/identity' in vim["url"]: + auth = keystone_v3.Password(auth_url=vim["url"]+"/v3", + username=vim["userName"], + password=vim["password"], + project_name=tenant_name, + user_domain_name=vim["domain"], + project_domain_name=vim["domain"]) else: #something wrong @@ -124,40 +136,30 @@ class VimDriverUtils(object): @staticmethod - def update_token_cache(vim, session, old_token, auth_state, metadata=None): + def update_token_cache(vim, session, token, auth_state, metadata=None): ''' cache the auth_state as well as metadata_catalog :param vim: :param session: - :param old_token: + :param token: :param auth_state: :param matadata: :return: ''' - metadata_key = "meta_%s" % old_token + if metadata == None: #do not update token any more + return token - if not metadata: - metadata = cache.get(metadata_key) - if not metadata: - #something wrong since metadata is neither inputted, nor cached previously. but ignore temporarily - pass - - tmp_auth_token = session.get_token() - #check if need to update token:auth_state mapping - if tmp_auth_token != old_token: - cache.delete(old_token) - cache.delete(metadata_key) - metadata_key = "meta_%s" % tmp_auth_token + metadata_key = "meta_%s" % token - elif not cache.get(old_token): + if not cache.get(token): # store the auth_state, memcached # set expiring in 1 hour - cache.set(tmp_auth_token, auth_state, 3600) + cache.set(token, auth_state, 3600) cache.set(metadata_key, metadata, 3600) - #return new token - return tmp_auth_token + return token + @staticmethod def replace_a_key(dict_obj, keypair, reverse=False): |