Skip to content
Snippets Groups Projects
Commit f759a865 authored by Karel van Klink's avatar Karel van Klink :smiley_cat: Committed by Neda Moeini
Browse files

Have LibreNMS client perform multiple retires when a connection times out

parent 04bcf884
No related branches found
No related tags found
1 merge request!253LibreNMS retries
...@@ -7,6 +7,7 @@ from typing import Any, Literal ...@@ -7,6 +7,7 @@ from typing import Any, Literal
import requests import requests
from requests import HTTPError, Response from requests import HTTPError, Response
from requests.adapters import HTTPAdapter
from gso.settings import load_oss_params from gso.settings import load_oss_params
from gso.utils.helpers import SNMPVersion from gso.utils.helpers import SNMPVersion
...@@ -26,6 +27,7 @@ class LibreNMSClient: ...@@ -26,6 +27,7 @@ class LibreNMSClient:
self.snmp_config = config.SNMP self.snmp_config = config.SNMP
self.session = requests.Session() self.session = requests.Session()
self.session.mount("https://", HTTPAdapter(max_retries=5))
self.session.headers.update({ self.session.headers.update({
"User-Agent": f"geant-service-orchestrator/{metadata.version("geant-service-orchestrator")}", "User-Agent": f"geant-service-orchestrator/{metadata.version("geant-service-orchestrator")}",
"Accept": "application/json", "Accept": "application/json",
...@@ -34,11 +36,11 @@ class LibreNMSClient: ...@@ -34,11 +36,11 @@ class LibreNMSClient:
}) })
def _send_request( def _send_request(
self, method: Literal["GET", "POST", "PUT", "DELETE"], endpoint: str, data: dict[str, Any] | None = None self, method: Literal["GET", "POST", "PUT", "DELETE"], endpoint: str, data: dict[str, Any] | None = None
) -> Response: ) -> Response:
url = self.base_url + endpoint url = self.base_url + endpoint
logger.debug("LibreNMS - Sending request", extra={"method": method, "endpoint": url, "form_data": data}) logger.debug("LibreNMS - Sending request", extra={"method": method, "endpoint": url, "form_data": data})
result = self.session.request(method, url, json=data) result = self.session.request(method, url, json=data, timeout=(0.5, 75))
logger.debug("LibreNMS - Received response", extra=result.__dict__) logger.debug("LibreNMS - Received response", extra=result.__dict__)
return result return result
......
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