6
6
grafana_api = ""
7
7
configuration = ""
8
8
9
+ logging .basicConfig (level = logging .INFO )
10
+ logger = logging .getLogger ("grafana-ldap-sync-script" )
9
11
10
12
def setup_grafana (config_dict ):
11
13
global grafana_api , configuration
@@ -26,8 +28,9 @@ def delete_team_by_name(name):
26
28
if len (team_data ) > 0 :
27
29
for data_set in team_data :
28
30
if configuration .DRY_RUN :
29
- print ("Would have deleted team with name: %s and id: %s" % (name , data_set ["id" ]))
31
+ logger . info ("Would have deleted team with name: %s and id: %s" % (name , data_set ["id" ]))
30
32
else :
33
+ logger .info ("Deleting team with name %s and id %s" % (name , data_set ["id" ]))
31
34
grafana_api .teams .delete_team (data_set ["id" ])
32
35
return True
33
36
return False
@@ -41,8 +44,9 @@ def create_team(name, mail):
41
44
:return: The API response.
42
45
"""
43
46
if configuration .DRY_RUN :
44
- print ("Would have created team with name: %s" % name )
47
+ logger . info ("Would have created team with name: %s" % name )
45
48
else :
49
+ logger .info ("Creating team with name %s" % name )
46
50
return grafana_api .teams .add_team ({
47
51
"name" : name ,
48
52
"mail" : mail
@@ -58,8 +62,11 @@ def create_user_with_random_pw(user):
58
62
user_dict ["password" ] = get_random_alphanumerical ()
59
63
user_dict ["OrgId" ] = 1
60
64
if configuration .DRY_RUN :
61
- print ("Would have created user with json %s" % str (user_dict ))
65
+ logger . info ("Would have created user with json %s" % str (user_dict ))
62
66
else :
67
+ logger .info ("Creating user with login %s, name %s and mail %s" %
68
+ (user_dict ["login" ], user_dict ["name" ], user_dict ["email" ])
69
+ )
63
70
grafana_api .admin .create_user (user_dict )
64
71
65
72
@@ -71,8 +78,9 @@ def delete_user_by_login(login):
71
78
"""
72
79
if not login == "admin" :
73
80
if configuration .DRY_RUN :
74
- print ("Would have deleted user with name: %s" % login )
81
+ logger . info ("Would have deleted user with name: %s" % login )
75
82
else :
83
+ logger .info ("Deleting user with name %s" % login )
76
84
return grafana_api .admin .delete_user (grafana_api .users .find_user (login )["id" ])
77
85
return False
78
86
@@ -87,8 +95,9 @@ def create_folder(folder_name, folder_uuid):
87
95
"""
88
96
try :
89
97
if configuration .DRY_RUN :
90
- print ("Would have created folder with name: %s and id: %s" % (folder_name , folder_uuid ))
98
+ logger . info ("Would have created folder with name: %s and id: %s" % (folder_name , folder_uuid ))
91
99
else :
100
+ logger .info ("Creating folder with name %s and id %s" % (folder_name , folder_uuid ))
92
101
return grafana_api .folder .create_folder (folder_name , folder_uuid )
93
102
except GrafanaClientError :
94
103
return False
@@ -102,8 +111,9 @@ def add_user_to_team(login, team):
102
111
"""
103
112
try :
104
113
if configuration .DRY_RUN :
105
- print ("Would have added user %s to team %s" % (login , team ))
114
+ logger . info ("Would have added user %s to team %s" % (login , team ))
106
115
else :
116
+ logger .info ("Adding user %s to team %s" % (login , team ))
107
117
grafana_api .teams .add_team_member (get_id_of_team (team ), get_id_by_login (login ))
108
118
except GrafanaBadInputError :
109
119
return False
@@ -116,6 +126,7 @@ def get_members_of_team(team):
116
126
:param team: The name of the team the members should be returned of.
117
127
:return: An array containing all users as described above.
118
128
"""
129
+ logger .info ("Fetching members of team %s" % team )
119
130
teams = grafana_api .teams .get_team_by_name (team )
120
131
if not teams :
121
132
return []
@@ -134,6 +145,7 @@ def remove_member_from_team(grafana_team, user_login):
134
145
if configuration .DRY_RUN :
135
146
print ("Would have removed user %s from team %s" % (grafana_team , user_login ))
136
147
else :
148
+ logger .info ("Removing user %s from team %s" % (grafana_team , user_login ))
137
149
grafana_api .teams .remove_team_member (get_id_of_team (grafana_team ), get_id_by_login (user_login ))
138
150
139
151
@@ -189,8 +201,9 @@ def update_folder_permissions(folder_id, permissions):
189
201
Sets the given permissions for the folder found under the given id
190
202
"""
191
203
if configuration .DRY_RUN :
192
- print ("Would have set permission of folder %s to %s" % (folder_id , permissions ))
204
+ logger . info ("Would have set permission of folder %s to %s" % (folder_id , permissions ))
193
205
else :
206
+ logger .info ("Setting permission of folder %s to %s" % (folder_id , permissions ))
194
207
grafana_api .folder .update_folder_permissions (folder_id , {"items" : permissions })
195
208
196
209
@@ -205,6 +218,7 @@ def get_all_users():
205
218
"""
206
219
Returns all users present in the connected grafana instance.
207
220
"""
221
+ logger .info ("Fetching all grafana users" )
208
222
user_logins = []
209
223
users = grafana_api .users .search_users ()
210
224
if users is not None :
0 commit comments