def save_snapshot(file_name, snapshot_setting, folder_path, pretty_print):
    file_name = file_name.replace('/', '_')
    random_suffix = "".join(
        random.choice(string.ascii_letters) for _ in range(6))
    file_path = save_json(file_name + "_" + random_suffix, snapshot_setting,
                          folder_path, 'snapshot', pretty_print)
    print("snapshot:{0} is saved to {1}".format(file_name, file_path))
def main(args, settings):
    (status, json_resp, uid_support, paging_support) = api_checks(settings)

    # Do not continue if API is unavailable or token is not valid
    if not status == 200:
        print("server status is not ok: {0}".format(json_resp))
        sys.exit(1)

    settings.update({'UID_SUPPORT': uid_support})
    settings.update({'PAGING_SUPPORT': paging_support})

    debug = settings.get('DEBUG')
    timestamp = settings.get('TIMESTAMP')
    verify_ssl = settings.get('VERIFY_SSL')
    client_cert = settings.get('CLIENT_CERT')
    grafana_url = settings.get('GRAFANA_URL')
    pretty_print = settings.get('PRETTY_PRINT')
    http_post_headers = settings.get('HTTP_POST_HEADERS')

    folder_path = 'user_permissions/{0}'.format(timestamp)

    if not os.path.exists(folder_path):
        os.makedirs(folder_path)

    users = get_all_users(grafana_url, http_post_headers, verify_ssl,
                          client_cert, debug)
    file_path = save_json("users.json", users, folder_path, 'users',
                          pretty_print)
    print("users have been saved to {0}".format(file_path))

    for user in users:
        if user['role'] != 'Admin':
            (status, content) = set_user_role(user['userId'], 'Viewer',
                                              grafana_url, http_post_headers,
                                              verify_ssl, client_cert, debug)
            print("changed user {0} to Viewer".format(user['login']))

            if status != 200:
                print("changing role of user {0} failed with {1}".format(
                    user['login'], status))
Esempio n. 3
0
def main(args, settings):
    (status, json_resp, dashboard_uid_support, datasource_uid_support,
     paging_support) = api_checks(settings)

    # Do not continue if API is unavailable or token is not valid
    if not status == 200:
        print("server status is not ok: {0}".format(json_resp))
        sys.exit(1)

    settings.update({'DASHBOARD_UID_SUPPORT': dashboard_uid_support})
    settings.update({'DATASOURCE_UID_SUPPORT': datasource_uid_support})
    settings.update({'PAGING_SUPPORT': paging_support})

    debug = settings.get('DEBUG')
    timestamp = settings.get('TIMESTAMP')
    verify_ssl = settings.get('VERIFY_SSL')
    client_cert = settings.get('CLIENT_CERT')
    grafana_url = settings.get('GRAFANA_URL')
    pretty_print = settings.get('PRETTY_PRINT')
    http_get_headers = settings.get('HTTP_POST_HEADERS')

    folder_path = 'alert_status/{0}'.format(timestamp)

    if not os.path.exists(folder_path):
        os.makedirs(folder_path)

    alerts = get_all_alerts(grafana_url, http_get_headers, verify_ssl,
                            client_cert, debug)
    file_path = save_json("alerts.json", alerts, folder_path, 'alerts',
                          pretty_print)
    print("alerts have been saved to {0}".format(file_path))

    for alert in alerts:
        (status, content) = pause_alert(alert['id'], grafana_url,
                                        http_get_headers, verify_ssl,
                                        client_cert, debug)
        if status != 200:
            print("pausing of alert {0} failed with {1}".format(
                alert['name'], status))
Esempio n. 4
0
def save_alert_channel(channel_name, file_name, alert_channel_setting, folder_path, pretty_print):
    file_path = save_json(file_name, alert_channel_setting, folder_path, 'alert_channel', pretty_print)
    print("alert_channel:{0} is saved to {1}".format(channel_name, file_path))
def save_dashboard_setting(dashboard_name, file_name, dashboard_settings,
                           folder_path, pretty_print):
    file_path = save_json(file_name, dashboard_settings, folder_path,
                          'dashboard', pretty_print)
    print("dashboard: {0} -> saved to: {1}".format(dashboard_name, file_path))
Esempio n. 6
0
def save_user_info(user_name, file_name, user_data, folder_path, pretty_print):
    file_path = save_json(file_name, user_data, folder_path, 'user', pretty_print)
    print("user: {0} -> saved to: {1}".format(user_name, file_path))
def save_annotation(file_name, annotation_setting, folder_path, pretty_print):
    file_path = save_json(file_name, annotation_setting, folder_path,
                          'annotation', pretty_print)
    print("annotation: {0} is saved to {1}".format(file_name, file_path))
Esempio n. 8
0
def save_org_info(org_name, file_name, org_settings, folder_path,
                  pretty_print):
    file_path = save_json(file_name, org_settings, folder_path, 'organization',
                          pretty_print)
    print("org: {0} -> saved to: {1}".format(org_name, file_path))
Esempio n. 9
0
def save_datasource(file_name, datasource_setting, folder_path, pretty_print):
    file_path = save_json(file_name, datasource_setting, folder_path,
                          'datasource', pretty_print)
    print("datasource:{0} is saved to {1}".format(file_name, file_path))
Esempio n. 10
0
def save_folder_setting(folder_name, file_name, folder_settings, folder_path,
                        pretty_print):
    file_path = save_json(file_name, folder_settings, folder_path, 'folder',
                          pretty_print)
    print("folder:{0} are saved to {1}".format(folder_name, file_path))
Esempio n. 11
0
def save_folder_setting(folder_name, file_name, folder_settings, folder_permissions, folder_path, pretty_print):
    file_path = save_json(file_name, folder_settings, folder_path, 'folder', pretty_print)
    print("folder:{0} are saved to {1}".format(folder_name, file_path))
    # NOTICE: The 'folder_permission' file extension had the 's' removed to work with the magical dict logic in restore.py...
    file_path = save_json(file_name,  folder_permissions, folder_path, 'folder_permission', pretty_print)
    print("folder permissions:{0} are saved to {1}".format(folder_name, file_path))
Esempio n. 12
0
def save_version(file_name, version, folder_path, pretty_print):
    file_path = save_json(file_name, version, folder_path, 'version',
                          pretty_print)
    print("version: {0} -> saved to: {1}".format(file_name, file_path))