[FIX] mail_tracking_mailgun: Avoid infinite hangout registering hooks

We should put a timeout for isolated environments where there are no
external connection.

https://docs.python-requests.org/en/latest/user/quickstart/#timeouts
pull/473/head
Pedro M. Baeza 2022-04-03 13:57:54 +02:00
parent 897bd6e344
commit 4768925727
2 changed files with 4 additions and 1 deletions

View File

@ -6,7 +6,7 @@
{ {
"name": "Mail tracking for Mailgun", "name": "Mail tracking for Mailgun",
"summary": "Mail tracking and Mailgun webhooks integration", "summary": "Mail tracking and Mailgun webhooks integration",
"version": "13.0.2.0.0", "version": "13.0.2.0.1",
"category": "Social Network", "category": "Social Network",
"website": "https://github.com/OCA/social", "website": "https://github.com/OCA/social",
"author": "Tecnativa, Odoo Community Association (OCA)", "author": "Tecnativa, Odoo Community Association (OCA)",

View File

@ -82,6 +82,7 @@ class ResConfigSettings(models.TransientModel):
webhooks = requests.get( webhooks = requests.get(
urljoin(params.api_url, "/v3/domains/%s/webhooks" % params.domain), urljoin(params.api_url, "/v3/domains/%s/webhooks" % params.domain),
auth=("api", params.api_key), auth=("api", params.api_key),
timeout=10,
) )
webhooks.raise_for_status() webhooks.raise_for_status()
for event, data in webhooks.json()["webhooks"].items(): for event, data in webhooks.json()["webhooks"].items():
@ -100,6 +101,7 @@ class ResConfigSettings(models.TransientModel):
"/v3/domains/%s/webhooks/%s" % (params.domain, event), "/v3/domains/%s/webhooks/%s" % (params.domain, event),
), ),
auth=("api", params.api_key), auth=("api", params.api_key),
timeout=10,
) )
response.raise_for_status() response.raise_for_status()
@ -116,6 +118,7 @@ class ResConfigSettings(models.TransientModel):
urljoin(params.api_url, "/v3/domains/%s/webhooks" % params.domain), urljoin(params.api_url, "/v3/domains/%s/webhooks" % params.domain),
auth=("api", params.api_key), auth=("api", params.api_key),
data={"id": event, "url": [odoo_webhook]}, data={"id": event, "url": [odoo_webhook]},
timeout=10,
) )
# Assert correct registration # Assert correct registration
response.raise_for_status() response.raise_for_status()