def _new_file(cls, args): api._timeout = args.timeout format = args.format graphs = args.graphs if args.graphs is None: graphs = sys.stdin.read() try: graphs = json.loads(graphs) except: raise Exception('bad json parameter') res = api.Timeboard.create( title=args.filename, description="Description for {0}".format(args.filename), graphs=[graphs]) report_warnings(res) report_errors(res) cls._write_dash_to_file(res['dash']['id'], args.filename, args.timeout, format, args.string_ids) if format == 'pretty': print(pretty_json(res)) else: print(json.dumps(res))
def _update(cls, args): api._timeout = args.timeout format = args.format graphs = args.graphs if args.graphs is None: graphs = sys.stdin.read() try: graphs = json.loads(graphs) except: raise Exception('bad json parameter') res = api.Screenboard.update( args.screenboard_id, title=args.title, description=args.description, graphs=graphs, template_variables=args.template_variables, width=args.width, height=args.height) report_warnings(res) report_errors(res) if format == 'pretty': print(pretty_json(res)) else: print(json.dumps(res))
def _push(cls, args): api._timeout = args.timeout for f in args.file: screen_obj = json.load(f) if args.append_auto_text: datetime_str = datetime.now().strftime("%x %X") auto_text = "<br/>\nUpdated at {0} from {1} ({2}) on {3}".format( datetime_str, f.name, screen_obj["id"], platform.node()) screen_obj["description"] += auto_text if "id" in screen_obj: # Always convert to int, in case it was originally a string. screen_obj["id"] = int(screen_obj["id"]) res = api.Screenboard.update(**screen_obj) else: res = api.Screenboard.create(**screen_obj) if "errors" in res: print_err( "Upload of screenboard {0} from file {1} failed.".format( screen_obj["id"], f.name)) report_warnings(res) report_errors(res) if format == "pretty": print(pretty_json(res)) else: print(json.dumps(res)) if args.format == "pretty": print("Uploaded file {0} (screenboard {1})".format( f.name, screen_obj["id"]))
def _post(cls, args): api._timeout = args.timeout format = args.format options = None if args.options is not None: try: options = json.loads(args.options) except: raise Exception('bad json parameter') if args.tags: tags = sorted( set([t.strip() for t in args.tags.split(',') if t.strip()])) else: tags = None res = api.Monitor.create(type=args.type, query=args.query, name=args.name, message=args.message, tags=tags, options=options) report_warnings(res) report_errors(res) if format == 'pretty': print(pretty_json(res)) else: print(json.dumps(res))
def _push(cls, args): api._timeout = args.timeout for f in args.file: try: screen_obj = json.load(f) except Exception as err: raise Exception("Could not parse {0}: {1}".format(f.name, err)) if args.append_auto_text: datetime_str = datetime.now().strftime('%x %X') auto_text = ("<br/>\nUpdated at {0} from {1} ({2}) on {3}" .format(datetime_str, f.name, screen_obj["id"], platform.node())) screen_obj["description"] += auto_text if 'id' in screen_obj: # Always convert to int, in case it was originally a string. screen_obj["id"] = int(screen_obj["id"]) res = api.Screenboard.update(**screen_obj) else: res = api.Screenboard.create(**screen_obj) if 'errors' in res: print_err('Upload of screenboard {0} from file {1} failed.' .format(screen_obj["id"], f.name)) report_warnings(res) report_errors(res) if format == 'pretty': print(pretty_json(res)) else: print(json.dumps(res)) if args.format == 'pretty': print("Uploaded file {0} (screenboard {1})".format(f.name, screen_obj["id"]))
def _validate(cls, args): api._timeout = args.timeout format = args.format options = None if args.options is not None: options = json.loads(args.options) if args.tags: tags = sorted( set([t.strip() for t in args.tags.split(",") if t.strip()])) else: tags = None res = api.Monitor.validate(type=args.type, query=args.query, name=args.name, message=args.message, tags=tags, options=options) # report_warnings(res) # report_errors(res) if format == "pretty": print(pretty_json(res)) else: print(json.dumps(res))
def _show_all(cls, args): api._timeout = args.timeout format = args.format res = api.Monitor.get_all( group_states=args.group_states, name=args.name, tags=args.tags, monitor_tags=args.monitor_tags ) report_warnings(res) report_errors(res) if args.string_ids: for d in res: d["id"] = str(d["id"]) if format == 'pretty': print(pretty_json(res)) elif format == 'raw': print(json.dumps(res)) else: for d in res: print("\t".join([(str(d["id"])), (cls._escape(d["message"])), (cls._escape(d["name"])), (str(d["options"])), (str(d["org_id"])), (d["query"]), (d["type"])]))
def _update(cls, args): api._timeout = args.timeout format = args.format widgets = args.widgets if args.widgets is None: widgets = sys.stdin.read() try: widgets = json.loads(widgets) except: raise Exception('bad json parameter') # Required arguments payload = { "title": args.title, "widgets": widgets, "layout_type": args.layout_type } # Optional arguments if (args.description): payload["description"] = args.description if (args.read_only): payload["is_read_only"] = args.read_only if (args.notify_list): payload["notify_list"] = args.notify_list if (args.template_variables): payload["template_variables"] = args.template_variables res = api.Dashboard.update(args.dashboard_id, **payload) report_warnings(res) report_errors(res) if format == 'pretty': print(pretty_json(res)) else: print(json.dumps(res))
def _show_all(cls, args): api._timeout = args.timeout format = args.format res = api.Monitor.get_all(group_states=args.group_states, name=args.name, tags=args.tags, monitor_tags=args.monitor_tags) report_warnings(res) report_errors(res) if args.string_ids: for d in res: d["id"] = str(d["id"]) if format == 'pretty': print(pretty_json(res)) elif format == 'raw': print(json.dumps(res)) else: for d in res: print("\t".join([(str(d["id"])), (cls._escape(d["message"])), (cls._escape(d["name"])), (str(d["options"])), (str(d["org_id"])), (d["query"]), (d["type"])]))
def _post(cls, args): api._timeout = args.timeout format = args.format widgets = args.widgets if args.widgets is None: widgets = sys.stdin.read() widgets = json.loads(widgets) # Required arguments payload = { "title": args.title, "widgets": widgets, "layout_type": args.layout_type } # Optional arguments if args.description: payload["description"] = args.description if args.read_only: payload["is_read_only"] = args.read_only if args.notify_list: payload["notify_list"] = args.notify_list if args.template_variables: payload["template_variables"] = args.template_variables res = api.Dashboard.create(**payload) report_warnings(res) report_errors(res) if format == "pretty": print(pretty_json(res)) else: print(json.dumps(res))
def _cancel_downtime_by_scope(cls, args): api._timeout = args.timeout format = args.format res = api.Downtime.cancel_downtime_by_scope(scope=args.scope) if format == "pretty": print(pretty_json(res)) else: print(json.dumps(res))
def _share(cls, args): api._timeout = args.timeout format = args.format res = api.Screenboard.share(args.screenboard_id) if format == "pretty": print(pretty_json(res)) else: print(json.dumps(res))
def _create(cls, args): api._timeout = args.timeout format = args.format params = {"type": args.type, "name": args.name} if args.tags: tags = sorted( set([t.strip() for t in args.tags.split(",") if t.strip()])) params["tags"] = tags thresholds = [] for threshold_str in args.thresholds.split(","): parts = threshold_str.split(":") timeframe = parts[0] target = float(parts[1]) threshold = {"timeframe": timeframe, "target": target} if len(parts) > 2: threshold["warning"] = float(parts[2]) if len(parts) > 3 and parts[3]: threshold["target_display"] = parts[3] if len(parts) > 4 and parts[4]: threshold["warning_display"] = parts[4] thresholds.append(threshold) params["thresholds"] = thresholds if args.description: params["description"] = args.description if args.type == "metric": params["query"] = { "numerator": args.numerator, "denominator": args.denominator, } elif args.monitor_search: params["monitor_search"] = args.monitor_search else: params["monitor_ids"] = list(args.monitor_ids) if args.groups and len(args.monitor_ids) == 1: groups = args.groups.split("|") params["groups"] = groups if args.tags: params["tags"] = args.tags res = api.ServiceLevelObjective.create(**params) report_warnings(res) report_errors(res) if format == "pretty": print(pretty_json(res)) else: print(json.dumps(res))
def _unmute(cls, args): api._timeout = args.timeout res = api.Monitor.unmute(args.monitor_id, scope=args.scope, all_scopes=args.all_scopes) report_warnings(res) report_errors(res) if format == 'pretty': print(pretty_json(res)) else: print(json.dumps(res))
def _revoke(cls, args): api._timeout = args.timeout format = args.format res = api.Screenboard.revoke(args.screenboard_id) if format == 'pretty': print(pretty_json(res)) else: print(json.dumps(res))
def _mute_all(cls, args): api._timeout = args.timeout format = args.format res = api.Monitor.mute_all() report_warnings(res) report_errors(res) if format == 'pretty': print(pretty_json(res)) else: print(json.dumps(res))
def _show_downtime(cls, args): api._timeout = args.timeout format = args.format res = api.Downtime.get(args.downtime_id) report_warnings(res) report_errors(res) if format == 'pretty': print(pretty_json(res)) else: print(json.dumps(res))
def _can_delete(cls, args): api._timeout = args.timeout monitor_ids = [ i.strip() for i in args.monitor_ids.split(',') if i.strip() ] res = api.Monitor.can_delete(monitor_ids=monitor_ids) if format == 'pretty': print(pretty_json(res)) else: print(json.dumps(res))
def _unmute(cls, args): api._timeout = args.timeout format = args.format res = api.Host.unmute(args.host_name) report_warnings(res) report_errors(res) if format == 'pretty': print(pretty_json(res)) else: print(json.dumps(res))
def _show_all_downtime(cls, args): api._timeout = args.timeout format = args.format res = api.Downtime.get_all(current_only=args.current_only) report_warnings(res) report_errors(res) if format == 'pretty': print(pretty_json(res)) else: print(json.dumps(res))
def _mute(cls, args): api._timeout = args.timeout format = args.format res = api.Monitor.mute(args.monitor_id, scope=args.scope, end=args.end) report_warnings(res) report_errors(res) if format == "pretty": print(pretty_json(res)) else: print(json.dumps(res))
def _file_create(cls, args): api._timeout = args.timeout format = args.format slo = json.load(args.file) res = api.ServiceLevelObjective.create(return_raw=True, **slo) report_warnings(res) report_errors(res) if format == "pretty": print(pretty_json(res)) else: print(json.dumps(res))
def _update_downtime(cls, args): api._timeout = args.timeout format = args.format res = api.Downtime.update(args.downtime_id, scope=args.scope, start=args.start, end=args.end, message=args.message) report_warnings(res) report_errors(res) if format == 'pretty': print(pretty_json(res)) else: print(json.dumps(res))
def _mute(cls, args): api._timeout = args.timeout format = args.format res = api.Host.mute(args.host_name, end=args.end, message=args.message, override=args.override) report_warnings(res) report_errors(res) if format == 'pretty': print(pretty_json(res)) else: print(json.dumps(res))
def _show(cls, args): api._timeout = args.timeout format = args.format res = api.Dashboard.get(args.dashboard_id) report_warnings(res) report_errors(res) if format == "pretty": print(pretty_json(res)) else: print(json.dumps(res))
def _delete_many(cls, args): api._timeout = args.timeout res = api.ServiceLevelObjective.delete_many(args.slo_ids) if res is not None: report_warnings(res) report_errors(res) if format == "pretty": print(pretty_json(res)) else: print(json.dumps(res))
def _check(cls, args): api._timeout = args.timeout format = args.format res = api.ServiceCheck.check( check=args.check, host_name=args.host_name, status=int(args.status), timestamp=args.timestamp, message=args.message, tags=args.tags) report_warnings(res) report_errors(res) if format == 'pretty': print(pretty_json(res)) else: print(json.dumps(res))
def _show_all(cls, args): api._timeout = args.timeout format = args.format res = api.DashboardList.get_all() report_warnings(res) report_errors(res) if format == 'pretty': print(pretty_json(res)) else: print(json.dumps(res))
def _schedule_downtime(cls, args): api._timeout = args.timeout format = args.format res = api.Downtime.create(scope=args.scope, start=args.start, end=args.end, message=args.message) report_warnings(res) report_errors(res) if format == 'pretty': print(pretty_json(res)) else: print(json.dumps(res))
def _delete(cls, args): api._timeout = args.timeout format = args.format dashboard_list_id = args.dashboard_list_id res = api.DashboardList.delete(dashboard_list_id) report_warnings(res) report_errors(res) if format == "pretty": print(pretty_json(res)) else: print(json.dumps(res))
def _show_dashboards(cls, args): api._timeout = args.timeout format = args.format dashboard_list_id = args.dashboard_list_id res = api.DashboardList.get_items(dashboard_list_id) report_warnings(res) report_errors(res) if format == 'pretty': print(pretty_json(res)) else: print(json.dumps(res))
def _post(cls, args): api._timeout = args.timeout format = args.format name = args.name res = api.DashboardList.create(name=name) report_warnings(res) report_errors(res) if format == 'pretty': print(pretty_json(res)) else: print(json.dumps(res))
def _file_update(cls, args): api._timeout = args.timeout format = args.format monitor = json.load(args.file) res = api.Monitor.update(monitor['id'], type=monitor['type'], query=monitor['query'], name=monitor['name'], message=monitor['message'], options=monitor['options']) report_warnings(res) report_errors(res) if format == 'pretty': print(pretty_json(res)) else: print(json.dumps(res))
def _show(cls, args): api._timeout = args.timeout format = args.format res = api.Timeboard.get(args.timeboard_id) report_warnings(res) report_errors(res) if args.string_ids: res["dash"]["id"] = str(res["dash"]["id"]) if format == 'pretty': print(pretty_json(res)) else: print(json.dumps(res))
def _update(cls, args): api._timeout = args.timeout format = args.format options = None if args.options is not None: try: options = json.loads(args.options) except: raise Exception('bad json parameter') res = api.Monitor.update(args.monitor_id, type=args.type, query=args.query, name=args.name, message=args.message, options=options) report_warnings(res) report_errors(res) if format == 'pretty': print(pretty_json(res)) else: print(json.dumps(res))
def _post(cls, args): api._timeout = args.timeout format = args.format graphs = args.graphs if args.graphs is None: graphs = sys.stdin.read() try: graphs = json.loads(graphs) except: raise Exception('bad json parameter') res = api.Timeboard.create(title=args.title, description=args.description, graphs=[graphs], template_variables=args.template_variables) report_warnings(res) report_errors(res) if format == 'pretty': print(pretty_json(res)) else: print(json.dumps(res))
def _show_all(cls, args): api._timeout = args.timeout format = args.format res = api.Timeboard.get_all() report_warnings(res) report_errors(res) if args.string_ids: for d in res["dashes"]: d["id"] = str(d["id"]) if format == 'pretty': print(pretty_json(res)) elif format == 'raw': print(json.dumps(res)) else: for d in res["dashes"]: print("\t".join([(d["id"]), (d["resource"]), (d["title"]), cls._escape(d["description"])]))
def _push(cls, args): api._timeout = args.timeout for f in args.file: try: dash_obj = json.load(f) except Exception as err: raise Exception("Could not parse {0}: {1}".format(f.name, err)) if args.append_auto_text: datetime_str = datetime.now().strftime('%x %X') auto_text = ("<br/>\nUpdated at {0} from {1} ({2}) on {3}" .format(datetime_str, f.name, dash_obj["id"], platform.node())) dash_obj["description"] += auto_text tpl_vars = dash_obj.get("template_variables", []) if 'id' in dash_obj: # Always convert to int, in case it was originally a string. dash_obj["id"] = int(dash_obj["id"]) res = api.Timeboard.update(dash_obj["id"], title=dash_obj["title"], description=dash_obj["description"], graphs=dash_obj["graphs"], template_variables=tpl_vars) else: res = api.Timeboard.create(title=dash_obj["title"], description=dash_obj["description"], graphs=dash_obj["graphs"], template_variables=tpl_vars) if 'errors' in res: print_err('Upload of dashboard {0} from file {1} failed.' .format(dash_obj["id"], f.name)) report_warnings(res) report_errors(res) if format == 'pretty': print(pretty_json(res)) else: print(json.dumps(res)) if args.format == 'pretty': print("Uploaded file {0} (dashboard {1})".format(f.name, dash_obj["id"]))
def _new_file(cls, args): api._timeout = args.timeout format = args.format graphs = args.graphs if args.graphs is None: graphs = sys.stdin.read() try: graphs = json.loads(graphs) except: raise Exception('bad json parameter') res = api.Screenboard.create(title=args.filename, description="Description for {0}".format(args.filename), graphs=[graphs]) report_warnings(res) report_errors(res) cls._write_screen_to_file(res['id'], args.filename, args.timeout, format, args.string_ids) if format == 'pretty': print(pretty_json(res)) else: print(json.dumps(res))