diff --git a/brian_dashboard_manager/grafana/dashboard.py b/brian_dashboard_manager/grafana/dashboard.py index 0c1fc6296a0727065fa16d92fdcf5c28a8ba32f5..0190ec0535c2baba08b79e04927649b478eb1b71 100644 --- a/brian_dashboard_manager/grafana/dashboard.py +++ b/brian_dashboard_manager/grafana/dashboard.py @@ -12,6 +12,7 @@ logger = logging.getLogger(__name__) NUM_RETRIES = 3 + def get_dashboard_definitions(dir=None): """ Returns dictionary for each dashboard JSON definition in supplied directory @@ -240,9 +241,11 @@ def create_dashboard(request: TokenRequest, dashboard: dict, folder_id=None): except HTTPError as e: message = '' if e.response is not None and e.response.status_code < 500: + # log the error message from Grafana message = e.response.json() logger.exception(f'Error when provisioning dashboard {title}: {message}') + + # only retry on server side errors if e.response is not None and e.response.status_code < 500: - # only retry on server side errors break return None diff --git a/test/test_grafana_dashboard.py b/test/test_grafana_dashboard.py index effec7094269999bcc2aaaf18af3b76e43339a2f..e3da83f02c59e21ca0d49348e396d11e8b1aec7b 100644 --- a/test/test_grafana_dashboard.py +++ b/test/test_grafana_dashboard.py @@ -195,7 +195,7 @@ def test_create_dashboard_no_uid_error(data_config): assert 'id' not in body['dashboard'] # have already tested a successful response, respond with error here. - return 400, {}, '' + return 400, {}, '{}' responses.add_callback( method=responses.POST,