import requests, json, re from grafanaSettings import * from commons import * def search_dashboard(): print("search dashboard in grafana:") return send_grafana_get(grafana_url + '/api/search/?type=dash-db&limit={0}'.format(search_api_limit)) def get_dashboard(board_uri): (status_code, content) = send_grafana_get(grafana_url + "/api/dashboards/{0}".format(board_uri)) print("query dashboard uri: {0}, status: {1}".format(board_uri, status_code)) return (status_code, content) def delete_dashboard(board_uri): r = requests.delete(grafana_url + "/api/dashboards/db/{0}".format(board_uri), headers=http_post_headers) return int(status_code) def create_dashboard(payload): return send_grafana_post(grafana_url + '/api/dashboards/db', payload) def search_datasource(): print("search datasources in grafana:") return send_grafana_get(grafana_url + '/api/datasources') def create_datasource(payload): return send_grafana_post(grafana_url + '/api/datasources', payload) def search_folders(): print("search folder in grafana:") return send_grafana_get(grafana_url + '/api/search/?type=dash-folder') def get_folder(uid): (status_code, content) = send_grafana_get(grafana_url + "/api/folders/{0}".format(uid)) print("query folder:{0}, status:{1}".format(uid, status_code)) return (status_code, content) def get_folder_id_from_old_folder_url(folder_url): if folder_url != "": # Get folder uid matches = re.search('dashboards\/[A-Za-z0-9]{1}\/(.*)\/.*', folder_url) uid = matches.group(1) response = get_folder(uid) if isinstance(response[1],dict): folder_data = response[1] else: folder_data = json.loads(response[1]) return folder_data['id'] return 0 def create_folder(payload): return send_grafana_post(grafana_url + '/api/folders', payload) def send_grafana_get(url): r = requests.get(url, headers=http_get_headers, verify=verifySSL) if debug: log_response(r) return (r.status_code, r.json()) def send_grafana_post(url, json_payload): r = requests.post(url, headers=http_post_headers, data=json_payload, verify=verifySSL) if debug: log_response(r) return (r.status_code, r.json())