diff --git a/hawkular/alerts.py b/hawkular/alerts.py index e1cf01c..37bfcd1 100644 --- a/hawkular/alerts.py +++ b/hawkular/alerts.py @@ -217,6 +217,17 @@ def create_group_dampening(self, group_id, dampening): url = self._service_url(['triggers', 'groups', group_id, 'dampenings']) return Dampening(self._post(url, data)) + def update_group_dampening(self, group_id, dampening_id, dampening): + """ + Update an existing group dampening + :param group_id: Group Trigger id attached to dampening + :param dampening_id: id of the dampening to be updated + :return: Group Dampening created + """ + data = self._serialize_object(dampening) + url = self._service_url(['triggers', 'groups', group_id, 'dampenings', dampening_id]) + return Dampening(self._put(url, data)) + def delete_group_dampening(self, group_id, dampening_id): """ Delete an existing group dampening diff --git a/tests/test_alerts.py b/tests/test_alerts.py index 3a2dd4b..d67cca1 100644 --- a/tests/test_alerts.py +++ b/tests/test_alerts.py @@ -217,9 +217,9 @@ def test_create_groups(self): m1.data_id_map = {'my-metric-id': 'my-metric-id-member1'} dampening = Dampening() - dampening.dampening_id = 'a-group-dampening' dampening.trigger_mode = TriggerMode.FIRING dampening.type = DampeningType.STRICT + dampening.trigger_id = 'a-group-trigger' tc = self.client.create_group_trigger(t) self.assertEqual(tc.type, TriggerType.GROUP) @@ -230,15 +230,24 @@ def test_create_groups(self): gm = self.client.get_group_members('a-group-trigger') self.assertEqual(len(gm), 1) self.assertEqual(gm[0].id, 'member1') + + # Create group trigger dampening self.client.create_group_dampening('a-group-trigger', dampening) gt = self.client.get_trigger('a-group-trigger', full=True) - gd = gt.dampenings - self.assertEqual(len(gd), 1) - self.assertEqual(gd[0].trigger_mode, 'FIRING') - self.assertEqual(gd[0].type, 'STRICT') + gds = gt.dampenings + self.assertEqual(len(gds), 1) + self.assertEqual(gds[0].trigger_mode, 'FIRING') + self.assertEqual(gds[0].type, 'STRICT') + + # Update group trigger dampening + dampening.type = DampeningType.STRICT_TIME + dampening.eval_time_setting = 5 + dampening.dampening_id = gds[0].dampening_id + gd = self.client.update_group_dampening('a-group-trigger', dampening.dampening_id, dampening) + self.assertEqual(gd.type, 'STRICT_TIME') # Delete group trigger dampening - self.client.delete_group_dampening('a-group-trigger', gd[0].dampening_id) + self.client.delete_group_dampening('a-group-trigger', dampening.dampening_id) gt = self.client.get_trigger('a-group-trigger', full=True) self.assertFalse(gt.dampenings)