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:
|