summaryrefslogtreecommitdiff
path: root/worker_manager
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2018-03-17 16:59:16 +0200
committerLars Wirzenius <liw@liw.fi>2018-03-30 10:11:32 +0300
commit87001d6a0c5d9d8b48e716ec733e5ba6c0c4afd4 (patch)
treecebdf8da53237de0740fd0911f8bca80b8134ba4 /worker_manager
parentb211b8918ba5dcbdfad04a7b84b2c7ba27b4070f (diff)
downloadick2-87001d6a0c5d9d8b48e716ec733e5ba6c0c4afd4.tar.gz
Add: HttpAPI class for using REST-ful HTTP API
Diffstat (limited to 'worker_manager')
-rwxr-xr-xworker_manager34
1 files changed, 17 insertions, 17 deletions
diff --git a/worker_manager b/worker_manager
index 7530469..db4d08f 100755
--- a/worker_manager
+++ b/worker_manager
@@ -26,7 +26,6 @@ import time
import apifw
import cliapp
import Crypto.PublicKey.RSA
-import requests
import urllib3
import ick2
@@ -193,31 +192,32 @@ class ControllerAPI:
class HttpApi:
def __init__(self):
- self._session = requests.Session()
+ self._httpapi = ick2.HttpAPI()
def post(self, url, headers, body):
- r = self._session.post(url, json=body, headers=headers, verify=False)
- if not r.ok:
- logging.warning('Error: POST %s returned %s', url, r.status_code)
- return r.status_code
+ ret = self._request(self._httpapi.post, url, headers, body=body)
+ if ret is None:
+ return 400
+ return 201
def put(self, url, headers, body):
- r = self._session.put(url, data=body, headers=headers, verify=False)
- if not r.ok:
- logging.warning('Error: PUT %s returned %s', url, r.status_code)
- return r.status_code
+ ret = self._request(self._httpapi.put, url, headers, body=body)
+ if ret is None:
+ return 400
+ return 200
def get(self, url, headers):
- r = self._session.get(url, headers=headers, verify=False)
- if not r.ok or not r.text:
- return None
- return r.json()
+ return self._request(self._httpapi.get_dict, url, headers)
def get_blob(self, url, headers):
- r = self._session.get(url, headers=headers, verify=False)
- if not r.ok:
+ return self._request(self._httpapi.get_blob, url, headers)
+
+ def _request(self, func, url, headers, **kwargs):
+ try:
+ return func(url, headers=headers, **kwargs)
+ except ick2.HttpError as e:
+ logging.warning('Error: %s returned %s', url, e)
return None
- return r.content
class TokenGenerator: