def get_merlin_spec_with_override(args): """ Shared command to return the spec object. :param 'args': parsed CLI arguments """ filepath = verify_filepath(args.specification) variables_dict = parse_override_vars(args.variables) spec = get_spec_with_expansion(filepath, override_vars=variables_dict) return spec, filepath
def query_status(args): """ CLI command for querying queue status. :param 'args': parsed CLI arguments """ print(banner_small) filepath = verify_filepath(args.specification) variables_dict = parse_override_vars(args.variables) spec = get_spec_with_expansion(filepath, override_vars=variables_dict) ret = router.query_status(args.task_server, spec, args.steps) for name, jobs, consumers in ret: print(f"{name:30} - Workers: {consumers:10} - Queued Tasks: {jobs:10}") if args.csv is not None: router.dump_status(ret, args.csv)
def purge_tasks(args): """ CLI command for purging tasks. :param `args`: parsed CLI arguments """ print(banner_small) filepath = verify_filepath(args.specification) variables_dict = parse_override_vars(args.variables) spec = get_spec_with_expansion(filepath, override_vars=variables_dict) ret = router.purge_tasks( spec.merlin["resources"]["task_server"], spec, args.purge_force, args.purge_steps, ) LOG.info(f"Purge return = {ret} .")
def launch_workers(args): """ CLI command for launching workers. :param `args`: parsed CLI arguments """ if not args.worker_echo_only: print(banner_small) filepath = verify_filepath(args.specification) LOG.info(f"Launching workers from '{filepath}'") variables_dict = parse_override_vars(args.variables) spec = get_spec_with_expansion(filepath, override_vars=variables_dict) status = router.launch_workers(spec, args.worker_steps, args.worker_args, args.worker_echo_only) if args.worker_echo_only: print(status) else: LOG.info(status)