self._result = {'error': None}
self._usable = True
self._session = None
- self._socket = None
self.get_headers = {'Accept': 'application/octet-stream'}
self.get_headers.update(headers)
self.put_headers = headers
if hasattr(socket, 'TCP_KEEPIDLE'):
s.setsockopt(socket.IPPROTO_TCP, socket.TCP_KEEPIDLE, 75)
s.setsockopt(socket.IPPROTO_TCP, socket.TCP_KEEPINTVL, 75)
- self._socket = s
return s
def get(self, locator, method="GET", timeout=None):
self._headers = {}
response_body = cStringIO.StringIO()
curl.setopt(pycurl.NOSIGNAL, 1)
- curl.setopt(pycurl.OPENSOCKETFUNCTION,
- lambda *args, **kwargs: self._socket_open(*args, **kwargs))
+ curl.setopt(pycurl.OPENSOCKETFUNCTION, self._socket_open)
curl.setopt(pycurl.URL, url.encode('utf-8'))
curl.setopt(pycurl.HTTPHEADER, [
'{}: {}'.format(k,v) for k,v in self.get_headers.iteritems()])
curl.perform()
except Exception as e:
raise arvados.errors.HttpError(0, str(e))
- finally:
- if self._socket:
- self._socket.close()
- self._socket = None
self._result = {
'status_code': curl.getinfo(pycurl.RESPONSE_CODE),
'body': response_body.getvalue(),
body_reader = cStringIO.StringIO(body)
response_body = cStringIO.StringIO()
curl.setopt(pycurl.NOSIGNAL, 1)
- curl.setopt(pycurl.OPENSOCKETFUNCTION,
- lambda *args, **kwargs: self._socket_open(*args, **kwargs))
+ curl.setopt(pycurl.OPENSOCKETFUNCTION, self._socket_open)
curl.setopt(pycurl.URL, url.encode('utf-8'))
# Using UPLOAD tells cURL to wait for a "go ahead" from the
# Keep server (in the form of a HTTP/1.1 "100 Continue"
curl.perform()
except Exception as e:
raise arvados.errors.HttpError(0, str(e))
- finally:
- if self._socket:
- self._socket.close()
- self._socket = None
self._result = {
'status_code': curl.getinfo(pycurl.RESPONSE_CODE),
'body': response_body.getvalue(),