Skip to content

Commit f97920c

Browse files
committed
refactoring refresh code
1 parent fc8890b commit f97920c

File tree

1 file changed

+23
-24
lines changed

1 file changed

+23
-24
lines changed

prometrix/connect/aws_connect.py

Lines changed: 23 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,27 @@ def _refresh_credentials(self) -> None:
116116
except Exception:
117117
logging.exception("Failed to refresh assume role")
118118

119+
def _request_with_refresh(self, *, method, url, data=None, params=None, headers=None, verify=False):
120+
resp = self.signed_request(
121+
method=method,
122+
url=url,
123+
data=data,
124+
params=params,
125+
verify=verify,
126+
headers=headers,
127+
)
128+
if resp is not None and resp.status_code == 403:
129+
self._refresh_credentials()
130+
resp = self.signed_request(
131+
method=method,
132+
url=url,
133+
data=data,
134+
params=params,
135+
verify=verify,
136+
headers=headers,
137+
)
138+
return resp
139+
119140
def _custom_query(self, query: str, params: dict = None):
120141
"""
121142
Send a custom query to a Prometheus Host.
@@ -136,24 +157,14 @@ def _custom_query(self, query: str, params: dict = None):
136157
data = None
137158
query = str(query)
138159
# using the query API to get raw data
139-
response = self.signed_request(
160+
response = self._request_with_refresh(
140161
method="POST",
141162
url="{0}/api/v1/query".format(self.url),
142163
data={**{"query": query}, **params},
143164
params={},
144165
verify=self.ssl_verification,
145166
headers=self.headers,
146167
)
147-
if response is not None and response.status_code == 403:
148-
self._refresh_credentials()
149-
response = self.signed_request(
150-
method="POST",
151-
url="{0}/api/v1/query".format(self.url),
152-
data={**{"query": query}, **params},
153-
params={},
154-
verify=self.ssl_verification,
155-
headers=self.headers,
156-
)
157168
return response
158169

159170
def safe_custom_query_range(
@@ -185,7 +196,7 @@ def safe_custom_query_range(
185196
params = params or {}
186197

187198
query = str(query)
188-
response = self.signed_request(
199+
response = self._request_with_refresh(
189200
method="POST",
190201
url="{0}/api/v1/query_range".format(self.url),
191202
data={
@@ -195,18 +206,6 @@ def safe_custom_query_range(
195206
params={},
196207
headers=self.headers,
197208
)
198-
if response is not None and response.status_code == 403:
199-
self._refresh_credentials()
200-
response = self.signed_request(
201-
method="POST",
202-
url="{0}/api/v1/query_range".format(self.url),
203-
data={
204-
**{"query": query, "start": start, "end": end, "step": step},
205-
**params,
206-
},
207-
params={},
208-
headers=self.headers,
209-
)
210209
if response.status_code == 200:
211210
return response.json()["data"]
212211
else:

0 commit comments

Comments
 (0)