From a45c93ed472f39ac0ea852aadf86f69fdb1ab52b Mon Sep 17 00:00:00 2001 From: Ryan Petrello Date: Wed, 14 Aug 2019 10:40:21 -0400 Subject: [PATCH] fix a bug in the API metrics endpoint The metrics JSON renderer shouldn't try to parse data that isn't a string (generally, this represents things like HTTP 403) --- awx/api/renderers.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/awx/api/renderers.py b/awx/api/renderers.py index 06a6c9ce1d..bd4136a76a 100644 --- a/awx/api/renderers.py +++ b/awx/api/renderers.py @@ -109,6 +109,11 @@ class AnsiDownloadRenderer(PlainTextRenderer): class PrometheusJSONRenderer(renderers.JSONRenderer): def render(self, data, accepted_media_type=None, renderer_context=None): + if isinstance(data, dict): + # HTTP errors are {'detail': ErrorDetail(string='...', code=...)} + return super(PrometheusJSONRenderer, self).render( + data, accepted_media_type, renderer_context + ) parsed_metrics = text_string_to_metric_families(data) data = {} for family in parsed_metrics: