From f83c5fca5230e0b6f505ec3852991f4dc16e1dc8 Mon Sep 17 00:00:00 2001 From: Vadim Stepanov Date: Tue, 28 Mar 2023 16:57:37 +0100 Subject: [PATCH] PD migrator: retry on network errors (#1650) --- tools/pagerduty-migrator/migrator/oncall_api_client.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/tools/pagerduty-migrator/migrator/oncall_api_client.py b/tools/pagerduty-migrator/migrator/oncall_api_client.py index baafa455..59056793 100644 --- a/tools/pagerduty-migrator/migrator/oncall_api_client.py +++ b/tools/pagerduty-migrator/migrator/oncall_api_client.py @@ -4,6 +4,7 @@ from urllib.parse import urljoin import requests from requests import HTTPError +from requests.adapters import HTTPAdapter, Retry from migrator.config import ONCALL_API_TOKEN, ONCALL_API_URL @@ -11,7 +12,13 @@ from migrator.config import ONCALL_API_TOKEN, ONCALL_API_URL def api_call(method: str, path: str, **kwargs) -> requests.Response: url = urljoin(ONCALL_API_URL, path) - response = requests.request( + # Retry on network errors + session = requests.Session() + retries = Retry(total=5, backoff_factor=0.1) + session.mount("http://", HTTPAdapter(max_retries=retries)) + session.mount("https://", HTTPAdapter(max_retries=retries)) + + response = session.request( method, url, headers={"Authorization": ONCALL_API_TOKEN}, **kwargs )