Skip to content

Commit 76138f1

Browse files
committed
fix: /_/metrics/raw- passthru
1 parent 4358756 commit 76138f1

1 file changed

Lines changed: 30 additions & 12 deletions

File tree

api/metrics/views.py

Lines changed: 30 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -228,25 +228,43 @@ def delete(self, request, *args, **kwargs):
228228

229229
@require_switch(ENABLE_RAW_METRICS)
230230
def get(self, request, *args, djelme_backend_name, url_path, **kwargs):
231-
connection = self._get_es_connection(djelme_backend_name)
232-
_response = connection.transport.perform_request('GET', f'/{url_path}')
233-
return JsonResponse(_response if isinstance(_response, dict) else _response.body)
231+
_response_body = self._do_es_request(
232+
djelme_backend_name,
233+
method='GET',
234+
path=url_path,
235+
qp=request.GET,
236+
)
237+
return JsonResponse(_response_body)
234238

235239
@require_switch(ENABLE_RAW_METRICS)
236240
def post(self, request, *args, djelme_backend_name, url_path, **kwargs):
237-
connection = self._get_es_connection(djelme_backend_name)
238-
body = json.loads(request.body)
239-
_response = connection.transport.perform_request('POST', f'/{url_path}', body=body)
240-
return JsonResponse(_response if isinstance(_response, dict) else _response.body)
241+
_response_body = self._do_es_request(
242+
djelme_backend_name,
243+
method='POST',
244+
path=url_path,
245+
qp=request.GET,
246+
body=json.loads(request.body),
247+
)
248+
return JsonResponse(_response_body)
241249

242250
@require_switch(ENABLE_RAW_METRICS)
243251
def put(self, request, *args, djelme_backend_name, url_path, **kwargs):
244-
connection = self._get_es_connection(djelme_backend_name)
245-
body = json.loads(request.body)
246-
_response = connection.transport.perform_request('PUT', f'/{url_path}', body=body)
247-
return JsonResponse(_response if isinstance(_response, dict) else _response.body)
252+
_response_body = self._do_es_request(
253+
djelme_backend_name,
254+
method='PUT',
255+
path=url_path,
256+
qp=request.GET,
257+
body=json.loads(request.body),
258+
)
259+
return JsonResponse(_response_body)
260+
261+
def _do_es_request(self, djelme_backend_name, method, path, qp, body=None):
262+
_client = self._get_es_client(djelme_backend_name)
263+
_perform_fn = getattr(_client, 'perform_request', None) or _client.transport.perform_request
264+
_response = _perform_fn(method, f'/{path}', params=qp.dict(), body=body)
265+
return _response if isinstance(_response, dict) else _response.body
248266

249-
def _get_es_connection(self, djelme_backend_name):
267+
def _get_es_client(self, djelme_backend_name):
250268
try:
251269
_backend = djelme_registry.get_backend(djelme_backend_name)
252270
except LookupError:

0 commit comments

Comments
 (0)