Ejemplo n.º 1
0
def test_start_stop_from_conf_with_stateboard(start_stop_cli,
                                              project_without_dependencies):
    project = project_without_dependencies
    cli = start_stop_cli

    INSTANCE1 = 'instance-1'
    INSTANCE2 = 'instance-2'

    write_conf(
        project.get_cfg_path(), {
            project.get_instance_id(INSTANCE1): {},
            project.get_instance_id(INSTANCE2): {},
        })

    # start instances
    cli.start(project, daemonized=True, stateboard=True)
    check_instances_running(cli,
                            project, [INSTANCE1, INSTANCE2],
                            daemonized=True,
                            stateboard=True)

    # stop instances
    cli.stop(project, stateboard=True)
    check_instances_stopped(cli,
                            project, [INSTANCE1, INSTANCE2],
                            stateboard=True)
Ejemplo n.º 2
0
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)
Ejemplo n.º 3
0
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)
Ejemplo n.º 4
0
def test_setup_file_specified(project_with_instances, cartridge_cmd):
    project = project_with_instances.project
    instances = project_with_instances.instances

    router = instances['router']

    admin_api_url = router.get_admin_api_url()

    rpl_cfg_path = project.get_replicasets_cfg_path('my-replicasets.yml')

    # create router replicaset
    rpl_cfg = {
        'router': {
            'roles':
            ['vshard-router', 'app.roles.custom', 'failover-coordinator'],
            'instances': [router.name],
        }
    }

    write_conf(rpl_cfg_path, rpl_cfg)

    cmd = [
        cartridge_cmd,
        'replicasets',
        'setup',
        '--file',
        rpl_cfg_path,
    ]

    rc, output = run_command_and_get_output(cmd, cwd=project.path)
    assert rc == 0

    assert_replicasets(rpl_cfg, admin_api_url)
    assert_setup_logs(output, rpl_cfg_path, created_rpls=['router'])
Ejemplo n.º 5
0
def test_start_stop_status_cfg(cartridge_cmd, project_with_patched_init):
    project = project_with_patched_init
    cli = Cli(cartridge_cmd)

    ID1 = get_instance_id(project.name, 'instance-1')
    ID2 = get_instance_id(project.name, 'instance-2')
    CFG = 'my-conf.yml'

    write_conf(os.path.join(project.path, CFG), {
        ID1: {},
        ID2: {},
    })

    status = cli.get_status(project, cfg=CFG)
    assert status.get(ID1) == STATUS_NOT_STARTED
    assert status.get(ID2) == STATUS_NOT_STARTED

    cli.start(project, stateboard=True, daemonized=True, cfg=CFG)
    check_instances_running(
        cli, project,
        [ID1, ID2],
        stateboard=True, cfg=CFG,
        daemonized=True,
    )

    status = cli.get_status(project, cfg=CFG)
    assert status.get(ID1) == STATUS_RUNNING
    assert status.get(ID2) == STATUS_RUNNING

    cli.stop(project, stateboard=True, cfg=CFG)
    check_instances_stopped(cli, project, [ID1, ID2])

    status = cli.get_status(project, cfg=CFG)
    assert status.get(ID1) == STATUS_STOPPED
    assert status.get(ID2) == STATUS_STOPPED
Ejemplo n.º 6
0
def test_start_stop_stateboard_from_conf(start_stop_cli,
                                         project_without_dependencies):
    project = project_without_dependencies
    cli = start_stop_cli

    INSTANCE1 = 'instance-1'
    INSTANCE2 = 'instance-2'

    write_conf(project.get_cli_cfg_path(), {
        'stateboard': True,
    })

    cli.start(project, [INSTANCE1], daemonized=True)
    check_instances_running(cli, project, [INSTANCE1], daemonized=True)

    cli.stop(project, [INSTANCE1], stateboard=True)
    check_instances_stopped(cli, project, [INSTANCE1], stateboard=True)

    write_conf(project.get_cli_cfg_path(), {
        'stateboard': False,
    })

    cli.start(project, [INSTANCE1, INSTANCE2], daemonized=True)
    check_instances_running(cli,
                            project, [INSTANCE1, INSTANCE2],
                            daemonized=True)

    cli.stop(project, [INSTANCE1, INSTANCE2])
    check_instances_stopped(cli, project, [INSTANCE1, INSTANCE2])
Ejemplo n.º 7
0
 def edit_setting(self,but,conf,alarmHandlerWindow):
   lk = but.index
   key = but.key
   localStr = simpledialog.askstring("Input", "New setting value: ",parent = self.buttons[lk]) 
   if localStr != None:
     conf[key] = localStr
     u.write_conf(conf)
     self.buttons[lk].button.config(text = localStr)
     print(conf)
     self.update_settings(alarmHandlerWindow)
def test_list_with_zones(cartridge_cmd, project_with_instances):
    project = project_with_instances.project
    instances = project_with_instances.instances

    if project.name == 'my-old-project':
        pytest.skip("Old cartridge doesn't support zones")

    router = instances['router']
    s1_master = instances['s1-master']
    s1_replica = instances['s1-replica']
    s1_replica2 = instances['s1-replica-2']

    # setup replicasets
    rpl_cfg_path = project.get_replicasets_cfg_path()
    rpl_cfg = {
        'router': {
            'roles':
            ['vshard-router', 'app.roles.custom', 'failover-coordinator'],
            'instances': [router.name],
        },
        's-1': {
            'roles': ['vshard-storage'],
            'instances': [s1_master.name, s1_replica.name, s1_replica2.name],
            'vshard_group': 'hot',
        },
    }

    write_conf(rpl_cfg_path, rpl_cfg)

    cmd = [
        cartridge_cmd,
        'replicasets',
        'setup',
    ]

    rc, output = run_command_and_get_output(cmd, cwd=project.path)
    assert rc == 0

    # set storages zones
    admin_api_url = router.get_admin_api_url()
    set_instance_zone(admin_api_url, router.name, "Mordor")
    set_instance_zone(admin_api_url, s1_master.name, "Hogwarts")
    set_instance_zone(admin_api_url, s1_replica.name, "Narnia")

    # get current topology
    cmd = [
        cartridge_cmd,
        'replicasets',
        'list',
    ]

    rc, output = run_command_and_get_output(cmd, cwd=project.path)
    assert rc == 0

    assert output.strip() == """• Current replica sets:
Ejemplo n.º 9
0
def test_start_interactive_from_conf_stateboard_only(start_stop_cli, project_with_patched_init):
    project = project_with_patched_init
    cli = start_stop_cli

    INSTANCE1 = 'instance-1'
    INSTANCE2 = 'instance-2'

    write_conf(os.path.join(project.path, DEFAULT_CFG), {
        get_instance_id(project.name, INSTANCE1): {},
        get_instance_id(project.name, INSTANCE2): {},
    })

    # start instances
    cli.start(project, stateboard_only=True)
    check_instances_running(cli, project, stateboard_only=True)
Ejemplo n.º 10
0
def test_start_interactive_from_conf(cartridge_cmd, project_with_patched_init):
    project = project_with_patched_init
    cli = Cli(cartridge_cmd)

    ID1 = get_instance_id(project.name, 'instance-1')
    ID2 = get_instance_id(project.name, 'instance-2')

    write_conf(os.path.join(project.path, DEFAULT_CFG), {
        ID1: {},
        ID2: {},
    })

    # start instances
    cli.start(project)
    check_instances_running(cli, project, [ID1, ID2])
def test_list(cartridge_cmd, project_with_instances):
    project = project_with_instances.project
    instances = project_with_instances.instances

    router = instances['router']
    s1_master = instances['s1-master']
    s1_replica = instances['s1-replica']
    s1_replica2 = instances['s1-replica-2']

    # setup replicasets
    rpl_cfg_path = project.get_replicasets_cfg_path()
    rpl_cfg = {
        'router': {
            'roles':
            ['vshard-router', 'app.roles.custom', 'failover-coordinator'],
            'instances': [router.name],
        },
        's-1': {
            'roles': ['vshard-storage'],
            'instances': [s1_master.name, s1_replica.name, s1_replica2.name],
            'weight': 1.234,
            'vshard_group': 'hot',
            'all_rw': True,
        },
    }

    write_conf(rpl_cfg_path, rpl_cfg)

    cmd = [
        cartridge_cmd,
        'replicasets',
        'setup',
    ]

    rc, output = run_command_and_get_output(cmd, cwd=project.path)
    assert rc == 0

    # get current topology
    cmd = [
        cartridge_cmd,
        'replicasets',
        'list',
    ]

    rc, output = run_command_and_get_output(cmd, cwd=project.path)
    assert rc == 0

    assert output.strip() == """• Current replica sets:
Ejemplo n.º 12
0
def test_start_interactive_from_conf_stateboard_only(
        start_stop_cli, project_without_dependencies):
    project = project_without_dependencies
    cli = start_stop_cli

    INSTANCE1 = 'instance-1'
    INSTANCE2 = 'instance-2'

    write_conf(
        project.get_cfg_path(), {
            project.get_instance_id(INSTANCE1): {},
            project.get_instance_id(INSTANCE2): {},
        })

    # start instances
    cli.start(project, stateboard_only=True)
    check_instances_running(cli, project, stateboard_only=True)
Ejemplo n.º 13
0
def test_start_stop_status_run_dir_from_conf(start_stop_cli,
                                             project_without_dependencies):
    project = project_without_dependencies
    cli = start_stop_cli

    INSTANCE1 = 'instance-1'
    INSTANCE2 = 'instance-2'

    ID1 = project.get_instance_id(INSTANCE1)
    ID2 = project.get_instance_id(INSTANCE2)
    STATEBOARD_ID = project.get_stateboard_id()

    RUN_DIR = 'my-run'

    write_conf(project.get_cli_cfg_path(), {
        'run-dir': RUN_DIR,
    })

    status = cli.get_status(project, [INSTANCE1, INSTANCE2], stateboard=True)
    assert status.get(ID1) == STATUS_NOT_STARTED
    assert status.get(ID2) == STATUS_NOT_STARTED

    cli.start(project, [INSTANCE1], stateboard=True, daemonized=True)
    check_instances_running(cli,
                            project, [INSTANCE1],
                            stateboard=True,
                            run_dir=RUN_DIR,
                            daemonized=True)

    status = cli.get_status(project, [INSTANCE1, INSTANCE2], stateboard=True)
    assert len(status) == 3
    assert status.get(ID1) == STATUS_RUNNING
    assert status.get(ID2) == STATUS_NOT_STARTED
    assert status.get(STATEBOARD_ID) == STATUS_RUNNING

    cli.stop(project, [INSTANCE1], stateboard=True)
    check_instances_stopped(cli,
                            project, [INSTANCE1],
                            stateboard=True,
                            run_dir=RUN_DIR)

    status = cli.get_status(project, [INSTANCE1, INSTANCE2], stateboard=True)
    assert len(status) == 3
    assert status.get(ID1) == STATUS_STOPPED
    assert status.get(ID2) == STATUS_NOT_STARTED
    assert status.get(STATEBOARD_ID) == STATUS_STOPPED
Ejemplo n.º 14
0
def test_start_script_from_conf(start_stop_cli, project_without_dependencies):
    project = project_without_dependencies
    cli = start_stop_cli

    INSTANCE1 = 'instance-1'
    INSTANCE2 = 'instance-2'

    SCRIPT = 'my-init.lua'
    shutil.copyfile(project.get_script(), os.path.join(project.path, SCRIPT))

    write_conf(project.get_cli_cfg_path(), {
        'script': SCRIPT,
    })

    cli.start(project, [INSTANCE1, INSTANCE2], stateboard=True)
    check_instances_running(cli,
                            project, [INSTANCE1, INSTANCE2],
                            stateboard=True)
Ejemplo n.º 15
0
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)
Ejemplo n.º 16
0
def test_start_interactive_cfg(cartridge_cmd, project_with_patched_init):
    project = project_with_patched_init
    cli = Cli(cartridge_cmd)

    ID1 = get_instance_id(project.name, 'instance-1')
    ID2 = get_instance_id(project.name, 'instance-2')
    CFG = 'my-conf.yml'

    write_conf(os.path.join(project.path, CFG), {
        ID1: {},
        ID2: {},
    })

    cli.start(project, stateboard=True, cfg=CFG)
    check_instances_running(
        cli, project,
        [ID1, ID2],
        stateboard=True, cfg=CFG
    )
Ejemplo n.º 17
0
def test_start_stop_from_conf_with_stateboard(start_stop_cli, project_with_patched_init):
    project = project_with_patched_init
    cli = start_stop_cli

    INSTANCE1 = 'instance-1'
    INSTANCE2 = 'instance-2'

    write_conf(os.path.join(project.path, DEFAULT_CFG), {
        get_instance_id(project.name, INSTANCE1): {},
        get_instance_id(project.name, INSTANCE2): {},
    })

    # start instances
    cli.start(project, daemonized=True, stateboard=True)
    check_instances_running(cli, project, [INSTANCE1, INSTANCE2], daemonized=True, stateboard=True)

    # stop instances
    cli.stop(project, stateboard=True)
    check_instances_stopped(cli, project, [INSTANCE1, INSTANCE2], stateboard=True)
Ejemplo n.º 18
0
def test_start_data_dir_from_conf(start_stop_cli, project_with_patched_init):
    project = project_with_patched_init
    cli = start_stop_cli

    INSTANCE1 = 'instance-1'
    INSTANCE2 = 'instance-2'

    DATA_DIR = 'my-data'

    write_conf(os.path.join(project.path, CARTRIDGE_CONF), {
        'data-dir': DATA_DIR,
    })

    cli.start(project, [INSTANCE1, INSTANCE2], stateboard=True)
    check_instances_running(
        cli, project,
        [INSTANCE1, INSTANCE2],
        stateboard=True, data_dir=DATA_DIR
    )
Ejemplo n.º 19
0
def test_start_stop_from_conf_stateboard_only(cartridge_cmd, project_with_patched_init):
    project = project_with_patched_init
    cli = Cli(cartridge_cmd)

    ID1 = get_instance_id(project.name, 'instance-1')
    ID2 = get_instance_id(project.name, 'instance-2')

    write_conf(os.path.join(project.path, DEFAULT_CFG), {
        ID1: {},
        ID2: {},
    })

    # start instances
    cli.start(project, daemonized=True, stateboard_only=True)
    check_instances_running(cli, project, daemonized=True, stateboard_only=True)

    # stop instances
    cli.stop(project, stateboard=True)
    check_instances_stopped(cli, project, stateboard_only=True)
Ejemplo n.º 20
0
def test_start_data_dir_from_conf(start_stop_cli,
                                  project_without_dependencies):
    project = project_without_dependencies
    cli = start_stop_cli

    INSTANCE1 = 'instance-1'
    INSTANCE2 = 'instance-2'

    DATA_DIR = 'my-data'

    write_conf(project.get_cli_cfg_path(), {
        'data-dir': DATA_DIR,
    })

    cli.start(project, [INSTANCE1, INSTANCE2], stateboard=True)
    check_instances_running(cli,
                            project, [INSTANCE1, INSTANCE2],
                            stateboard=True,
                            data_dir=DATA_DIR)
Ejemplo n.º 21
0
def test_start_script_from_conf(start_stop_cli, project_with_patched_init):
    project = project_with_patched_init
    cli = start_stop_cli

    INSTANCE1 = 'instance-1'
    INSTANCE2 = 'instance-2'

    SCRIPT = 'my-init.lua'
    shutil.copyfile(os.path.join(project.path, DEFAULT_SCRIPT), os.path.join(project.path, SCRIPT))

    write_conf(os.path.join(project.path, CARTRIDGE_CONF), {
        'script': SCRIPT,
    })

    cli.start(project, [INSTANCE1, INSTANCE2], stateboard=True)
    check_instances_running(
        cli, project,
        [INSTANCE1, INSTANCE2],
        stateboard=True, script=SCRIPT
    )
Ejemplo n.º 22
0
def test_start_log_dir_from_conf(start_stop_cli, project_with_patched_init):
    project = project_with_patched_init
    cli = start_stop_cli

    INSTANCE1 = 'instance-1'
    INSTANCE2 = 'instance-2'

    LOG_DIR = 'my-log-dir'

    write_conf(os.path.join(project.path, CARTRIDGE_CONF), {
        'log-dir': LOG_DIR,
    })

    cli.start(project, [INSTANCE1, INSTANCE2], daemonized=True, stateboard=True)
    check_instances_running(
        cli, project,
        [INSTANCE1, INSTANCE2],
        daemonized=True,
        stateboard=True, log_dir=LOG_DIR
    )
Ejemplo n.º 23
0
def test_start_stop_status_cfg(start_stop_cli, project_without_dependencies):
    project = project_without_dependencies
    cli = start_stop_cli

    INSTANCE1 = 'instance-1'
    INSTANCE2 = 'instance-2'

    ID1 = project.get_instance_id(INSTANCE1)
    ID2 = project.get_instance_id(INSTANCE2)

    CFG = 'my-conf.yml'

    write_conf(project.get_cfg_path(CFG), {
        ID1: {},
        ID2: {},
    })

    status = cli.get_status(project, cfg=CFG)
    assert status.get(ID1) == STATUS_NOT_STARTED
    assert status.get(ID2) == STATUS_NOT_STARTED

    cli.start(project, stateboard=True, daemonized=True, cfg=CFG)
    check_instances_running(
        cli,
        project,
        [INSTANCE1, INSTANCE2],
        stateboard=True,
        cfg=CFG,
        daemonized=True,
    )

    status = cli.get_status(project, cfg=CFG)
    assert status.get(ID1) == STATUS_RUNNING
    assert status.get(ID2) == STATUS_RUNNING

    cli.stop(project, stateboard=True, cfg=CFG)
    check_instances_stopped(cli, project, [INSTANCE1, INSTANCE2])

    status = cli.get_status(project, cfg=CFG)
    assert status.get(ID1) == STATUS_STOPPED
    assert status.get(ID2) == STATUS_STOPPED
Ejemplo n.º 24
0
def test_clean_cfg(start_stop_cli, project_without_dependencies):
    project = project_without_dependencies
    cli = start_stop_cli

    INSTANCE1 = 'instance-1'
    INSTANCE2 = 'instance-2'

    cfg = 'my-conf.yml'

    write_conf(
        os.path.join(project.path, cfg), {
            project.get_instance_id(INSTANCE1): {},
            project.get_instance_id(INSTANCE2): {},
        })

    # --cfg
    create_instances_files(project, [INSTANCE1, INSTANCE2], stateboard=True)
    logs = cli.clean(project, stateboard=True, cfg=cfg)
    assert_files_cleaned(project, [INSTANCE1, INSTANCE2],
                         stateboard=True,
                         logs=logs)
Ejemplo n.º 25
0
def test_clean_cfg(start_stop_cli, project_with_patched_init):
    project = project_with_patched_init
    cli = start_stop_cli

    INSTANCE1 = 'instance-1'
    INSTANCE2 = 'instance-2'

    cfg = 'my-conf.yml'

    write_conf(
        os.path.join(project.path, cfg), {
            get_instance_id(project.name, INSTANCE1): {},
            get_instance_id(project.name, INSTANCE2): {},
        })

    # --cfg
    create_instances_files(project, [INSTANCE1, INSTANCE2])
    logs = cli.clean(project, stateboard=True, cfg=cfg)
    assert_files_cleaned(project, [INSTANCE1, INSTANCE2],
                         stateboard=True,
                         logs=logs)
Ejemplo n.º 26
0
def test_start_log_dir_from_conf(start_stop_cli, project_without_dependencies):
    project = project_without_dependencies
    cli = start_stop_cli

    INSTANCE1 = 'instance-1'
    INSTANCE2 = 'instance-2'

    LOG_DIR = 'my-log-dir'

    write_conf(project.get_cli_cfg_path(), {
        'log-dir': LOG_DIR,
    })

    cli.start(project, [INSTANCE1, INSTANCE2],
              daemonized=True,
              stateboard=True)
    check_instances_running(cli,
                            project, [INSTANCE1, INSTANCE2],
                            daemonized=True,
                            stateboard=True,
                            log_dir=LOG_DIR)
Ejemplo n.º 27
0
def test_log_from_conf(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)

    write_conf(os.path.join(project.path, DEFAULT_CFG), {
        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)
Ejemplo n.º 28
0
def test_start_stop_status_run_dir_from_conf(start_stop_cli, project_with_patched_init):
    project = project_with_patched_init
    cli = start_stop_cli

    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)

    RUN_DIR = 'my-run'

    write_conf(os.path.join(project.path, CARTRIDGE_CONF), {
        'run-dir': RUN_DIR,
    })

    status = cli.get_status(project, [INSTANCE1, INSTANCE2], stateboard=True)
    assert status.get(ID1) == STATUS_NOT_STARTED
    assert status.get(ID2) == STATUS_NOT_STARTED

    cli.start(project, [INSTANCE1], stateboard=True, daemonized=True)
    check_instances_running(cli, project, [INSTANCE1], stateboard=True, run_dir=RUN_DIR, daemonized=True)

    status = cli.get_status(project, [INSTANCE1, INSTANCE2], stateboard=True)
    assert len(status) == 3
    assert status.get(ID1) == STATUS_RUNNING
    assert status.get(ID2) == STATUS_NOT_STARTED
    assert status.get(STATEBOARD_ID) == STATUS_RUNNING

    cli.stop(project, [INSTANCE1], stateboard=True)
    check_instances_stopped(cli, project, [INSTANCE1], stateboard=True, run_dir=RUN_DIR)

    status = cli.get_status(project, [INSTANCE1, INSTANCE2], stateboard=True)
    assert len(status) == 3
    assert status.get(ID1) == STATUS_STOPPED
    assert status.get(ID2) == STATUS_NOT_STARTED
    assert status.get(STATEBOARD_ID) == STATUS_STOPPED
Ejemplo n.º 29
0
def write_instances_topology_conf(data_dir,
                                  app_name,
                                  conf,
                                  instances,
                                  one_file=False):
    conf_paths = []

    for instance in instances:
        work_dir = os.path.join(data_dir, '%s.%s' % (app_name, instance))
        os.makedirs(work_dir, exist_ok=True)

        if one_file:
            conf_path = os.path.join(work_dir, 'config.yml')
        else:
            conf_dir = os.path.join(work_dir, 'config')
            os.makedirs(conf_dir, exist_ok=True)

            conf_path = os.path.join(conf_dir, 'topology.yml')

        conf_paths.append(conf_path)
        write_conf(conf_path, conf)

    return conf_paths
Ejemplo n.º 30
0
def test_bad_rpl_conf_format(project_with_instances, cartridge_cmd):
    project = project_with_instances.project

    rpl_cfg_path = project.get_replicasets_cfg_path()

    # create router replicaset
    rpl_cfg = {
        'router': {
            'roles': 'vshard-router',  # should be a list
            'instances': [],
        }
    }

    write_conf(rpl_cfg_path, rpl_cfg)

    cmd = [
        cartridge_cmd,
        'replicasets',
        'setup',
    ]

    rc, output = run_command_and_get_output(cmd, cwd=project.path)
    assert rc == 1