Exemplo n.º 1
0
def handle(options, args):
  """ `YOMP export` handler. """
  (server, apikey) = YOMPcli.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)

  YOMP = YOMPSession(server=server, apikey=apikey)

  if options.output is not None:
    outp = open(options.output, "w")
  else:
    outp = sys.stdout

  models = YOMP.exportModels()

  if models:
    try:
      print >> outp, dump(models)
    finally:
      outp.flush()
      if outp != sys.stdout:
        outp.close()
Exemplo n.º 2
0
def handle(options, args):
  """ `YOMP custom` handler. """
  try:
    resource = args.pop(0)
    action = args.pop(0)
  except IndexError:
    printHelpAndExit()

  (server, apikey) = YOMPcli.getCommonArgs(parser, args)

  YOMP = YOMPSession(server=server, apikey=apikey)

  if resource == "metrics":

    if action == "list":
      handleListRequest(YOMP, options.format)

    elif action == "monitor":
      if not options.id:
        printHelpAndExit()

      handleMonitorRequest(YOMP, options.id)

    elif action == "unmonitor":
      if not options.name:
        printHelpAndExit()

      handleUnmonitorRequest(YOMP, options.name)

    else:
      printHelpAndExit()

  else:
    printHelpAndExit()
Exemplo n.º 3
0
def handle(options, args):
    """ `YOMP custom` handler. """
    try:
        resource = args.pop(0)
        action = args.pop(0)
    except IndexError:
        printHelpAndExit()

    (server, apikey) = YOMPcli.getCommonArgs(parser, args)

    YOMP = YOMPSession(server=server, apikey=apikey)

    if resource == "metrics":

        if action == "list":
            handleListRequest(YOMP, options.format)

        elif action == "monitor":
            if not options.id:
                printHelpAndExit()

            handleMonitorRequest(YOMP, options.id)

        elif action == "unmonitor":
            if not options.name:
                printHelpAndExit()

            handleUnmonitorRequest(YOMP, options.name)

        else:
            printHelpAndExit()

    else:
        printHelpAndExit()
Exemplo n.º 4
0
def handle(options, args):
    """ `YOMP export` handler. """
    (server, apikey) = YOMPcli.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)

    YOMP = YOMPSession(server=server, apikey=apikey)

    if options.output is not None:
        outp = open(options.output, "w")
    else:
        outp = sys.stdout

    models = YOMP.exportModels()

    if models:
        try:
            print >> outp, dump(models)
        finally:
            outp.flush()
            if outp != sys.stdout:
                outp.close()
Exemplo n.º 5
0
def handle(options, args):
    """ `YOMP DELETE` handler. """
    (endpoint, apikey) = YOMPcli.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()

    YOMP = YOMPSession(server=server, apikey=apikey)

    delete = partial(YOMP.delete, endpoint)

    response = None
    if data.strip() == "-" or not data:
        if select.select([sys.stdin], [], [], 0.0)[0]:
            response = delete(data=sys.stdin)
        else:
            response = delete()
    elif data:
        with open(data, "r") as fp:
            response = delete(data=fp)

    if isinstance(response, Response):
        print response.text
        sys.exit(not int(bool(response)))
Exemplo n.º 6
0
def handle(options, args):
  """ `YOMP DELETE` handler. """
  (endpoint, apikey) = YOMPcli.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()

  YOMP = YOMPSession(server=server, apikey=apikey)

  delete = partial(YOMP.delete, endpoint)

  response = None
  if data.strip() == "-" or not data:
    if select.select([sys.stdin], [], [], 0.0)[0]:
      response = delete(data=sys.stdin)
    else:
      response = delete()
  elif data:
    with open(data, "r") as fp:
      response = delete(data=fp)

  if isinstance(response, Response):
    print response.text
    sys.exit(not int(bool(response)))
Exemplo n.º 7
0
Arquivo: GET.py Projeto: darian19/what
def handle(options, args):
  """ `YOMP GET` handler. """
  (endpoint, apikey) = YOMPcli.getCommonArgs(parser, args)

  server = "%(scheme)s://%(netloc)s" % urlparse(endpoint)._asdict()

  YOMP = YOMPSession(server=server, apikey=apikey)

  response = YOMP.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)))
Exemplo n.º 8
0
def handle(options, args):
    """ `YOMP GET` handler. """
    (endpoint, apikey) = YOMPcli.getCommonArgs(parser, args)

    server = "%(scheme)s://%(netloc)s" % urlparse(endpoint)._asdict()

    YOMP = YOMPSession(server=server, apikey=apikey)

    response = YOMP.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)))
Exemplo n.º 9
0
def handle(options, args):
  """ `YOMP metrics` handler. """
  try:
    action = args.pop(0)
  except IndexError:
    printHelpAndExit()

  (server, apikey) = YOMPcli.getCommonArgs(parser, args)

  YOMP = YOMPSession(server=server, apikey=apikey)

  if action == "list":
    handleListRequest(YOMP, options.format,
                      region=options.region, namespace=options.namespace,
                      instance=options.instance)
  elif action == "unmonitor":
    if not options.id:
      printHelpAndExit()

    handleUnmonitorRequest(YOMP, options.id)
  else:
    printHelpAndExit()
Exemplo n.º 10
0
def handle(options, args):
    """ `YOMP metrics` handler. """
    try:
        action = args.pop(0)
    except IndexError:
        printHelpAndExit()

    (server, apikey) = YOMPcli.getCommonArgs(parser, args)

    YOMP = YOMPSession(server=server, apikey=apikey)

    if action == "list":
        handleListRequest(
            YOMP, options.format, region=options.region, namespace=options.namespace, instance=options.instance
        )
    elif action == "unmonitor":
        if not options.id:
            printHelpAndExit()

        handleUnmonitorRequest(YOMP, options.id)
    else:
        printHelpAndExit()
Exemplo n.º 11
0
def handle(options, args):
  """ `YOMP import` handler. """
  (server, apikey) = YOMPcli.getCommonArgs(parser, args)

  if options.data:
    data = options.data
  else:
    # Pop data source off args
    try:
      data = args.pop(0)
    except IndexError:
      data = "-"

  YOMP = YOMPSession(server=server, apikey=apikey)

  if data.strip() == "-":
    if select.select([sys.stdin,],[],[],0.0)[0]:
      importMetricsFromFile(YOMP, sys.stdin, **vars(options))
    else:
      parser.print_help()
      sys.exit(1)
  elif data:
    with open(data, "r") as fp:
      importMetricsFromFile(YOMP, fp, **vars(options))
Exemplo n.º 12
0
def handle(options, args):
  """ `YOMP cloudwatch` handler. """
  try:
    resource = args.pop(0)
    action = args.pop(0)
  except IndexError:
    printHelpAndExit()

  (server, apikey) = YOMPcli.getCommonArgs(parser, args)

  YOMP = YOMPSession(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(YOMP, nativeMetric)

    elif action == "unmonitor":
      if not (options.region and options.namespace
              and options.instance and options.metric):
        printHelpAndExit()

      handleMetricsUnmonitorRequest(YOMP, options.region,
                                    options.namespace, options.instance,
                                    options.metric)

    elif action == "list":
      handleMetricsListRequest(
        YOMP,
        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(YOMP, options.region,
                                   options.namespace, options.instance)

    elif action == "unmonitor":
      if not (options.region and options.namespace and options.instance):
        printHelpAndExit()

      handleInstanceUnmonitorRequest(YOMP, options.region,
                                     options.namespace, options.instance)

    elif action == "list":
      print "Not yet implemented"

    else:
      printHelpAndExit()

  else:
    printHelpAndExit()
Exemplo n.º 13
0
def handle(options, args):
    """ `YOMP cloudwatch` handler. """
    try:
        resource = args.pop(0)
        action = args.pop(0)
    except IndexError:
        printHelpAndExit()

    (server, apikey) = YOMPcli.getCommonArgs(parser, args)

    YOMP = YOMPSession(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(YOMP, nativeMetric)

        elif action == "unmonitor":
            if not (options.region and options.namespace and options.instance
                    and options.metric):
                printHelpAndExit()

            handleMetricsUnmonitorRequest(YOMP, options.region,
                                          options.namespace, options.instance,
                                          options.metric)

        elif action == "list":
            handleMetricsListRequest(YOMP,
                                     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(YOMP, options.region,
                                         options.namespace, options.instance)

        elif action == "unmonitor":
            if not (options.region and options.namespace and options.instance):
                printHelpAndExit()

            handleInstanceUnmonitorRequest(YOMP, options.region,
                                           options.namespace, options.instance)

        elif action == "list":
            print "Not yet implemented"

        else:
            printHelpAndExit()

    else:
        printHelpAndExit()
Exemplo n.º 14
0
def handle(options, args):
  """ `YOMP autostacks` handler. """
  try:
    resource = args.pop(0)
    action = args.pop(0)
  except IndexError:
    printHelpAndExit()

  (server, apikey) = YOMPcli.getCommonArgs(parser, args)

  YOMP = YOMPSession(server=server, apikey=apikey)

  if resource == "stacks":

    if action == "list":
      handleListRequest(YOMP, options.format)

    elif action == "create":
      if not (options.region and options.filters):
        printHelpAndExit()

      filters = json.loads(options.filters)

      if options.preview:
        handlePreviewRequest(YOMP, options.format,
                             options.region, filters)
      else:
        if not options.name:
          printHelpAndExit()

        handleCreateRequest(YOMP,
                            options.name, options.region, filters)

    elif action == "delete":
      if not (options.id or (options.name and options.region)):
        printHelpAndExit()

      handleDeleteRequest(YOMP, 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(YOMP,
                               options.id,
                               options.name,
                               options.region,
                               options.format)

    elif action == "add":
      if not (options.metricNamespace and options.metricName):
        printHelpAndExit()

      handleMetricsAddRequest(YOMP,
                              options.id,
                              options.name,
                              options.region,
                              options.metricNamespace,
                              options.metricName)

    elif action == "remove":
      if not options.metricID:
        printHelpAndExit()

      handleMetricsRemoveRequest(YOMP,
                                 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(YOMP,
                                 options.id,
                                 options.name,
                                 options.region,
                                 options.format)

  else:
    printHelpAndExit()
Exemplo n.º 15
0
def handle(options, args):
    """ `YOMP autostacks` handler. """
    try:
        resource = args.pop(0)
        action = args.pop(0)
    except IndexError:
        printHelpAndExit()

    (server, apikey) = YOMPcli.getCommonArgs(parser, args)

    YOMP = YOMPSession(server=server, apikey=apikey)

    if resource == "stacks":

        if action == "list":
            handleListRequest(YOMP, options.format)

        elif action == "create":
            if not (options.region and options.filters):
                printHelpAndExit()

            filters = json.loads(options.filters)

            if options.preview:
                handlePreviewRequest(YOMP, options.format, options.region,
                                     filters)
            else:
                if not options.name:
                    printHelpAndExit()

                handleCreateRequest(YOMP, options.name, options.region,
                                    filters)

        elif action == "delete":
            if not (options.id or (options.name and options.region)):
                printHelpAndExit()

            handleDeleteRequest(YOMP, 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(YOMP, options.id, options.name,
                                     options.region, options.format)

        elif action == "add":
            if not (options.metricNamespace and options.metricName):
                printHelpAndExit()

            handleMetricsAddRequest(YOMP, options.id, options.name,
                                    options.region, options.metricNamespace,
                                    options.metricName)

        elif action == "remove":
            if not options.metricID:
                printHelpAndExit()

            handleMetricsRemoveRequest(YOMP, 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(YOMP, options.id, options.name,
                                       options.region, options.format)

    else:
        printHelpAndExit()
Exemplo n.º 16
0
def importMetricsFromFile(YOMP, fp, **kwargs):
  models = YOMPcli.load(fp.read())
  result = YOMP.createModels(models)