Skip to content

Commit 6cf9ace

Browse files
authored
Merge branch 'master' into update_group_trigger
2 parents 01a21ed + 6ba9af1 commit 6cf9ace

3 files changed

Lines changed: 37 additions & 1 deletion

File tree

hawkular/alerts.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,16 @@ def update_group_trigger(self, group_id, trigger):
163163
data = self._serialize_object(trigger)
164164
self._put(self._service_url(['triggers', 'groups', group_id]), data, parse_json=False)
165165

166+
def delete_group_trigger(self, group_id, keep_non_orphans=False, keep_orphans=False):
167+
"""
168+
Delete a group trigger
169+
:param group_id: ID of the group trigger to delete
170+
:param keep_non_orphans: if True converts the non-orphan member triggers to standard triggers
171+
:param keep_orphans: if True converts the orphan member triggers to standard triggers
172+
"""
173+
params = {'keepNonOrphans': str(keep_non_orphans).lower(), 'keepOrphans': str(keep_orphans).lower()}
174+
self._delete(self._service_url(['triggers', 'groups', group_id], params=params))
175+
166176
def create_group_member(self, member):
167177
data = self._serialize_object(member)
168178
return Trigger(self._post(self._service_url(['triggers', 'groups', 'members']), data))

hawkular/client.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -192,13 +192,15 @@ def _http(self, url, method, data=None, decoder=None, parse_json=True):
192192
try:
193193
req.get_method = lambda: method
194194
res = urlopen(req, context=self.context)
195+
195196
if parse_json:
196197
if res.getcode() == 200:
197198
data = json.load(reader(res), cls=decoder)
198199
elif res.getcode() == 204:
199200
data = {}
200201
else:
201202
data = reader(res).read()
203+
202204
return data
203205

204206
except Exception as e:
@@ -212,7 +214,7 @@ def _put(self, url, data, parse_json=True):
212214
return self._http(url, 'PUT', data, parse_json=parse_json)
213215

214216
def _delete(self, url):
215-
return self._http(url, 'DELETE')
217+
return self._http(url, 'DELETE', parse_json=False)
216218

217219
def _post(self, url, data):
218220
return self._http(url, 'POST', data)

tests/test_alerts.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,13 @@
2222
import os
2323
from tests import base
2424

25+
try:
26+
# Python 3
27+
from urllib.error import HTTPError
28+
except ImportError:
29+
# Fall back to Python 2's urllib2
30+
from urllib2 import HTTPError
31+
2532

2633
class TestAlertsFunctionsBase(unittest.TestCase):
2734
def setUp(self):
@@ -125,6 +132,23 @@ def test_create_group_trigger(self):
125132
self.assertEqual(created_group_trigger.id, trigger.id)
126133
self.assertEqual(created_group_trigger.name, trigger.name)
127134

135+
def test_delete_group_trigger(self):
136+
# Create a group trigger
137+
gt = Trigger()
138+
gt.id = 'delete_group_trigger'
139+
gt.name = 'group_trigger_to_delete'
140+
self.client.create_group_trigger(gt)
141+
142+
group_count = len(self.client.list_triggers())
143+
# Delete the created group trigger
144+
self.client.delete_group_trigger('delete_group_trigger')
145+
146+
# Compare number of remaining triggers and query the deleted trigger id
147+
self.assertEqual(len(self.client.list_triggers()), group_count-1)
148+
with self.assertRaises(HTTPError) as e:
149+
self.client.get_trigger('delete_group_trigger')
150+
self.assertEqual(e.getcode(), 404)
151+
128152
def test_create_groups(self):
129153
# Create a group trigger
130154
t = Trigger()

0 commit comments

Comments
 (0)