diff --git a/brian_dashboard_manager/grafana/folder.py b/brian_dashboard_manager/grafana/folder.py index 181ea8e3171ad2863e7bbe13bf364496c942ae41..fe3700f7fdde128088bd469ebcb9a08a9aaba50d 100644 --- a/brian_dashboard_manager/grafana/folder.py +++ b/brian_dashboard_manager/grafana/folder.py @@ -6,6 +6,20 @@ from brian_dashboard_manager.grafana.utils.request import TokenRequest logger = logging.getLogger(__name__) +def find_folder(token_request, title): + folders = get_folders(token_request) + try: + folder = next( + f for f in folders if f['title'].lower() == title.lower()) + except StopIteration: + folder = None + + if not folder: + logger.info(f'Created folder: {title}') + folder = create_folder(token_request, title) + return folder + + def get_folders(request: TokenRequest): return request.get('api/folders') @@ -14,9 +28,7 @@ def create_folder(request: TokenRequest, title): try: data = {'title': title, 'uid': title.replace(' ', '_')} r = request.post('api/folders', json=data) - except HTTPError as e: - message = e.content.get("message", "") - logger.exception( - f'Error when creating folder {title} ({message})') + except HTTPError: + logger.exception(f'Error when creating folder {title}') return None return r