diff --git a/README.md b/README.md index b0e9cac..926497e 100644 --- a/README.md +++ b/README.md @@ -44,14 +44,12 @@ swis.query("SELECT NodeID from Orion.Nodes") ``` ## Setting Timeout +#be default, timeout is set to 10 seconds ```python import orionsdk -import requests -session = requests.Session() -session.timeout = 30 # Set your timeout in seconds -swis = orionsdk.SwisClient("SolarWinds-Orion", "username", "password", verify="server.pem", session=session) +swis = orionsdk.SwisClient("SolarWinds-Orion", "username", "password", timeout=5, verify="server.pem", session=session) swis.query("SELECT NodeID from Orion.Nodes") ``` diff --git a/orionsdk/swisclient.py b/orionsdk/swisclient.py index 4f72300..049f64d 100644 --- a/orionsdk/swisclient.py +++ b/orionsdk/swisclient.py @@ -11,13 +11,14 @@ def _json_serial(obj): class SwisClient: - def __init__(self, hostname, username, password, port=17774, verify=False, session=None): + def __init__(self, hostname, username, password, port=17774, timeout=10, verify=False, session=None): self.url = "https://{}:{}/SolarWinds/InformationService/v3/Json/".\ format(hostname, port) self._session = session or requests.Session() self._session.auth = (username, password) self._session.headers.update({'Content-Type': 'application/json'}) self._session.verify = verify + self._timeout = timeout def query(self, query, **params): return self._req( @@ -54,6 +55,7 @@ def bulkdelete(self, uris): def _req(self, method, frag, data=None): resp = self._session.request(method, self.url + frag, + timeout = self._timeout data=json.dumps(data, default=_json_serial)) # try to extract reason from response when request returns error