From a182834283429bbd0364ed6217d26b74cc48854b Mon Sep 17 00:00:00 2001 From: Serhiy Yevtushenko Date: Tue, 2 Sep 2025 10:09:28 +0200 Subject: [PATCH 1/6] fix: added method for removal of notification policy tree --- grafana_client/elements/alertingprovisioning.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/grafana_client/elements/alertingprovisioning.py b/grafana_client/elements/alertingprovisioning.py index 821bd04..8d3bb93 100644 --- a/grafana_client/elements/alertingprovisioning.py +++ b/grafana_client/elements/alertingprovisioning.py @@ -145,6 +145,14 @@ def set_notification_policy_tree(self, notification_policy_tree, disable_provena set_notification_policy_tree_path = "/v1/provisioning/policies" return self.client.PUT(set_notification_policy_tree_path, json=notification_policy_tree, headers=headers) + def delete_notification_policy_tree(self): + """ + Removes notification policy tree + @return: + """ + delete_notification_policy_tree_path = "/v1/provisioning/policies" + return self.client.DELETE(delete_notification_policy_tree_path) + def get_mute_timings(self): """ Gets all mute timings From d6fa59887bf5a52c844ac84e0ddcb30027bedfe7 Mon Sep 17 00:00:00 2001 From: Serhiy Yevtushenko Date: Tue, 2 Sep 2025 10:57:32 +0200 Subject: [PATCH 2/6] fix: run scripts\generate_async.py --- grafana_client/elements/_async/alertingprovisioning.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/grafana_client/elements/_async/alertingprovisioning.py b/grafana_client/elements/_async/alertingprovisioning.py index 547741c..4f19d0f 100644 --- a/grafana_client/elements/_async/alertingprovisioning.py +++ b/grafana_client/elements/_async/alertingprovisioning.py @@ -145,6 +145,14 @@ async def set_notification_policy_tree(self, notification_policy_tree, disable_p set_notification_policy_tree_path = "/v1/provisioning/policies" return await self.client.PUT(set_notification_policy_tree_path, json=notification_policy_tree, headers=headers) + async def delete_notification_policy_tree(self): + """ + Removes notification policy tree + @return: + """ + delete_notification_policy_tree_path = "/v1/provisioning/policies" + return await self.client.DELETE(delete_notification_policy_tree_path) + async def get_mute_timings(self): """ Gets all mute timings From a18cd60873be88eee9f092469e3c2a01742d185a Mon Sep 17 00:00:00 2001 From: Serhiy Yevtushenko Date: Tue, 2 Sep 2025 11:14:26 +0200 Subject: [PATCH 3/6] fix: Test attempt --- test/elements/test_alertingprovisioning.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/test/elements/test_alertingprovisioning.py b/test/elements/test_alertingprovisioning.py index 7d9c6a9..c075bc2 100644 --- a/test/elements/test_alertingprovisioning.py +++ b/test/elements/test_alertingprovisioning.py @@ -115,3 +115,9 @@ def test_update_alertrule_disable_provenance(self, m): headers = history[0].headers self.assertIn("X-Disable-Provenance", headers) self.assertEqual(headers["X-Disable-Provenance"], "true") + + @requests_mock.Mocker() + def test_delete_notification_policy_tree(self, m): + m.delete( + "/v1/provisioning/policies") + self.grafana.alertingprovisioning.delete_notification_policy_tree() \ No newline at end of file From 6dbdcdbf0c06587a886e2da4267ec05d36564e27 Mon Sep 17 00:00:00 2001 From: Serhiy Yevtushenko Date: Tue, 2 Sep 2025 11:15:52 +0200 Subject: [PATCH 4/6] fix: style error --- test/elements/test_alertingprovisioning.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/elements/test_alertingprovisioning.py b/test/elements/test_alertingprovisioning.py index c075bc2..28628d1 100644 --- a/test/elements/test_alertingprovisioning.py +++ b/test/elements/test_alertingprovisioning.py @@ -120,4 +120,4 @@ def test_update_alertrule_disable_provenance(self, m): def test_delete_notification_policy_tree(self, m): m.delete( "/v1/provisioning/policies") - self.grafana.alertingprovisioning.delete_notification_policy_tree() \ No newline at end of file + self.grafana.alertingprovisioning.delete_notification_policy_tree() From 49b4a686c2a0df9fad9a46a51ef55a942189d16d Mon Sep 17 00:00:00 2001 From: Serhiy Yevtushenko Date: Tue, 2 Sep 2025 11:19:14 +0200 Subject: [PATCH 5/6] fix: test --- test/elements/test_alertingprovisioning.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/test/elements/test_alertingprovisioning.py b/test/elements/test_alertingprovisioning.py index 28628d1..e0fbebb 100644 --- a/test/elements/test_alertingprovisioning.py +++ b/test/elements/test_alertingprovisioning.py @@ -118,6 +118,5 @@ def test_update_alertrule_disable_provenance(self, m): @requests_mock.Mocker() def test_delete_notification_policy_tree(self, m): - m.delete( - "/v1/provisioning/policies") + m.delete("http://localhost/api/v1/provisioning/policies") self.grafana.alertingprovisioning.delete_notification_policy_tree() From 145d0dff3e72bf89733d97e208b39295aadf9b3a Mon Sep 17 00:00:00 2001 From: Serhiy Yevtushenko Date: Tue, 2 Sep 2025 11:26:49 +0200 Subject: [PATCH 6/6] fix: attempt to fix test. --- test/elements/test_alertingprovisioning.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/test/elements/test_alertingprovisioning.py b/test/elements/test_alertingprovisioning.py index e0fbebb..d7c3a85 100644 --- a/test/elements/test_alertingprovisioning.py +++ b/test/elements/test_alertingprovisioning.py @@ -118,5 +118,7 @@ def test_update_alertrule_disable_provenance(self, m): @requests_mock.Mocker() def test_delete_notification_policy_tree(self, m): - m.delete("http://localhost/api/v1/provisioning/policies") + JSON_RESPONSE = {"receiver": "grafana-default-email", "group_by": ["grafana_folder", "alertname"]} + + m.delete("http://localhost/api/v1/provisioning/policies", json=JSON_RESPONSE) self.grafana.alertingprovisioning.delete_notification_policy_tree()