Skip to content

Commit b04949b

Browse files
delete_alert
1 parent 7ef98cc commit b04949b

File tree

4 files changed

+75
-19
lines changed

4 files changed

+75
-19
lines changed

README.md

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -94,11 +94,19 @@ A dictionary showing the details of the new dashboard.
9494
**Example**
9595
[examples/create_dashboard.py](examples/create_dashboard.py).
9696

97-
#### `delete_dashboards(self, dashname))`
97+
#### `delete_alert(self, name)`
98+
**Description**
99+
Deletes an alert given its name.
100+
**Success Return Value**
101+
A string with the number of alerts deleted.
102+
**Example**
103+
[examples/delete_alert.py](examples/delete_alert.py).
104+
105+
#### `delete_dashboard(self, dashname)`
98106
**Description**
99107
Deletes a dashboard given its name.
100108
**Success Return Value**
101-
A boolean with the status of the operation.
109+
A string with the number of dashboards deleted.
102110
**Example**
103111
[examples/delete_dashboard.py](examples/delete_dashboard.py).
104112

@@ -126,21 +134,21 @@ A dictionary with the requested data. Data is organized in a list of time sample
126134
**Examples**
127135
[examples/get_data_simple.py](examples/get_data_simple.py), [examples/get_data_advanced.py](examples/get_data_advanced.py), [examples/list_hosts.py](examples/list_hosts.py), [examples/get_data_datasource.py](examples/get_data_datasource.py).
128136

129-
#### `get_data_retention_info(self)`
137+
#### `get_dashboards(self)`
130138
**Description**
131-
Return the list of data retention intervals, with beginning and end UTC time for each of them. Sysdig Cloud performs rollups of the data it stores. This means that data is stored at different time granularities depending on how far in time it is. This call can be used to know what precision you can expect before you make a call to get_data().
139+
Return the list of dashboards available under the given user account. This includes the dashboards created by the user and the ones shared with her by other users.
132140
**Success Return Value**
133141
A dictionary containing the list of available sampling intervals.
134142
**Example**
135-
[examples/print_data_retention_info.py](examples/print_data_retention_info.py).
143+
[examples/list_dashboards.py](examples/list_dashboards.py).
136144

137-
#### `get_dashboards(self)`
145+
#### `get_data_retention_info(self)`
138146
**Description**
139-
Return the list of dashboards available under the given user account. This includes the dashboards created by the user and the ones shared with her by other users.
147+
Return the list of data retention intervals, with beginning and end UTC time for each of them. Sysdig Cloud performs rollups of the data it stores. This means that data is stored at different time granularities depending on how far in time it is. This call can be used to know what precision you can expect before you make a call to get_data().
140148
**Success Return Value**
141149
A dictionary containing the list of available sampling intervals.
142150
**Example**
143-
[examples/list_dashboards.py](examples/list_dashboards.py).
151+
[examples/print_data_retention_info.py](examples/print_data_retention_info.py).
144152

145153
#### `get_explore_grouping_hierarchy(self)`
146154
**Description**

examples/delete_alert.py

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
#!/usr/bin/env python
2+
#
3+
# This example shows how to delete an alert
4+
#
5+
6+
import sys
7+
sys.path.insert(0, '../')
8+
from sdcclient import SdcClient
9+
10+
#
11+
# Parse arguments
12+
#
13+
if len(sys.argv) != 2:
14+
print 'usage: %s <sysdig-token>' % sys.argv[0]
15+
print 'You can find your token at https://app.sysdigcloud.com/#/settings/user'
16+
sys.exit(0)
17+
18+
sdc_token = sys.argv[1]
19+
20+
#
21+
# Instantiate the SDC client
22+
#
23+
sdclient = SdcClient(sdc_token)
24+
25+
res = sdclient.delete_alert("tomcat cpu > 80% on any host")
26+
print res[1]
27+
if not res[0]:
28+
sys.exit(0)

examples/delete_dashboard.py

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,15 +23,11 @@
2323
sdclient = SdcClient(sdc_token)
2424

2525
res = sdclient.delete_dashboard("API test - cassandra in prod")
26-
if res:
27-
print 'Dashboard deleted successfully'
28-
else:
29-
print res[1]
26+
print res[1]
27+
if not res[0]:
3028
sys.exit(0)
3129

3230
res = sdclient.delete_dashboard("API test - cassandra in dev")
33-
if res:
34-
print 'Dashboard deleted successfully'
35-
else:
36-
print res[1]
31+
print res[1]
32+
if not res[0]:
3733
sys.exit(0)

sdcclient/_client.py

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ def __checkResponse(self, r):
2020
try:
2121
j = r.json()
2222
except:
23-
self.lasterr = 'status code ' + str(self.errorcode)
23+
self.lasterr = 'status code ' + str(errorcode)
2424
return False
2525

2626
if 'errors' in j:
@@ -31,7 +31,7 @@ def __checkResponse(self, r):
3131
elif 'message' in j:
3232
self.lasterr = j['message']
3333
else:
34-
self.lasterr = 'status code ' + str(self.errorcode)
34+
self.lasterr = 'status code ' + str(errorcode)
3535
return False
3636
return True
3737

@@ -108,6 +108,26 @@ def create_alert(self, name, description, severity, for_atleast_s, condition, se
108108
return [False, self.lasterr]
109109
return [True, r.json()]
110110

111+
def delete_alert(self, name):
112+
r = requests.get(self.url + '/api/alerts', headers=self.hdrs)
113+
if not self.__checkResponse(r):
114+
return [False, self.lasterr]
115+
j = r.json()
116+
117+
deleted = 0
118+
119+
for db in j['alerts']:
120+
if 'name' in db:
121+
if db['name'] == name:
122+
r = requests.delete(self.url + '/api/alerts/' + str(db['id']), headers=self.hdrs)
123+
if not self.__checkResponse(r):
124+
return [False, self.lasterr]
125+
deleted += 1
126+
127+
if deleted == 0:
128+
return [False, "alert not found"]
129+
return [True, "alerts deleted: " + str(deleted)]
130+
111131
def get_notification_settings(self):
112132
r = requests.get(self.url + '/api/settings/notifications', headers=self.hdrs)
113133
if not self.__checkResponse(r):
@@ -456,14 +476,18 @@ def delete_dashboard(self, dashname):
456476

457477
j = r.json()
458478

479+
deleted = 0
459480

460481
for db in j['dashboards']:
461482
if db['name'] == dashname:
462483
r = requests.delete(self.url + '/ui/dashboards/' + str(db['id']), headers=self.hdrs)
463484
if not self.__checkResponse(r):
464485
return [False, self.lasterr]
486+
deleted += 1
465487

466-
return True
488+
if deleted == 0:
489+
return [False, "dashboard not found"]
490+
return [True, "dashboards deleted: " + str(deleted)]
467491

468492
'''
469493
Annotations format:

0 commit comments

Comments
 (0)