@@ -15,6 +15,7 @@ def __init__(self, token="", sdc_url='https://app.sysdigcloud.com'):
1515 def __checkResponse (self , r ):
1616 if r .status_code >= 300 :
1717 errorcode = r .status_code
18+ self .lasterr = None
1819
1920 try :
2021 j = r .json ()
@@ -25,8 +26,14 @@ def __checkResponse(self, r):
2526 if 'errors' in j :
2627 if 'message' in j ['errors' ][0 ]:
2728 self .lasterr = j ['errors' ][0 ]['message' ]
28- else :
29- self .lasterr = j ['errors' ][0 ]['reason' ]
29+
30+ if 'reason' in j ['errors' ][0 ]:
31+ if self .lasterr is not None :
32+ self .lasterr += ' '
33+ else :
34+ self .lasrerr = ''
35+
36+ self .lasterr += j ['errors' ][0 ]['reason' ]
3037 elif 'message' in j :
3138 self .lasterr = j ['message' ]
3239 else :
@@ -75,6 +82,18 @@ def get_notifications(self, from_ts, to_ts, state=None, resolved=None):
7582 return [False , self .lasterr ]
7683 return [True , r .json ()]
7784
85+ def update_notification_resolution (self , notification , resolved ):
86+ if 'id' not in notification :
87+ return [False , "Invalid notification format" ]
88+
89+ notification ['resolved' ] = resolved
90+ data = {'notification' : notification }
91+
92+ r = requests .put (self .url + '/api/notifications/' + str (notification ['id' ]), headers = self .hdrs , data = json .dumps (data ))
93+ if not self .__checkResponse (r ):
94+ return [False , self .lasterr ]
95+ return [True , r .json ()]
96+
7897 def create_alert (self , name , description , severity , for_atleast_s , condition , segmentby = [],
7998 segment_condition = 'ANY' , filter = '' , notify = '' , enabled = True , annotations = {}):
8099 #
@@ -530,8 +549,11 @@ def get_events(self, name=None, from_ts=None, to_ts=None, tags=None):
530549 return [False , self .lasterr ]
531550 return [True , r .json ()]
532551
533- def delete_event (self , event_id ):
534- r = requests .delete (self .url + '/api/events/' + str (event_id ), headers = self .hdrs )
552+ def delete_event (self , event ):
553+ if 'id' not in event :
554+ return [False , "Invalid event format" ]
555+
556+ r = requests .delete (self .url + '/api/events/' + str (event ['id' ]), headers = self .hdrs )
535557 if not self .__checkResponse (r ):
536558 return [False , self .lasterr ]
537559 return [True , None ]
0 commit comments