From 0207198e3d72e5770d2d512ef1381a428d69ded9 Mon Sep 17 00:00:00 2001 From: Bjarke Madsen <bjarke.madsen@geant.org> Date: Tue, 23 Mar 2021 16:21:07 +0100 Subject: [PATCH] Implement delete folder API endpoint --- brian_dashboard_manager/grafana/folder.py | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/brian_dashboard_manager/grafana/folder.py b/brian_dashboard_manager/grafana/folder.py index fe3700f..64e6ad4 100644 --- a/brian_dashboard_manager/grafana/folder.py +++ b/brian_dashboard_manager/grafana/folder.py @@ -6,17 +6,30 @@ from brian_dashboard_manager.grafana.utils.request import TokenRequest logger = logging.getLogger(__name__) -def find_folder(token_request, title): - folders = get_folders(token_request) +def delete_folder(request: TokenRequest, title, uid=None): + if uid: + r = request.delete(f'api/folders/{uid}') + return r is not None + else: + folder = find_folder(request, title, False) + if folder is None: + return True + r = request.delete(f'api/folders/{folder.get("uid")}') + logger.info(f'Deleted folder: {title}') + return r is not None + + +def find_folder(request: TokenRequest, title, create=True): + folders = get_folders(request) try: folder = next( f for f in folders if f['title'].lower() == title.lower()) except StopIteration: folder = None - if not folder: + if not folder and create: logger.info(f'Created folder: {title}') - folder = create_folder(token_request, title) + folder = create_folder(request, title) return folder -- GitLab