Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
from grafana_backup.dashboardApi import search_alert_channels
from grafana_backup.dashboardApi import delete_alert_channel_by_uid
from grafana_backup.dashboardApi import delete_alert_channel_by_id
from grafana_backup.commons import to_python2_and_3_compatible_string, print_horizontal_line
def main(args, settings):
grafana_url = settings.get('GRAFANA_URL')
http_get_headers = settings.get('HTTP_POST_HEADERS')
verify_ssl = settings.get('VERIFY_SSL')
client_cert = settings.get('CLIENT_CERT')
debug = settings.get('DEBUG')
pretty_print = settings.get('PRETTY_PRINT')
alert_channels = get_all_alert_channels_in_grafana(grafana_url, http_get_headers, verify_ssl, client_cert, debug)
get_individual_alert_channel_and_delete(alert_channels, pretty_print, grafana_url, http_get_headers)
print_horizontal_line()
def get_all_alert_channels_in_grafana(grafana_url, http_get_headers, verify_ssl, client_cert, debug):
(status, content) = search_alert_channels(grafana_url, http_get_headers, verify_ssl, client_cert, debug)
if status == 200:
channels = content
print("There are {0} channels:".format(len(channels)))
for channel in channels:
print("name: {0}".format(to_python2_and_3_compatible_string(channel['name'])))
return channels
else:
print("query alert channels failed, status: {0}, msg: {1}".format(status, content))
return []
def get_individual_alert_channel_and_delete(channels, pretty_print, grafana_url, http_get_headers):
if channels:
for channel in channels:
status = 0
if 'uid' in channel:
status = delete_alert_channel_by_uid(channel['uid'], grafana_url, http_get_headers)
else:
status = delete_alert_channel_by_id(channel['id'], grafana_url, http_get_headers)
channel_name = to_python2_and_3_compatible_string(channel['name'])
if status == 200:
print("alert_channel:{0} is deleted".format(channel_name))
else:
print("deleting alert_channel {0} failed with {1}".format(channel_name, status))