Project

General

Profile

0001-misc-switch-http-support-to-requests-library-19437.patch

Frédéric Péters, 29 November 2017 11:37 PM

Download (5.37 KB)

View differences:

Subject: [PATCH 1/2] misc: switch http support to requests library (#19437)

 debian/control      |  1 +
 tests/utilities.py  |  3 ---
 wcs/qommon/misc.py  | 44 ++++++++++++--------------------------------
 wcs/qommon/saml2.py |  2 --
 wcs/wf/wscall.py    |  4 ++--
 5 files changed, 15 insertions(+), 39 deletions(-)
debian/control
graphviz,
python-feedparser,
python-imaging,
python-requests,
python-vobject,
uwsgi,
uwsgi-plugin-python
tests/utilities.py
self.headers = headers or {}
self.length = len(data or '')
def getheader(self, header):
return self.headers.get(header, None)
if status is None:
raise ConnectionError('error')
return FakeResponse(status, data, headers), status, data, None
wcs/qommon/misc.py
import re
import os
import time
import httplib
import urllib
import socket
import ssl
import base64
import json
import subprocess
......
import unicodedata
import hashlib
import requests
try:
from PIL import Image
except ImportError:
......
else:
hostname, query = urllib.splithost(url[6:])
auth = None
if '@' in hostname:
authenticator, hostname = hostname.split('@')
if ':' in authenticator:
......
else:
username = authenticator
password = ''
headers['Authorization'] = 'Basic %s' % base64.b64encode('%s:%s' % (username, password))
connection_kwargs = {'host': hostname}
if timeout:
connection_kwargs['timeout'] = timeout
if cert_file:
connection_kwargs['cert_file'] = cert_file
if url.startswith('http://'):
conn = httplib.HTTPConnection(**connection_kwargs)
else: # https
conn = httplib.HTTPSConnection(**connection_kwargs)
query = query.replace('&', '&')
auth = (username, password)
try:
conn.request(method, query, body, headers)
response = conn.getresponse()
except socket.gaierror, (err, msg):
conn.close()
raise ConnectionError('error while connecting to %s (%s)' % (hostname, msg))
except socket.timeout, err:
conn.close()
response = requests.request(method, url, headers=headers, data=body,
timeout=timeout, cert=cert_file)
except requests.Timeout:
raise ConnectionError('connection timed out while fetching the page')
except socket.error, err:
conn.close()
raise ConnectionError('error while fetching the page (%s)' % err)
except ssl.CertificateError, err:
conn.close()
raise ConnectionError('certificate error when connecting (%s)' % err)
except requests.RequestException as err:
raise ConnectionError('error in http request to to %s (%s)' % (hostname, err))
else:
data = response.read()
status = response.status
auth_header = response.getheader('WWW-Authenticate')
conn.close()
data = response.content
status = response.status_code
auth_header = response.headers.get('WWW-Authenticate')
return response, status, data, auth_header
wcs/qommon/saml2.py
# along with this program; if not, see <http://www.gnu.org/licenses/>.
import os
import httplib
import urllib
import urlparse
import time
import sys
wcs/wf/wscall.py
return
app_error_code = 0
app_error_code_header = response.getheader('x-error-code')
app_error_code_header = response.headers.get('x-error-code')
if app_error_code_header:
# result is good only if header value is '0'
try:
......
elif d.get('display_id'):
formdata.id_display = d.get('display_id')
else: # store result as attachment
content_type = response.getheader('content-type') or ''
content_type = response.headers.get('content-type') or ''
if content_type:
content_type = content_type.split(';')[0].strip().lower()
workflow_data['%s_content_type' % self.varname] = content_type