Ejemplo n.º 1
0
def _main(argv):
    """The main function for the 'task' subcommand"""

    # We must special case the 'dcos task exec' subcommand in order to
    # allow us to pass arguments to docopt in a more user-friendly
    # manner. Specifically, we need to be able to to pass arguments
    # beginning with "-" to the command we are trying to launch with
    # 'exec' without docopt trying to match them to a named parameter
    # for the 'dcos' command itself.
    if len(argv) > 1 and argv[1] == "exec":
        args = docopt_wrapper(
            default_doc("task_exec"),
            default_doc("task"),
            argv=argv[2:],
            version="dcos-task version {}".format(dcoscli.version),
            options_first=True,
            base_subcommand="task",
            subcommand="exec")
    else:
        args = docopt.docopt(
            default_doc("task"),
            argv=argv,
            version="dcos-task version {}".format(dcoscli.version))

    return cmds.execute(_cmds(), args)
Ejemplo n.º 2
0
def _main(argv):
    """The main function for the 'task' subcommand"""

    # We must special case the 'dcos task exec' subcommand in order to
    # allow us to pass arguments to docopt in a more user-friendly
    # manner. Specifically, we need to be able to to pass arguments
    # beginning with "-" to the command we are trying to launch with
    # 'exec' without docopt trying to match them to a named parameter
    # for the 'dcos' command itself.
    if len(argv) > 1 and argv[1] == "exec":
        args = docopt_wrapper(
            default_doc("task_exec"),
            default_doc("task"),
            argv=argv[2:],
            version="dcos-task version {}".format(dcoscli.version),
            options_first=True,
            base_subcommand="task",
            subcommand="exec")
    else:
        args = docopt.docopt(
            default_doc("task"),
            argv=argv,
            version="dcos-task version {}".format(dcoscli.version))

    return cmds.execute(_cmds(), args)
Ejemplo n.º 3
0
def _main(argv):
    args = docopt.docopt(
        default_doc("service"),
        argv=argv,
        version="dcos-service version {}".format(dcoscli.version))

    return cmds.execute(_cmds(), args)
Ejemplo n.º 4
0
def _main(argv):
    args = docopt.docopt(default_doc("experimental"),
                         argv=argv,
                         version='dcos-experimental version {}'.format(
                             dcoscli.version))
    http.silence_requests_warnings()
    return cmds.execute(_cmds(), args)
Ejemplo n.º 5
0
def _main():
    signal.signal(signal.SIGINT, signal_handler)

    http.silence_requests_warnings()
    config = util.get_config()
    set_ssl_info_env_vars(config)

    args = docopt.docopt(default_doc("dcos"), options_first=True)

    log_level = args['--log-level']
    if log_level and not _config_log_level_environ(log_level):
        return 1

    if args['--debug']:
        os.environ[constants.DCOS_DEBUG_ENV] = 'true'

    util.configure_process_from_environ()

    if args['--version']:
        return _get_versions(config.get("core.dcos_url"))

    command = args['<command>']

    if not command:
        command = "help"

    if command in subcommand.default_subcommands():
        sc = SubcommandMain(command, args['<args>'])
    else:
        executable = subcommand.command_executables(command)
        sc = subcommand.SubcommandProcess(
            executable, command, args['<args>'])

    exitcode, _ = sc.run_and_capture()
    return exitcode
Ejemplo n.º 6
0
def _main(argv):
    args = docopt.docopt(
        default_doc("marathon"),
        argv=argv,
        version='dcos-marathon version {}'.format(dcoscli.version))

    return cmds.execute(_cmds(), args)
Ejemplo n.º 7
0
def _main(argv):
    args = docopt.docopt(
        default_doc("experimental"),
        argv=argv,
        version='dcos-experimental version {}'.format(dcoscli.version))
    http.silence_requests_warnings()
    return cmds.execute(_cmds(), args)
Ejemplo n.º 8
0
def _main(argv):
    args = docopt.docopt(default_doc("service"),
                         argv=argv,
                         version="dcos-service version {}".format(
                             dcoscli.version))

    return cmds.execute(_cmds(), args)
Ejemplo n.º 9
0
def _command():
    """ Return the subcommand used in this dcos process.

    :returns: subcommand used in this dcos process
    :rtype: str
    """

    args = docopt.docopt(default_doc("dcos"), help=False, options_first=True)
    return args.get('<command>', "") or ""
Ejemplo n.º 10
0
def _command():
    """ Return the subcommand used in this dcos process.

    :returns: subcommand used in this dcos process
    :rtype: str
    """

    args = docopt.docopt(default_doc("dcos"),
                         help=False,
                         options_first=True)
    return args.get('<command>', "")
Ejemplo n.º 11
0
def _experimental(info):
    """
    :returns: process status
    :rtype: int
    """
    if info:
        emitter.publish(default_command_info("experimental"))
    else:
        doc = default_doc("package")
        emitter.publish(options.make_generic_usage_message(doc))
        return 1
    return 0
Ejemplo n.º 12
0
def _experimental(info):
    """
    :returns: process status
    :rtype: int
    """
    if info:
        emitter.publish(default_command_info("experimental"))
    else:
        doc = default_doc("package")
        emitter.publish(options.make_generic_usage_message(doc))
        return 1
    return 0
Ejemplo n.º 13
0
def _main(argv):

    for i, arg in enumerate(argv):
        if arg == '--show-failures':
            argv[i] = '--failures'
            warning = ("'--show-failures' is deprecated, "
                       "please use '--failures' instead.\n")
            emitter.publish(DefaultError(warning))

    args = docopt.docopt(default_doc("job"),
                         argv=argv,
                         version='dcos-job version {}'.format(dcoscli.version))

    return cmds.execute(_cmds(), args)
Ejemplo n.º 14
0
def _main(argv):
    args = docopt.docopt(default_doc("node"),
                         argv=argv,
                         version="dcos-node version {}".format(
                             dcoscli.version))

    if args.get('--master'):
        raise DCOSException(
            '--master has been deprecated. Please use --leader.')
    elif args.get('--slave'):
        raise DCOSException(
            '--slave has been deprecated. Please use --mesos-id.')

    return cmds.execute(_cmds(), args)
Ejemplo n.º 15
0
def _main(argv):
    args = docopt.docopt(
        default_doc("node"),
        argv=argv,
        version="dcos-node version {}".format(dcoscli.version))

    if args.get('--master'):
        raise DCOSException(
            '--master has been deprecated. Please use --leader.'
        )
    elif args.get('--slave'):
        raise DCOSException(
            '--slave has been deprecated. Please use --mesos-id.'
        )

    return cmds.execute(_cmds(), args)
Ejemplo n.º 16
0
def _main():
    signal.signal(signal.SIGINT, signal_handler)

    http.silence_requests_warnings()

    args = docopt.docopt(default_doc("dcos"), options_first=True)

    log_level = args['--log-level']
    if log_level and not _config_log_level_environ(log_level):
        return 1

    if args['--debug']:
        os.environ[constants.DCOS_DEBUG_ENV] = 'true'

    util.configure_process_from_environ()

    if args['--version']:
        return _get_versions()

    command = args['<command>']

    if not command:
        return dcos_help()

    if config.uses_deprecated_config():
        if constants.DCOS_CONFIG_ENV in os.environ:
            msg = ('{} is deprecated, please consider using '
                   '`dcos cluster setup <dcos_url>`.')
            err = errors.DefaultError(msg.format(constants.DCOS_CONFIG_ENV))
            emitter.publish(err)

        cluster.move_to_cluster_config()

    if command in subcommand.default_subcommands():
        sc = SubcommandMain(command, args['<args>'])
    else:
        executable = subcommand.command_executables(command)
        sc = subcommand.SubcommandProcess(executable, command, args['<args>'])

    exitcode, _ = sc.run_and_capture()
    return exitcode
Ejemplo n.º 17
0
def _main(argv):
    doc_name = 'cluster'

    # If a cluster is attached and the cluster linker API is reachable,
    # use cluster_ee.txt.
    dcos_url = config.get_config_val('core.dcos_url')
    if dcos_url:
        try:
            cluster.get_cluster_links(dcos_url)
            doc_name = 'cluster_ee'
        except Exception:
            pass

    args = docopt.docopt(
        default_doc(doc_name),
        argv=argv,
        version='dcos-cluster version {}'.format(dcoscli.version))

    http.silence_requests_warnings()

    return cmds.execute(_cmds(doc_name), args)
Ejemplo n.º 18
0
def _package(config_schema, info):
    """
    :param config_schema: Whether to output the config schema
    :type config_schema: boolean
    :param info: Whether to output a description of this subcommand
    :type info: boolean
    :returns: Process status
    :rtype: int
    """
    if config_schema:
        schema = json.loads(
            pkg_resources.resource_string(
                'dcos', 'data/config-schema/package.json').decode('utf-8'))
        emitter.publish(schema)
    elif info:
        emitter.publish(default_command_info("package"))
    else:
        doc = default_doc("package")
        emitter.publish(options.make_generic_usage_message(doc))
        return 1

    return 0
Ejemplo n.º 19
0
def _package(config_schema, info):
    """
    :param config_schema: Whether to output the config schema
    :type config_schema: boolean
    :param info: Whether to output a description of this subcommand
    :type info: boolean
    :returns: Process status
    :rtype: int
    """
    if config_schema:
        schema = json.loads(
            pkg_resources.resource_string(
                'dcoscli',
                'data/config-schema/package.json').decode('utf-8'))
        emitter.publish(schema)
    elif info:
        _info()
    else:
        doc = default_doc("package")
        emitter.publish(options.make_generic_usage_message(doc))
        return 1

    return 0
Ejemplo n.º 20
0
def _main():
    signal.signal(signal.SIGINT, signal_handler)

    args = docopt.docopt(
        default_doc("dcos"),
        version='dcos version {}'.format(dcoscli.version),
        options_first=True)

    log_level = args['--log-level']
    if log_level and not _config_log_level_environ(log_level):
        return 1

    if args['--debug']:
        os.environ[constants.DCOS_DEBUG_ENV] = 'true'

    util.configure_process_from_environ()

    if args['<command>'] != 'config' and \
       not auth.check_if_user_authenticated():
        auth.force_auth()

    config = util.get_config()
    set_ssl_info_env_vars(config)

    command = args['<command>']
    http.silence_requests_warnings()

    if not command:
        command = "help"

    cluster_id = None
    if dcoscli.version != 'SNAPSHOT' and command and \
            command not in ["config", "help"]:
        try:
            cluster_id = mesos.DCOSClient().metadata().get('CLUSTER_ID')
        except DCOSAuthenticationException:
                raise
        except:
            msg = 'Unable to get the cluster_id of the cluster.'
            logger.exception(msg)

    # send args call to segment.io
    with ThreadPoolExecutor(max_workers=2) as reporting_executor:
        analytics.segment_track_cli(reporting_executor, config, cluster_id)

        # the call to retrieve cluster_id must happen before we run the
        # subcommand so that if you have auth enabled we don't ask for
        # user/pass multiple times (with the text being out of order)
        # before we can cache the auth token
        if command in subcommand.default_subcommands():
            sc = SubcommandMain(command, args['<args>'])
        else:
            executable = subcommand.command_executables(command)
            sc = subcommand.SubcommandProcess(
                executable, command, args['<args>'])

        exitcode, err = sc.run_and_capture()

        if err:
            analytics.track_err(
                reporting_executor, exitcode, err, config, cluster_id)

        return exitcode
Ejemplo n.º 21
0
def _main():
    signal.signal(signal.SIGINT, signal_handler)

    args = docopt.docopt(default_doc("dcos"),
                         version='dcos version {}'.format(dcoscli.version),
                         options_first=True)

    log_level = args['--log-level']
    if log_level and not _config_log_level_environ(log_level):
        return 1

    if args['--debug']:
        os.environ[constants.DCOS_DEBUG_ENV] = 'true'

    util.configure_process_from_environ()

    if args['<command>'] != 'config' and \
       not auth.check_if_user_authenticated():
        auth.force_auth()

    config = util.get_config()
    set_ssl_info_env_vars(config)

    command = args['<command>']
    http.silence_requests_warnings()

    if not command:
        command = "help"

    cluster_id = None
    if dcoscli.version != 'SNAPSHOT' and command and \
            command not in ["config", "help"]:
        try:
            cluster_id = mesos.DCOSClient().metadata().get('CLUSTER_ID')
        except DCOSAuthenticationException:
            raise
        except:
            msg = 'Unable to get the cluster_id of the cluster.'
            logger.exception(msg)

    # send args call to segment.io
    with ThreadPoolExecutor(max_workers=2) as reporting_executor:
        analytics.segment_track_cli(reporting_executor, config, cluster_id)

        # the call to retrieve cluster_id must happen before we run the
        # subcommand so that if you have auth enabled we don't ask for
        # user/pass multiple times (with the text being out of order)
        # before we can cache the auth token
        if command in subcommand.default_subcommands():
            sc = SubcommandMain(command, args['<args>'])
        else:
            executable = subcommand.command_executables(command)
            sc = subcommand.SubcommandProcess(executable, command,
                                              args['<args>'])

        exitcode, err = sc.run_and_capture()

        if err:
            analytics.track_err(reporting_executor, exitcode, err, config,
                                cluster_id)

        return exitcode