Skip to content

Commit d0e23b8

Browse files
committed
Add support for updating group trigger dampening in Hawkular Alerts
1 parent 03b6866 commit d0e23b8

File tree

2 files changed

+26
-6
lines changed

2 files changed

+26
-6
lines changed

hawkular/alerts.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -217,6 +217,17 @@ def create_group_dampening(self, group_id, dampening):
217217
url = self._service_url(['triggers', 'groups', group_id, 'dampenings'])
218218
return Dampening(self._post(url, data))
219219

220+
def update_group_dampening(self, group_id, dampening_id, dampening):
221+
"""
222+
Update an existing group dampening
223+
:param group_id: Group Trigger id attached to dampening
224+
:param dampening_id: id of the dampening to be updated
225+
:return: Group Dampening created
226+
"""
227+
data = self._serialize_object(dampening)
228+
url = self._service_url(['triggers', 'groups', group_id, 'dampenings', dampening_id])
229+
return Dampening(self._put(url, data))
230+
220231
def delete_group_dampening(self, group_id, dampening_id):
221232
"""
222233
Delete an existing group dampening

tests/test_alerts.py

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -217,9 +217,9 @@ def test_create_groups(self):
217217
m1.data_id_map = {'my-metric-id': 'my-metric-id-member1'}
218218

219219
dampening = Dampening()
220-
dampening.dampening_id = 'a-group-dampening'
221220
dampening.trigger_mode = TriggerMode.FIRING
222221
dampening.type = DampeningType.STRICT
222+
dampening.trigger_id = 'a-group-trigger'
223223

224224
tc = self.client.create_group_trigger(t)
225225
self.assertEqual(tc.type, TriggerType.GROUP)
@@ -230,15 +230,24 @@ def test_create_groups(self):
230230
gm = self.client.get_group_members('a-group-trigger')
231231
self.assertEqual(len(gm), 1)
232232
self.assertEqual(gm[0].id, 'member1')
233+
234+
# Create group trigger dampening
233235
self.client.create_group_dampening('a-group-trigger', dampening)
234236
gt = self.client.get_trigger('a-group-trigger', full=True)
235-
gd = gt.dampenings
236-
self.assertEqual(len(gd), 1)
237-
self.assertEqual(gd[0].trigger_mode, 'FIRING')
238-
self.assertEqual(gd[0].type, 'STRICT')
237+
gds = gt.dampenings
238+
self.assertEqual(len(gds), 1)
239+
self.assertEqual(gds[0].trigger_mode, 'FIRING')
240+
self.assertEqual(gds[0].type, 'STRICT')
241+
242+
# Update group trigger dampening
243+
dampening.type = DampeningType.STRICT_TIME
244+
dampening.eval_time_setting = 5
245+
dampening.dampening_id = gds[0].dampening_id
246+
gd = self.client.update_group_dampening('a-group-trigger', dampening.dampening_id, dampening)
247+
self.assertEqual(gd.type, 'STRICT_TIME')
239248

240249
# Delete group trigger dampening
241-
self.client.delete_group_dampening('a-group-trigger', gd[0].dampening_id)
250+
self.client.delete_group_dampening('a-group-trigger', dampening.dampening_id)
242251
gt = self.client.get_trigger('a-group-trigger', full=True)
243252
self.assertFalse(gt.dampenings)
244253

0 commit comments

Comments
 (0)