def main()

in cstar/cstarparcli.py [0:0]


def main():
    namespace = parse_job_mode()

    if namespace.jmx_username and not namespace.jmx_passwordfile:
        namespace.jmx_password = getpass.getpass(prompt="JMX Password ")
    else:
        namespace.jmx_password = None

    if bool(namespace.seed_host) + bool(namespace.host) + bool(namespace.host_file) != 1:
        error("Exactly one of --seed-host, --host and --host-file must be used", print_traceback=False)

    hosts = None

    if namespace.host_file:
        with open(namespace.host_file) as f:
            hosts = f.readlines()

    if namespace.host:
        hosts = namespace.host

    cstar.output.configure(namespace.verbose)

    hosts_variables = dict()

    if namespace.hosts_variables:
        with open(namespace.hosts_variables) as f:
            hosts_variables = json.loads(f.read())

    with cstar.job.Job() as job:
        env = {}
        job_id = str(uuid.uuid4())
        msg("Job id is", emph(job_id))

        cstar.signalhandler.print_message_and_save_on_sigint(job, job_id)

        job.setup(
            hosts=hosts,
            seeds=namespace.seed_host,
            command=namespace.command,
            job_id=job_id,
            strategy=cstar.strategy.parse(fallback(namespace.strategy, "topology")),
            cluster_parallel=fallback(namespace.cluster_parallel, False),
            dc_parallel=fallback(namespace.dc_parallel, False),
            max_concurrency=namespace.max_concurrency,
            timeout=namespace.timeout,
            env=env,
            stop_after=namespace.stop_after,
            job_runner=cstar.jobrunner.LocalJobRunner,
            key_space=namespace.key_space,
            output_directory=namespace.output_directory,
            ignore_down_nodes=False,
            dc_filter=namespace.dc_filter,
            sleep_on_new_runner=namespace.ssh_pause_time,
            sleep_after_done=namespace.node_done_pause_time,
            ssh_username = namespace.ssh_username,
            ssh_password = namespace.ssh_password,
            ssh_identity_file = namespace.ssh_identity_file,
            ssh_lib=namespace.ssh_lib,
            use_sudo=namespace.use_sudo,
            sudo_args=namespace.sudo_args,
            jmx_username=namespace.jmx_username,
            jmx_password=namespace.jmx_password,
            jmx_passwordfile=namespace.jmx_passwordfile,
            resolve_hostnames=namespace.resolve_hostnames,
            hosts_variables=hosts_variables)
        job.run()