From 87001d6a0c5d9d8b48e716ec733e5ba6c0c4afd4 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Sat, 17 Mar 2018 16:59:16 +0200 Subject: Add: HttpAPI class for using REST-ful HTTP API --- worker_manager | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) (limited to 'worker_manager') 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: -- cgit v1.2.1