def handle(options, args): """ `grok POST` handler. """ (endpoint, apikey) = grokcli.getCommonArgs(parser, args) if options.data: data = options.data else: # Pop data source off args try: data = args.pop(0) except IndexError: data = "" server = "%(scheme)s://%(netloc)s" % urlparse(endpoint)._asdict() grok = GrokSession(server=server, apikey=apikey) post = partial(grok.post, endpoint) response = None if data.strip() == "-" or not data: if select.select([sys.stdin], [], [], 0.0)[0]: response = post(data=sys.stdin) else: response = post() elif data: with open(data, "r") as fp: response = post(data=fp) if isinstance(response, Response): print response.text sys.exit(not int(bool(response)))
def handle(options, args): """ `grok import` handler. """ (server, apikey) = grokcli.getCommonArgs(parser, args) if options.data: data = options.data else: # Pop data source off args try: data = args.pop(0) except IndexError: data = "-" grok = GrokSession(server=server, apikey=apikey) if data.strip() == "-": if select.select([ sys.stdin, ], [], [], 0.0)[0]: importMetricsFromFile(grok, sys.stdin, **vars(options)) else: parser.print_help() sys.exit(1) elif data: with open(data, "r") as fp: importMetricsFromFile(grok, fp, **vars(options))
def handle(options, args): """ `grok POST` handler. """ (endpoint, apikey) = grokcli.getCommonArgs(parser, args) if options.data: data = options.data else: # Pop data source off args try: data = args.pop(0) except IndexError: data = "" server = "%(scheme)s://%(netloc)s" % urlparse(endpoint)._asdict() grok = GrokSession(server=server, apikey=apikey) post = partial(grok.post, endpoint) response = None if data.strip() == "-" or not data: if select.select([ sys.stdin, ], [], [], 0.0)[0]: response = post(data=sys.stdin) else: response = post() elif data: with open(data, "r") as fp: response = post(data=fp) if isinstance(response, Response): print response.text sys.exit(not int(bool(response)))
def handle(options, args): """ `grok export` handler. """ (server, apikey) = grokcli.getCommonArgs(parser, args) dump = partial(json.dumps, indent=2) if hasattr(options, "useYaml"): if options.useYaml: dump = partial(yaml.safe_dump, default_flow_style=False) grok = GrokSession(server=server, apikey=apikey) if options.output is not None: outp = open(options.output, "w") else: outp = sys.stdout models = grok.exportModels() if models: try: print >> outp, dump(models) finally: outp.flush() if outp != sys.stdout: outp.close()
def handle(options, args): """ `grok custom` handler. """ try: resource = args.pop(0) action = args.pop(0) except IndexError: printHelpAndExit() (server, apikey) = grokcli.getCommonArgs(parser, args) grok = GrokSession(server=server, apikey=apikey) if resource == "metrics": if action == "list": handleListRequest(grok, options.format) elif action == "monitor": if not options.id: printHelpAndExit() handleMonitorRequest(grok, options.id) elif action == "unmonitor": if not options.name: printHelpAndExit() handleUnmonitorRequest(grok, options.name) else: printHelpAndExit() else: printHelpAndExit()
def handle(options, args): """ `grok GET` handler. """ (endpoint, apikey) = grokcli.getCommonArgs(parser, args) server = "%(scheme)s://%(netloc)s" % urlparse(endpoint)._asdict() grok = GrokSession(server=server, apikey=apikey) response = grok.get(endpoint) if isinstance(response, Response): if hasattr(options, "useYaml"): if options.useYaml: print yaml.safe_dump(yaml.load(response.text), default_flow_style=False) else: print response.text sys.exit(not int(bool(response)))
def handle(options, args): """ `grok metrics` handler. """ try: action = args.pop(0) except IndexError: printHelpAndExit() (server, apikey) = grokcli.getCommonArgs(parser, args) grok = GrokSession(server=server, apikey=apikey) if action == "list": handleListRequest(grok, options.format, region=options.region, namespace=options.namespace, instance=options.instance) elif action == "unmonitor": if not options.id: printHelpAndExit() handleUnmonitorRequest(grok, options.id) else: printHelpAndExit()
def handle(options, args): """ `grok import` handler. """ (server, apikey) = grokcli.getCommonArgs(parser, args) if options.data: data = options.data else: # Pop data source off args try: data = args.pop(0) except IndexError: data = "-" grok = GrokSession(server=server, apikey=apikey) if data.strip() == "-": if select.select([sys.stdin,],[],[],0.0)[0]: importMetricsFromFile(grok, sys.stdin, **vars(options)) else: parser.print_help() sys.exit(1) elif data: with open(data, "r") as fp: importMetricsFromFile(grok, fp, **vars(options))
def handle(options, args): """ `grok autostacks` handler. """ try: resource = args.pop(0) action = args.pop(0) except IndexError: printHelpAndExit() (server, apikey) = grokcli.getCommonArgs(parser, args) grok = GrokSession(server=server, apikey=apikey) if resource == "stacks": if action == "list": handleListRequest(grok, options.format) elif action == "create": if not (options.region and options.filters): printHelpAndExit() filters = json.loads(options.filters) if options.preview: handlePreviewRequest(grok, options.format, options.region, filters) else: if not options.name: printHelpAndExit() handleCreateRequest(grok, options.name, options.region, filters) elif action == "delete": if not (options.id or (options.name and options.region)): printHelpAndExit() handleDeleteRequest(grok, options.id, options.name, options.region) else: printHelpAndExit() elif resource == "metrics": if not (options.id or (options.name and options.region)): printHelpAndExit() if action == "list": handleMetricsListRequest(grok, options.id, options.name, options.region, options.format) elif action == "add": if not (options.metricNamespace and options.metricName): printHelpAndExit() handleMetricsAddRequest(grok, options.id, options.name, options.region, options.metricNamespace, options.metricName) elif action == "remove": if not options.metricID: printHelpAndExit() handleMetricsRemoveRequest(grok, options.id, options.name, options.region, options.metricID) elif resource == "instances": if not (options.id or (options.name and options.region)): printHelpAndExit() if action == "list": handleInstancesListRequest(grok, options.id, options.name, options.region, options.format) else: printHelpAndExit()
def handle(options, args): """ `grok cloudwatch` handler. """ try: resource = args.pop(0) action = args.pop(0) except IndexError: printHelpAndExit() (server, apikey) = grokcli.getCommonArgs(parser, args) grok = GrokSession(server=server, apikey=apikey) if resource == "metrics": if action == "monitor": nativeMetric = { "datasource": "cloudwatch", "metric": options.metric, "namespace": options.namespace, "region": options.region } if hasattr(dimensions_callback, "dimensions"): nativeMetric["dimensions"] = dimensions_callback.dimensions else: printHelpAndExit() handleMetricsMonitorRequest(grok, nativeMetric) elif action == "unmonitor": if not (options.region and options.namespace and options.instance and options.metric): printHelpAndExit() handleMetricsUnmonitorRequest(grok, options.region, options.namespace, options.instance, options.metric) elif action == "list": handleMetricsListRequest( grok, options.format, region=options.region, namespace=options.namespace, metricName=options.metric, instance=options.instance) else: printHelpAndExit() elif resource == "instances": if action == "monitor": if not (options.region and options.namespace and options.instance): printHelpAndExit() handleInstanceMonitorRequest(grok, options.region, options.namespace, options.instance) elif action == "unmonitor": if not (options.region and options.namespace and options.instance): printHelpAndExit() handleInstanceUnmonitorRequest(grok, options.region, options.namespace, options.instance) elif action == "list": print "Not yet implemented" else: printHelpAndExit() else: printHelpAndExit()
def handle(options, args): """ `grok cloudwatch` handler. """ try: resource = args.pop(0) action = args.pop(0) except IndexError: printHelpAndExit() (server, apikey) = grokcli.getCommonArgs(parser, args) grok = GrokSession(server=server, apikey=apikey) if resource == "metrics": if action == "monitor": nativeMetric = { "datasource": "cloudwatch", "metric": options.metric, "namespace": options.namespace, "region": options.region } if hasattr(dimensions_callback, "dimensions"): nativeMetric["dimensions"] = dimensions_callback.dimensions else: printHelpAndExit() handleMetricsMonitorRequest(grok, nativeMetric) elif action == "unmonitor": if not (options.region and options.namespace and options.instance and options.metric): printHelpAndExit() handleMetricsUnmonitorRequest(grok, options.region, options.namespace, options.instance, options.metric) elif action == "list": handleMetricsListRequest(grok, options.format, region=options.region, namespace=options.namespace, metricName=options.metric, instance=options.instance) else: printHelpAndExit() elif resource == "instances": if action == "monitor": if not (options.region and options.namespace and options.instance): printHelpAndExit() handleInstanceMonitorRequest(grok, options.region, options.namespace, options.instance) elif action == "unmonitor": if not (options.region and options.namespace and options.instance): printHelpAndExit() handleInstanceUnmonitorRequest(grok, options.region, options.namespace, options.instance) elif action == "list": print "Not yet implemented" else: printHelpAndExit() else: printHelpAndExit()