Added `connection-timeout` (int), `connection-timeout` (int) and `no-timeout` (boolean) task parameters to control the newly introduced default timeouts (5s connect, 10s read)

This commit is contained in:
Mauro Mugnaini 2023-03-14 13:20:39 +01:00
parent 9ad76dd918
commit 114b8e07cf
1 changed files with 18 additions and 9 deletions

View File

@ -27,6 +27,9 @@ class Plugin(PyExecPlugin):
self.params = data.get("params") self.params = data.get("params")
self.expect = data.get("expect") self.expect = data.get("expect")
self.fail = data.get("fail") self.fail = data.get("fail")
self.conntimeout = data.get("connection-timeout") or 5
self.readtimeout = data.get("read-timeout") or 10
self.notimeout = (data.get("no-timeout") in (True, "true", "True", "TRUE", 1, "1", "y", "Y", "yes", "YES")) or False
def doRequest(self): def doRequest(self):
#logging.getLogger("pyexec").debug("%s - %s - %s - %s",self.method, self.url, self.contenttype, self.accept) #logging.getLogger("pyexec").debug("%s - %s - %s - %s",self.method, self.url, self.contenttype, self.accept)
@ -38,8 +41,14 @@ class Plugin(PyExecPlugin):
self.request = requests.Request(self.method, self.url, headers=self.headers, data = self.body, params = self.params) self.request = requests.Request(self.method, self.url, headers=self.headers, data = self.body, params = self.params)
self.request = self.request.prepare() self.request = self.request.prepare()
logging.getLogger("pyexec").debug("%s url=%s body=%s",self.method, self.request.url,self.body) if self.notimeout:
self.response = requests.Session().send(self.request) timeout = None
else:
timeout= (self.conntimeout, self.readtimeout)
print("timeout: ", timeout)
logging.getLogger("pyexec").debug("%s url=%s body=%s conntimeout=%d readtimeout=%d",self.method, self.request.url,self.body,self.conntimeout,self.readtimeout)
self.response = requests.Session().send(self.request, timeout=timeout)
return self.response return self.response
def computeStatus(self): def computeStatus(self):