@@ -21,9 +21,6 @@ class AlertManager(object):
21
21
22
22
"""
23
23
24
- SUCCESS_STATUSES = ['success' ]
25
- ERROR_STATUSES = ['error' ]
26
-
27
24
def __init__ (self , host , port = 9093 , req_obj = None ):
28
25
"""
29
26
Init method.
@@ -72,8 +69,7 @@ def _check_response(self, req):
72
69
73
70
This is a protected method that should only be used by methods making
74
71
API calls. The intention is to check out responses for a successful
75
- HTTP status code along with a successful return from the Alert Manager
76
- API.
72
+ HTTP status code from the Alert Manager API.
77
73
78
74
Parameters
79
75
----------
@@ -89,21 +85,13 @@ def _check_response(self, req):
89
85
90
86
Raises
91
87
------
92
- ValueError
93
- Raise a value error if the 'status' key of our response is in
94
- our list of error statuses from Alert Manager.
95
88
HTTPError
96
89
Raise an http error if our response objects status_code attribute
97
90
is not in requests.codes.ok (basically not a 200).
98
91
99
92
"""
100
- if (req .status_code == requests .codes .ok
101
- and req .json ()['status' ] in self .SUCCESS_STATUSES ):
102
- return True
103
- elif (req .status_code == requests .codes .ok
104
- and req .json ()['status' ] in self .ERROR_STATUSES ):
105
- raise ValueError ('{} ==> {}' .format (req .json ()['errorType' ],
106
- req .json ()['error' ]))
93
+ if req .status_code == requests .codes .ok :
94
+ return True
107
95
else :
108
96
raise HTTPError ('{} ==> {}' .format (req .status_code , req .text ))
109
97
@@ -161,13 +149,13 @@ def get_alerts(self, **kwargs):
161
149
Return a list of Alert objects from our Alert Manager instance.
162
150
163
151
"""
164
- route = "/api/v1 /alerts"
152
+ route = "/api/v2 /alerts"
165
153
self ._validate_get_alert_kwargs (** kwargs )
166
154
if kwargs .get ('filter' ):
167
155
kwargs ['filter' ] = self ._handle_filters (kwargs ['filter' ])
168
156
r = self ._make_request ("GET" , route , params = kwargs )
169
157
if self ._check_response (r ):
170
- return [Alert (alert ) for alert in r .json ()[ 'data' ] ]
158
+ return [Alert (alert ) for alert in r .json ()]
171
159
172
160
def _validate_get_alert_kwargs (self , ** kwargs ):
173
161
"""
@@ -287,10 +275,10 @@ def post_alerts(self, *alert):
287
275
else :
288
276
converted = Alert .from_dict (obj )
289
277
payload .append (converted .validate_and_dump ())
290
- route = "/api/v1 /alerts"
278
+ route = "/api/v2 /alerts"
291
279
r = self ._make_request ("POST" , route , json = payload )
292
280
if self ._check_response (r ):
293
- return Alert .from_dict (r . json () )
281
+ return Alert .from_dict ({ 'status' : [ r . status_code ]} )
294
282
295
283
def get_status (self ):
296
284
"""
@@ -305,7 +293,7 @@ def get_status(self):
305
293
Return the response from Alert Manager as an Alert object.
306
294
307
295
"""
308
- route = "/api/v1 /status"
296
+ route = "/api/v2 /status"
309
297
r = self ._make_request ("GET" , route )
310
298
if self ._check_response (r ):
311
299
return Alert .from_dict (r .json ())
@@ -327,7 +315,7 @@ def get_receivers(self):
327
315
Return the response from Alert Manager as an Alert object.
328
316
329
317
"""
330
- route = "/api/v1 /receivers"
318
+ route = "/api/v2 /receivers"
331
319
r = self ._make_request ("GET" , route )
332
320
if self ._check_response (r ):
333
321
return Alert .from_dict (r .json ())
@@ -344,10 +332,10 @@ def get_alert_groups(self):
344
332
Return the response from Alert Manager as an Alert object.
345
333
346
334
"""
347
- route = "/api/v1 /alerts/groups"
335
+ route = "/api/v2 /alerts/groups"
348
336
r = self ._make_request ("GET" , route )
349
337
if self ._check_response (r ):
350
- return Alert . from_dict ( r .json ())
338
+ return [ Alert ( group ) for group in r .json ()]
351
339
352
340
def get_silence (self , id = None ):
353
341
"""
@@ -370,12 +358,13 @@ def get_silence(self, id=None):
370
358
case a list of silences.
371
359
372
360
"""
373
- route = "/api/v1 /silences"
361
+ route = "/api/v2 /silences"
374
362
if id :
363
+ route = "/api/v2/silence/"
375
364
route = urljoin (route , id )
376
365
r = self ._make_request ("GET" , route )
377
366
if self ._check_response (r ):
378
- return Alert . from_dict ( r .json ())
367
+ return [ Alert ( silence ) for silence in r .json ()]
379
368
380
369
def get_silences (self , ** kwargs ):
381
370
"""
@@ -398,13 +387,13 @@ def get_silences(self, **kwargs):
398
387
Return a list of Silence objects from our Alert Manager instance.
399
388
400
389
"""
401
- route = "/api/v1 /silences"
390
+ route = "/api/v2 /silences"
402
391
self ._validate_get_silence_kwargs (** kwargs )
403
392
if kwargs .get ('filter' ):
404
393
kwargs ['filter' ] = self ._handle_filters (kwargs ['filter' ])
405
394
r = self ._make_request ("GET" , route , params = kwargs )
406
395
if self ._check_response (r ):
407
- return [Alert (alert ) for alert in r .json ()[ 'data' ] ]
396
+ return [Alert (alert ) for alert in r .json ()]
408
397
409
398
def post_silence (self , silence ):
410
399
"""
@@ -440,7 +429,7 @@ def post_silence(self, silence):
440
429
else :
441
430
silence = Silence .from_dict (silence )
442
431
silence = silence .validate_and_dump ()
443
- route = "/api/v1 /silences"
432
+ route = "/api/v2 /silences"
444
433
r = self ._make_request ("POST" , route , json = silence )
445
434
if self ._check_response (r ):
446
435
return Alert .from_dict (r .json ())
@@ -464,8 +453,8 @@ def delete_silence(self, silence_id):
464
453
Return the response from Alert Manager as an Alert object.
465
454
466
455
"""
467
- route = "/api/v1 /silence/"
456
+ route = "/api/v2 /silence/"
468
457
route = urljoin (route , silence_id )
469
458
r = self ._make_request ("DELETE" , route )
470
459
if self ._check_response (r ):
471
- return Alert .from_dict (r . json () )
460
+ return Alert .from_dict ({ 'status' : [ r . status_code ]} )
0 commit comments