Skip to content
Snippets Groups Projects
Commit 2bba2f83 authored by Bjarke Madsen's avatar Bjarke Madsen
Browse files

add retries when creating dashboards on error 500

parent 86f4de7f
Branches
Tags 0.26
No related merge requests found
......@@ -10,6 +10,7 @@ from brian_dashboard_manager.grafana.utils.request import TokenRequest
logger = logging.getLogger(__name__)
NUM_RETRIES = 3
def get_dashboard_definitions(dir=None):
"""
......@@ -231,9 +232,17 @@ def create_dashboard(request: TokenRequest, dashboard: dict, folder_id=None):
if folder_id:
payload['folderId'] = folder_id
try:
r = request.post('api/dashboards/db', json=payload)
return r.json()
except HTTPError:
logger.exception(f'Error when provisioning dashboard {title}')
# retry up to NUM_RETRIES times
for _ in range(NUM_RETRIES):
try:
r = request.post('api/dashboards/db', json=payload)
return r.json()
except HTTPError as e:
message = ''
if e.response is not None and e.response.status_code == 412:
message = e.response.json()
logger.exception(f'Error when provisioning dashboard {title}: {message}')
if e.response is not None and e.response.status_code < 500:
# only retry on server side errors
break
return None
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment