Skip to content

Commit d201f39

Browse files
committed
retry connections more persistently
Signed-off-by: Jakub Kicinski <[email protected]>
1 parent 5bc6316 commit d201f39

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

pw/patchwork.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44

55
import json
66
import requests
7+
from requests.adapters import HTTPAdapter
8+
from requests.packages.urllib3.util.retry import Retry
79

810
import core
911

@@ -22,6 +24,12 @@ class PatchworkPostException(Exception):
2224

2325
class Patchwork(object):
2426
def __init__(self, config):
27+
self._session = requests.Session()
28+
retry = Retry(connect=10, backoff_factor=1)
29+
adapter = HTTPAdapter(max_retries=retry)
30+
self._session.mount('http://', adapter)
31+
self._session.mount('https://', adapter)
32+
2533
self.server = config.get('patchwork', 'server')
2634
ssl = config.getboolean('patchwork', 'use_ssl', fallback=True)
2735
self._proto = "https://" if ssl else "http://"
@@ -41,7 +49,7 @@ def __init__(self, config):
4149
def _request(self, url):
4250
try:
4351
core.log_open_sec(f"Patchwork {self.server} request: {url}")
44-
ret = requests.get(url)
52+
ret = self._session.get(url)
4553
core.log("Response", ret)
4654
try:
4755
core.log("Response data", ret.json())
@@ -96,7 +104,7 @@ def _post(self, req, headers, data, api='1.1'):
96104
url = f'{self._proto}{self.server}/api/{api}/{req}'
97105
try:
98106
core.log_open_sec(f"Patchwork {self.server} post: {url}")
99-
ret = requests.post(url, headers=headers, data=data)
107+
ret = self._session.post(url, headers=headers, data=data)
100108
core.log("Headers", headers)
101109
core.log("Data", data)
102110
core.log("Response", ret)

0 commit comments

Comments
 (0)