1+ #!/usr/bin/env python
2+ #
3+ # This script shows how to use the update_alert() call to modify the
4+ # details of an existing alert.
5+ #
6+ #
7+
8+ import getopt
9+ import os
10+ import sys
11+ import json
12+ sys .path .insert (0 , os .path .join (os .path .dirname (os .path .realpath (sys .argv [0 ])), '..' ))
13+ from sdcclient import SdcClient
14+
15+ #
16+ # Parse arguments
17+ #
18+ def usage ():
19+ print ('usage: %s [-a|--alert <name>] <sysdig-token>' % sys .argv [0 ])
20+ print ('-a|--alert: Comma seperated list of alerts' )
21+ print ('You can find your token at https://app.sysdigcloud.com/#/settings/user' )
22+ sys .exit (1 )
23+
24+ try :
25+ opts , args = getopt .getopt (sys .argv [1 :],"a:" ,["alert=" ])
26+ except getopt .GetoptError :
27+ usage ()
28+
29+ alert_list = "95% CPU"
30+ for opt , arg in opts :
31+ if opt in ("-a" , "--alert" ):
32+ alert_list = arg
33+
34+ if len (args ) != 1 :
35+ usage ()
36+
37+ sdc_token = args [0 ]
38+
39+ #
40+ # Instantiate the SDC client
41+ #
42+ sdclient = SdcClient (sdc_token )
43+
44+ res = sdclient .get_alerts ()
45+ if not res [0 ]:
46+ print (res [1 ])
47+ sys .exit (1 )
48+
49+ alert_found = False
50+ for alert in res [1 ]['alerts' ]:
51+ if alert ['name' ] in alert_list :
52+ alert_found = True
53+ print ("Updating \' " + alert ['name' ] + "\' . Enabled status before change:" )
54+ print (alert ['enabled' ])
55+ if alert ['enabled' ] == True :
56+ alert ['enabled' ] = False
57+ else :
58+ alert ['enabled' ] = True
59+ res_update = sdclient .update_alert (alert )
60+
61+ if not res_update [0 ]:
62+ print (res_update [1 ])
63+ sys .exit (1 )
64+
65+ # Validate and print the results
66+ print ('Alert status after modification:' )
67+ print (alert ['enabled' ])
68+ print (' ' )
69+
70+ if not alert_found :
71+ print ('Alert to be updated not found' )
72+ sys .exit (1 )
0 commit comments