From 24f46f5934ad6c9f8c528a42745faa6a43dc35c5 Mon Sep 17 00:00:00 2001 From: SeaBlooms Date: Wed, 31 Jul 2024 17:44:35 -0600 Subject: [PATCH 1/6] Update client.py --- jupiterone/client.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/jupiterone/client.py b/jupiterone/client.py index 4b3bdb5..081298c 100644 --- a/jupiterone/client.py +++ b/jupiterone/client.py @@ -7,6 +7,7 @@ from typing import Dict, List import requests +from requests.adapters import HTTPAdapter, Retry from retrying import retry from jupiterone.errors import ( @@ -94,7 +95,11 @@ def _execute_query(self, query: str, variables: Dict = None) -> Dict: # Always ask for variableResultSize data.update(flags={"variableResultSize": True}) - response = requests.post( + s = requests.Session() + retries = Retry(total=5, backoff_factor=1, status_forcelist=[429, 502, 503, 504]) + s.mount('https://', HTTPAdapter(max_retries=retries)) + + response = s.post( self.query_endpoint, headers=self.headers, json=data, timeout=60 ) From 73e47a2ecbb3f15bdd28f27e8fff7ad96741062f Mon Sep 17 00:00:00 2001 From: SeaBlooms Date: Thu, 1 Aug 2024 08:02:38 -0600 Subject: [PATCH 2/6] doc comment --- jupiterone/client.py | 1 + 1 file changed, 1 insertion(+) diff --git a/jupiterone/client.py b/jupiterone/client.py index 081298c..912a102 100644 --- a/jupiterone/client.py +++ b/jupiterone/client.py @@ -95,6 +95,7 @@ def _execute_query(self, query: str, variables: Dict = None) -> Dict: # Always ask for variableResultSize data.update(flags={"variableResultSize": True}) + # initiate requests session and implement retry logic of 5 request retries with 1 second between s = requests.Session() retries = Retry(total=5, backoff_factor=1, status_forcelist=[429, 502, 503, 504]) s.mount('https://', HTTPAdapter(max_retries=retries)) From 3fb4eecf0d4a476d995e7ef8d00a870a4c5b1e39 Mon Sep 17 00:00:00 2001 From: SeaBlooms Date: Thu, 1 Aug 2024 09:39:50 -0600 Subject: [PATCH 3/6] Update client.py --- jupiterone/client.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/jupiterone/client.py b/jupiterone/client.py index 912a102..a12ba2e 100644 --- a/jupiterone/client.py +++ b/jupiterone/client.py @@ -97,7 +97,7 @@ def _execute_query(self, query: str, variables: Dict = None) -> Dict: # initiate requests session and implement retry logic of 5 request retries with 1 second between s = requests.Session() - retries = Retry(total=5, backoff_factor=1, status_forcelist=[429, 502, 503, 504]) + retries = Retry(total=10, backoff_factor=1.1, status_forcelist=[429, 502, 503, 504]) s.mount('https://', HTTPAdapter(max_retries=retries)) response = s.post( @@ -117,6 +117,10 @@ def _execute_query(self, query: str, variables: Dict = None) -> Dict: raise JupiterOneApiRetryError( "JupiterOne API rate limit exceeded" ) + + print(response.status_code) + print(content) + raise JupiterOneApiError(content.get("errors")) return response.json() From 424ec15beda931e4fcd4b7075a35b28fa0f84e1d Mon Sep 17 00:00:00 2001 From: SeaBlooms Date: Tue, 13 Aug 2024 08:14:23 -0600 Subject: [PATCH 4/6] Update client.py --- jupiterone/client.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jupiterone/client.py b/jupiterone/client.py index a12ba2e..6669150 100644 --- a/jupiterone/client.py +++ b/jupiterone/client.py @@ -97,7 +97,7 @@ def _execute_query(self, query: str, variables: Dict = None) -> Dict: # initiate requests session and implement retry logic of 5 request retries with 1 second between s = requests.Session() - retries = Retry(total=10, backoff_factor=1.1, status_forcelist=[429, 502, 503, 504]) + retries = Retry(total=5, backoff_factor=1, status_forcelist=[429, 502, 503, 504]) s.mount('https://', HTTPAdapter(max_retries=retries)) response = s.post( From 405ba820f56d1b73973f9618dd446342d296b286 Mon Sep 17 00:00:00 2001 From: SeaBlooms Date: Tue, 13 Aug 2024 08:15:52 -0600 Subject: [PATCH 5/6] Update client.py --- jupiterone/client.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/jupiterone/client.py b/jupiterone/client.py index 6669150..8e21f79 100644 --- a/jupiterone/client.py +++ b/jupiterone/client.py @@ -118,9 +118,6 @@ def _execute_query(self, query: str, variables: Dict = None) -> Dict: "JupiterOne API rate limit exceeded" ) - print(response.status_code) - print(content) - raise JupiterOneApiError(content.get("errors")) return response.json() From 53aebcecf60181e7d353447831b85e95699a253b Mon Sep 17 00:00:00 2001 From: SeaBlooms Date: Tue, 13 Aug 2024 08:16:31 -0600 Subject: [PATCH 6/6] Update client.py --- jupiterone/client.py | 1 - 1 file changed, 1 deletion(-) diff --git a/jupiterone/client.py b/jupiterone/client.py index 8e21f79..912a102 100644 --- a/jupiterone/client.py +++ b/jupiterone/client.py @@ -117,7 +117,6 @@ def _execute_query(self, query: str, variables: Dict = None) -> Dict: raise JupiterOneApiRetryError( "JupiterOne API rate limit exceeded" ) - raise JupiterOneApiError(content.get("errors")) return response.json()