Skip to content
Snippets Groups Projects
Commit 3f6dafff95f0 authored by Houzefa Abbasbhay's avatar Houzefa Abbasbhay :slight_smile:
Browse files

Configurable timeout, default is 20 seconds

parent 938b441e8c28
No related branches found
No related tags found
1 merge request!19forward port of 11.0 features
......@@ -2,6 +2,13 @@
NEWS
====
13.0.3.1.0
==========
(forward port of 11.0.2.5.0)
* Configurable timeout for redner calls, default is 20 seconds.
13.0.3.0.2
==========
......
......@@ -19,4 +19,5 @@
redner.server_url = http://dockerhost:7000
redner.api_key = <your API key here>
redner.account = <your account name>
redner.timeout = 20
......@@ -22,4 +23,5 @@
``redner.timeout`` is in seconds; defaults to 20 seconds per redner call.
**Pro tip**: You can use mjml-app_ to prototype your email templates.
......
......@@ -21,7 +21,7 @@
"name": "Redner",
"summary": """
Allows to generate transactional emails and documents in PDF or HTML format""",
"version": "13.0.3.0.2",
"version": "13.0.3.1.0",
"category": "Technical",
"author": "XCG Consulting",
"website": "http://odoo.consulting/",
......
......@@ -89,6 +89,7 @@
config_model.get_param("redner.api_key"),
config_model.get_param("redner.server_url"),
config_model.get_param("redner.account"),
int(config_model.get_param("redner.timeout", default="20")),
)
return self._redner
......
......@@ -15,9 +15,9 @@
class Redner(object):
def __init__(self, api_key, server_url, account):
def __init__(self, api_key, server_url, account, timeout):
"""Initialize the API client
Args:
api_key(str): provide your Redner API key.
server_url(str): Redner server URL.
......@@ -19,7 +19,8 @@
"""Initialize the API client
Args:
api_key(str): provide your Redner API key.
server_url(str): Redner server URL.
timeout(float): Timeout per Redner call, in seconds.
"""
......@@ -24,4 +25,5 @@
"""
self.session = requests.session()
self.api_key = api_key
self.server_url = server_url
self.account = account
......@@ -27,6 +29,7 @@
self.account = account
self.server_url = server_url
self.api_key = api_key
self.timeout = timeout
self.session = requests.sessions.Session()
self.templates = Templates(self)
def call(self, path, http_verb="post", **params):
......@@ -70,7 +73,10 @@
start = time.time()
r = getattr(self.session, http_verb, "post")(
url, json=params, headers={"Rednerd-API-Key": self.api_key}
url,
json=params,
headers={"Rednerd-API-Key": self.api_key},
timeout=self.timeout,
)
complete_time = time.time() - start
......@@ -96,7 +102,7 @@
def ping(self):
"""Try to establish a connection to server"""
conn = self.session.get(self.server_url)
conn = self.session.get(self.server_url, timeout=self.timeout)
if conn.status_code != requests.codes.ok:
raise ValidationError("Cannot Establish a connection to server")
return conn
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment