Skip to content

Commit 06465d3

Browse files
committed
feat: Adjust the deletion of alerting silences
1 parent 6b9d562 commit 06465d3

File tree

2 files changed

+22
-3
lines changed

2 files changed

+22
-3
lines changed

grafana_api/alerting.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,11 @@ def delete_alertmanager_silence_by_id(
161161
RequestsMethods.DELETE,
162162
)
163163

164-
if api_call != dict():
164+
if (
165+
api_call == dict()
166+
or api_call.get("message")
167+
!= "silence deleted"
168+
):
165169
logging.error(f"Please, check the error: {api_call}.")
166170
raise Exception
167171
else:
@@ -272,7 +276,7 @@ def create_or_update_alertmanager_silence(
272276
json.dumps(silence_json_dict),
273277
)
274278

275-
if api_call == dict() or api_call.get("id") is None:
279+
if api_call == dict() or (api_call.get("id") is None and api_call.get("silenceID") is None):
276280
logging.error(f"Check the error: {api_call}.")
277281
raise Exception
278282
else:

tests/unittests/test_alerting.py

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ def test_delete_alertmanager_silence_by_id(self, call_the_api_mock):
107107
model: APIModel = APIModel(host=MagicMock(), token=MagicMock())
108108
alerting: Alerting = Alerting(grafana_api_model=model)
109109

110-
call_the_api_mock.return_value = dict()
110+
call_the_api_mock.return_value = dict({"message": "silence deleted"})
111111

112112
self.assertEqual(None, alerting.delete_alertmanager_silence_by_id("test"))
113113

@@ -202,6 +202,21 @@ def test_create_or_update_alertmanager_silence(self, call_the_api_mock):
202202
alerting.create_or_update_alertmanager_silence(silence),
203203
)
204204

205+
@patch("grafana_api.api.Api.call_the_api")
206+
def test_create_or_update_alertmanager_silence_return_silence_id(self, call_the_api_mock):
207+
model: APIModel = APIModel(host=MagicMock(), token=MagicMock())
208+
alerting: Alerting = Alerting(grafana_api_model=model)
209+
silence: Silence = Silence(
210+
"test", "test", "test", "test", "test", {"test": "test"}
211+
)
212+
213+
call_the_api_mock.return_value = dict({"silenceID": "test"})
214+
215+
self.assertEqual(
216+
dict({"silenceID": "test"}),
217+
alerting.create_or_update_alertmanager_silence(silence),
218+
)
219+
205220
def test_create_or_update_alertmanager_silences_no_recipient(self):
206221
model: APIModel = APIModel(host=MagicMock(), token=MagicMock())
207222
alerting: Alerting = Alerting(grafana_api_model=model)

0 commit comments

Comments
 (0)