diff --git a/rancher.py b/rancher.py index f2f848a..02cd9c4 100755 --- a/rancher.py +++ b/rancher.py @@ -183,7 +183,7 @@ class ClientApiError(Exception): class Client(object): def __init__(self, access_key=None, secret_key=None, url=None, cache=False, cache_time=86400, strict=False, headers=None, token=None, - verify=True, **kw): + verify=True, timeout=None, **kw): if verify == 'False': verify = False self._headers = HEADERS.copy() @@ -206,6 +206,7 @@ def __init__(self, access_key=None, secret_key=None, url=None, cache=False, self.schema = None self._session = requests.Session() self._session.verify = verify + self.timeout = timeout if not self._cache_time: self._cache_time = 60 * 60 * 24 # 24 Hours @@ -278,7 +279,7 @@ def _get_raw(self, url, data=None): def _get_response(self, url, data=None): r = self._session.get(url, auth=self._auth, params=data, - headers=self._headers) + headers=self._headers, timeout=self.timeout) if r.status_code < 200 or r.status_code >= 300: self._error(r.text) @@ -287,7 +288,7 @@ def _get_response(self, url, data=None): @timed_url def _post(self, url, data=None): r = self._session.post(url, auth=self._auth, data=self._marshall(data), - headers=self._headers) + headers=self._headers, timeout=self.timeout) if r.status_code < 200 or r.status_code >= 300: self._error(r.text) @@ -296,7 +297,7 @@ def _post(self, url, data=None): @timed_url def _put(self, url, data=None): r = self._session.put(url, auth=self._auth, data=self._marshall(data), - headers=self._headers) + headers=self._headers, timeout=self.timeout) if r.status_code < 200 or r.status_code >= 300: self._error(r.text) @@ -304,7 +305,8 @@ def _put(self, url, data=None): @timed_url def _delete(self, url): - r = self._session.delete(url, auth=self._auth, headers=self._headers) + r = self._session.delete(url, auth=self._auth, headers=self._headers, + timeout=self.timeout) if r.status_code < 200 or r.status_code >= 300: self._error(r.text)