Revision d1304043 kamaki/clients/quotaholder/__init__.py
b/kamaki/clients/quotaholder/__init__.py | ||
---|---|---|
31 | 31 |
# interpreted as representing official policies, either expressed |
32 | 32 |
# or implied, of GRNET S.A. |
33 | 33 |
|
34 |
from kamaki.clients.quotaholder.api import QuotaholderAPI |
|
35 |
from kamaki.clients.commissioning.client import CommissioningClient |
|
34 |
from kamaki.clients.commissioning import Callpoint, CallError |
|
35 |
from kamaki.clients.commissioning.utils.debug import debug |
|
36 |
from kamaki.clients import Client |
|
36 | 37 |
|
38 |
from json import loads as json_loads, dumps as json_dumps |
|
37 | 39 |
|
38 |
class QuotaholderClient(CommissioningClient): |
|
39 | 40 |
|
40 |
api_spec = QuotaholderAPI() |
|
41 |
appname = 'quotaholder' |
|
41 |
class CommissioningClient(Callpoint): |
|
42 | 42 |
|
43 |
def __init__(self, base_url=None, token=None): |
|
44 |
super(self.__class__, self).__init__(base_url, token) |
|
43 |
def __init__(self, base_url, token): |
|
44 |
super(CommissioningClient, self).__init__() |
|
45 |
self._kc = Client(base_url, token) |
|
46 |
|
|
47 |
def do_make_call(self, api_call, data): |
|
48 |
|
|
49 |
_kc = self._kc |
|
50 |
|
|
51 |
gettable = ['list', 'get', 'read'] |
|
52 |
method = (_kc.get if any(api_call.startswith(x) for x in gettable) |
|
53 |
else _kc.post) |
|
54 |
|
|
55 |
path = api_call |
|
56 |
json_data = json_dumps(data) |
|
57 |
debug("%s %s\n%s\n<<<\n", method.func_name, path, json_data) |
|
58 |
|
|
59 |
resp = method(path, data=json_data, success=(200, 450, 500)) |
|
60 |
debug(">>>\nStatus: %s", resp.status_code) |
|
61 |
|
|
62 |
body = resp.text |
|
63 |
debug("\n%s\n<<<\n", body[:128] if body else None) |
|
64 |
|
|
65 |
status = int(resp.status_code) |
|
66 |
if status == 200: |
|
67 |
return json_loads(body) |
|
68 |
else: |
|
69 |
try: |
|
70 |
error = json_loads(body) |
|
71 |
except ValueError: |
|
72 |
exc = CallError(body, call_error='ValueError') |
|
73 |
else: |
|
74 |
exc = CallError.from_dict(error) |
|
75 |
raise exc |
Also available in: Unified diff