Пример #1
0
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)))
Пример #2
0
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))
Пример #3
0
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)))
Пример #4
0
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()
Пример #6
0
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()
Пример #7
0
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()
Пример #8
0
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)))
Пример #9
0
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)))
Пример #10
0
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()
Пример #11
0
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()
Пример #12
0
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()
Пример #14
0
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()
Пример #15
0
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()
Пример #16
0
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()