Revision b44a5a37 kamaki/clients/astakos/__init__.py
b/kamaki/clients/astakos/__init__.py | ||
---|---|---|
41 | 41 |
def __init__(self, base_url, token=None): |
42 | 42 |
super(AstakosClient, self).__init__(base_url, token) |
43 | 43 |
self._cache = {} |
44 |
self._uuids = {} |
|
44 | 45 |
self.log = getLogger('__name__') |
45 | 46 |
|
46 | 47 |
def authenticate(self, token=None): |
... | ... | |
54 | 55 |
""" |
55 | 56 |
self.token = token or self.token |
56 | 57 |
body = dict(auth=dict(token=dict(id=self.token))) |
57 |
self._cache[self.token] = self.post('/tokens', json=body).json |
|
58 |
return self._cache[self.token] |
|
58 |
r = self.post('/tokens', json=body).json |
|
59 |
uuid = r['access']['user']['id'] |
|
60 |
self._uuids[self.token] = uuid |
|
61 |
self._cache[uuid] = r |
|
62 |
return self._cache[uuid] |
|
63 |
|
|
64 |
def get_token(self, uuid): |
|
65 |
return self._cache[uuid]['access']['token']['id'] |
|
59 | 66 |
|
60 | 67 |
def get_services(self, token=None): |
61 | 68 |
""" |
... | ... | |
64 | 71 |
token_bu = self.token or token |
65 | 72 |
token = token or self.token |
66 | 73 |
try: |
67 |
r = self._cache[token]
|
|
74 |
r = self._cache[self._uuids[token]]
|
|
68 | 75 |
except KeyError: |
69 | 76 |
r = self.authenticate(token) |
70 | 77 |
finally: |
... | ... | |
122 | 129 |
r = [] |
123 | 130 |
for k, v in self._cache.items(): |
124 | 131 |
r.append(dict(v['access']['user'])) |
125 |
r[-1].update(dict(auth_token=k))
|
|
132 |
r[-1].update(dict(auth_token=self.get_token(k)))
|
|
126 | 133 |
return r |
127 | 134 |
|
128 | 135 |
def user_info(self, token=None): |
... | ... | |
130 | 137 |
token_bu = self.token or token |
131 | 138 |
token = token or self.token |
132 | 139 |
try: |
133 |
r = self._cache[token]
|
|
140 |
r = self._cache[self._uuids[token]]
|
|
134 | 141 |
except KeyError: |
135 | 142 |
r = self.authenticate(token) |
136 | 143 |
finally: |
Also available in: Unified diff