def test_log_run_dir(start_stop_cli, project_without_dependencies): project = project_without_dependencies cli = start_stop_cli patch_init_to_log_lines(project, LOG_LINES) INSTANCE1 = 'instance-1' INSTANCE2 = 'instance-2' ID1 = project.get_instance_id(INSTANCE1) ID2 = project.get_instance_id(INSTANCE2) RUN_DIR = 'my-run-dir' write_conf(project.get_cfg_path(), { ID1: {}, ID2: {}, }) # start instance-1 and instance-2 cli.start(project, run_dir=RUN_DIR, daemonized=True) check_instances_running(cli, project, [INSTANCE1, INSTANCE2], run_dir=RUN_DIR, daemonized=True) # get logs logs = cli.get_logs(project, run_dir=RUN_DIR) assert len(logs) == 2 assert_instance_logs(logs, ID1, LOG_LINES) assert_instance_logs(logs, ID2, LOG_LINES)
def test_log_last_n_lines(start_stop_cli, project_with_patched_init): project = project_with_patched_init cli = start_stop_cli log_lines = ["I am log line number {}".format(i) for i in range(DEFAULT_LAST_N_LINES+5)] patch_init_to_log_lines(project, log_lines) INSTANCE1 = 'instance-1' INSTANCE2 = 'instance-2' ID1 = get_instance_id(project.name, INSTANCE1) ID2 = get_instance_id(project.name, INSTANCE2) STATEBOARD_ID = get_stateboard_name(project.name) # start instance-1 and instance-2 cli.start(project, [INSTANCE1, INSTANCE2], stateboard=True, daemonized=True) check_instances_running(cli, project, [INSTANCE1, INSTANCE2], stateboard=True, daemonized=True) # get logs w/o -n logs = cli.get_logs(project, [INSTANCE1, INSTANCE2], stateboard=True) assert len(logs) == 3 assert_instance_logs(logs, ID1, log_lines[-DEFAULT_LAST_N_LINES:]) assert_instance_logs(logs, ID2, log_lines[-DEFAULT_LAST_N_LINES:]) assert_instance_logs(logs, STATEBOARD_ID, log_lines[-DEFAULT_LAST_N_LINES:]) # get logs w/ -n > log lines count logs = cli.get_logs(project, [INSTANCE1, INSTANCE2], stateboard=True, n=len(log_lines)*2) assert len(logs) == 3 assert_instance_logs(logs, ID1, log_lines) assert_instance_logs(logs, ID2, log_lines) assert_instance_logs(logs, STATEBOARD_ID, log_lines) # get logs w/ -n0 logs = cli.get_logs(project, [INSTANCE1, INSTANCE2], stateboard=True, n=0) assert len(logs) == 3 assert_instance_logs(logs, ID1, log_lines) assert_instance_logs(logs, ID2, log_lines) assert_instance_logs(logs, STATEBOARD_ID, log_lines) # get logs w/ -n1 logs = cli.get_logs(project, [INSTANCE1, INSTANCE2], stateboard=True, n=1) assert len(logs) == 3 assert_instance_logs(logs, ID1, log_lines[-1:]) assert_instance_logs(logs, ID2, log_lines[-1:]) assert_instance_logs(logs, STATEBOARD_ID, log_lines[-1:]) # get logs w/ -n5 logs = cli.get_logs(project, [INSTANCE1, INSTANCE2], stateboard=True, n=5) assert len(logs) == 3 assert_instance_logs(logs, ID1, log_lines[-5:]) assert_instance_logs(logs, ID2, log_lines[-5:]) assert_instance_logs(logs, STATEBOARD_ID, log_lines[-5:]) # get logs w/ -n -5 logs = cli.get_logs(project, [INSTANCE1, INSTANCE2], stateboard=True, n=5) assert len(logs) == 3 assert_instance_logs(logs, ID1, log_lines[-5:]) assert_instance_logs(logs, ID2, log_lines[-5:]) assert_instance_logs(logs, STATEBOARD_ID, log_lines[-5:])
def test_log_by_name(start_stop_cli, project_with_patched_init): project = project_with_patched_init cli = start_stop_cli patch_init_to_log_lines(project, LOG_LINES) INSTANCE1 = 'instance-1' INSTANCE2 = 'instance-2' ID1 = get_instance_id(project.name, INSTANCE1) ID2 = get_instance_id(project.name, INSTANCE2) STATEBOARD_ID = get_stateboard_name(project.name) # start instance-1 and instance-2 cli.start(project, [INSTANCE1, INSTANCE2], stateboard=True, daemonized=True) check_instances_running(cli, project, [INSTANCE1, INSTANCE2], stateboard=True, daemonized=True) # get logs w/o stateboard logs = cli.get_logs(project, [INSTANCE1, INSTANCE2]) assert len(logs) == 2 assert_instance_logs(logs, ID1, LOG_LINES) assert_instance_logs(logs, ID2, LOG_LINES) # get logs w/ stateboard logs = cli.get_logs(project, [INSTANCE1, INSTANCE2], stateboard=True) assert len(logs) == 3 assert_instance_logs(logs, ID1, LOG_LINES) assert_instance_logs(logs, ID2, LOG_LINES) assert_instance_logs(logs, STATEBOARD_ID, LOG_LINES) # get logs stateboard-only logs = cli.get_logs(project, stateboard_only=True) assert len(logs) == 1 assert_instance_logs(logs, STATEBOARD_ID, LOG_LINES)
def test_log_run_dir(start_stop_cli, project_with_patched_init): project = project_with_patched_init cli = start_stop_cli patch_init_to_log_lines(project, LOG_LINES) INSTANCE1 = 'instance-1' INSTANCE2 = 'instance-2' ID1 = get_instance_id(project.name, INSTANCE1) ID2 = get_instance_id(project.name, INSTANCE2) RUN_DIR = 'my-log-dir' write_conf(os.path.join(project.path, DEFAULT_CFG), { ID1: {}, ID2: {}, }) # start instance-1 and instance-2 cli.start(project, run_dir=RUN_DIR, daemonized=True) check_instances_running(cli, project, [INSTANCE1, INSTANCE2], run_dir=RUN_DIR, daemonized=True) # get logs logs = cli.get_logs(project, run_dir=RUN_DIR) assert len(logs) == 2 assert_instance_logs(logs, ID1, LOG_LINES) assert_instance_logs(logs, ID2, LOG_LINES)
def test_log_from_conf(start_stop_cli, project_without_dependencies): project = project_without_dependencies cli = start_stop_cli patch_init_to_log_lines(project, LOG_LINES) INSTANCE1 = 'instance-1' INSTANCE2 = 'instance-2' ID1 = project.get_instance_id(INSTANCE1) ID2 = project.get_instance_id(INSTANCE2) STATEBOARD_ID = project.get_stateboard_id() write_conf(project.get_cfg_path(), { ID1: {}, ID2: {}, }) # start instance-1 and instance-2 cli.start(project, [INSTANCE1, INSTANCE2], stateboard=True, daemonized=True) check_instances_running(cli, project, [INSTANCE1, INSTANCE2], stateboard=True, daemonized=True) # get logs w/o stateboard logs = cli.get_logs(project) assert len(logs) == 2 assert_instance_logs(logs, ID1, LOG_LINES) assert_instance_logs(logs, ID2, LOG_LINES) # get logs w/ stateboard logs = cli.get_logs(project, stateboard=True) assert len(logs) == 3 assert_instance_logs(logs, ID1, LOG_LINES) assert_instance_logs(logs, ID2, LOG_LINES) assert_instance_logs(logs, STATEBOARD_ID, LOG_LINES) # get logs stateboard-only logs = cli.get_logs(project, stateboard_only=True) assert len(logs) == 1 assert_instance_logs(logs, STATEBOARD_ID, LOG_LINES)