From 7cb2723731689436264a86516c3410ec1b6edb6a Mon Sep 17 00:00:00 2001 From: Noah Krause Date: Tue, 9 Aug 2022 16:50:22 -0400 Subject: [PATCH] feat: allow updating the folder UID Signed-off-by: Noah Krause --- CHANGELOG.md | 3 +++ grafana_client/elements/folder.py | 11 ++++++++--- test/elements/test_folder.py | 27 +++++++++++++++++++++++++++ 3 files changed, 38 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 96c9733..981f6a8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,9 @@ ## unreleased +* Update the `update_folder` method of the folder API to allow changing + the UID of the folder. Thanks, @iNoahNothing. + ## 3.0.0 (2022-07-02) diff --git a/grafana_client/elements/folder.py b/grafana_client/elements/folder.py index eed0a1a..f2514d5 100644 --- a/grafana_client/elements/folder.py +++ b/grafana_client/elements/folder.py @@ -37,17 +37,22 @@ def create_folder(self, title, uid=None): json_data["uid"] = uid return self.client.POST("/folders", json=json_data) - def update_folder(self, uid, title, version=None, overwrite=False): + def update_folder(self, uid, title=None, version=None, overwrite=False, new_uid=None): """ :param uid: :param title: :param version: :param overwrite: + :param new_uid: :return: """ - body = {"title": title} - if version is not None: + body = {} + if new_uid: + body["uid"] = new_uid + if title: + body["title"] = title + if version: body["version"] = version if overwrite: body["overwrite"] = True diff --git a/test/elements/test_folder.py b/test/elements/test_folder.py index b26d1cb..9e3520b 100644 --- a/test/elements/test_folder.py +++ b/test/elements/test_folder.py @@ -110,6 +110,33 @@ def test_update_folder(self, m): ) folder = self.grafana.folder.update_folder(title="Departmenet DEF", uid="nErXDvCkzz", version=1, overwrite=True) self.assertEqual(folder["title"], "Departmenet DEF") + self.assertEqual(folder["uid"], "nErXDvCkzz") + + @requests_mock.Mocker() + def test_update_folder_uid(self, m): + m.put( + "http://localhost/api/folders/nErXDvCkzz", + json={ + "id": 1, + "uid": "oFsYEwDlaa", + "title": "Departmenet DEF", + "url": "/dashboards/f/oFsYEwDlaa/department-def", + "hasAcl": "false", + "canSave": "false", + "canEdit": "false", + "canAdmin": "false", + "createdBy": "admin", + "created": "2018-01-31T17:43:12+01:00", + "updatedBy": "admin", + "updated": "2018-01-31T17:43:12+01:00", + "version": 1, + }, + ) + folder = self.grafana.folder.update_folder( + title="Departmenet DEF", uid="nErXDvCkzz", new_uid="oFsYEwDlaa", version=1, overwrite=True + ) + self.assertEqual(folder["title"], "Departmenet DEF") + self.assertEqual(folder["uid"], "oFsYEwDlaa") @requests_mock.Mocker() def test_update_folder_some_param(self, m):