示例#1
0
def test_find_connectable_master_one_failure(
        mock_check_ssh_and_sudo_on_master):
    masters = [
        '192.0.2.1',
        '192.0.2.2',
        '192.0.2.3',
    ]
    timeout = 6.0
    # iter() is a workaround
    # (http://lists.idyll.org/pipermail/testing-in-python/2013-April/005527.html)
    # for a bug in mock (http://bugs.python.org/issue17826)
    create_connection_side_effects = iter([
        (False, "something bad"),
        (True, 'unused'),
        (True, 'unused'),
    ])
    mock_check_ssh_and_sudo_on_master.side_effect = create_connection_side_effects
    mock_check_ssh_and_sudo_on_master.return_value = True

    actual = utils.find_connectable_master(masters)
    assert mock_check_ssh_and_sudo_on_master.call_count == 2
    mock_check_ssh_and_sudo_on_master.assert_any_call(masters[0],
                                                      timeout=timeout)
    mock_check_ssh_and_sudo_on_master.assert_any_call(masters[1],
                                                      timeout=timeout)
    assert actual == ('192.0.2.2', None)
示例#2
0
def test_find_connectable_master_happy_path(mock_check_ssh_on_master):
    masters = ["192.0.2.1", "192.0.2.2", "192.0.2.3"]
    timeout = 6.0
    mock_check_ssh_on_master.return_value = (True, None)

    actual = utils.find_connectable_master(masters)
    expected = (masters[0], None)
    assert mock_check_ssh_on_master.call_count == 1
    mock_check_ssh_on_master.assert_called_once_with(masters[0],
                                                     timeout=timeout)
    assert actual == expected
示例#3
0
文件: sysdig.py 项目: oktopuz/paasta
def get_any_mesos_master(cluster):
    system_paasta_config = load_system_paasta_config()
    masters, output = calculate_remote_masters(cluster, system_paasta_config)
    if not masters:
        print 'ERROR: %s' % output
        sys.exit(1)
    mesos_master, output = find_connectable_master(masters)
    if not mesos_master:
        print 'ERROR: could not find connectable master in cluster %s\nOutput: %s' % (cluster, output)
        sys.exit(1)
    return mesos_master
示例#4
0
文件: sysdig.py 项目: white105/paasta
def get_any_mesos_master(cluster, system_paasta_config):
    masters, output = calculate_remote_masters(cluster, system_paasta_config)
    if not masters:
        paasta_print('ERROR: %s' % output)
        sys.exit(1)
    mesos_master, output = find_connectable_master(masters)
    if not mesos_master:
        paasta_print(
            'ERROR: could not find connectable master in cluster %s\nOutput: %s'
            % (cluster, output))
        sys.exit(1)
    return mesos_master
示例#5
0
def test_find_connectable_master_all_failures(mock_check_ssh_on_master):
    masters = ["192.0.2.1", "192.0.2.2", "192.0.2.3"]
    timeout = 6.0
    mock_check_ssh_on_master.return_value = (255, "timeout")

    actual = utils.find_connectable_master(masters)
    assert mock_check_ssh_on_master.call_count == 3
    mock_check_ssh_on_master.assert_any_call((masters[0]), timeout=timeout)
    mock_check_ssh_on_master.assert_any_call((masters[1]), timeout=timeout)
    mock_check_ssh_on_master.assert_any_call((masters[2]), timeout=timeout)
    assert actual[0] is None
    assert "timeout" in actual[1]
示例#6
0
def get_any_mesos_master(cluster, system_paasta_config):
    masters, output = calculate_remote_masters(cluster, system_paasta_config)
    if not masters:
        print("ERROR: %s" % output)
        sys.exit(1)
    mesos_master, output = find_connectable_master(masters)
    if not mesos_master:
        print(
            f"ERROR: could not find connectable master in cluster {cluster}\nOutput: {output}"
        )
        sys.exit(1)
    return mesos_master
示例#7
0
def test_find_connectable_master_happy_path(mock_check_ssh_and_sudo_on_master):
    masters = [
        '192.0.2.1',
        '192.0.2.2',
        '192.0.2.3',
    ]
    timeout = 6.0
    mock_check_ssh_and_sudo_on_master.return_value = (True, None)

    actual = utils.find_connectable_master(masters)
    expected = (masters[0], None)
    assert mock_check_ssh_and_sudo_on_master.call_count == 1
    mock_check_ssh_and_sudo_on_master.assert_called_once_with(masters[0], timeout=timeout)
    assert actual == expected
示例#8
0
def test_find_connectable_master_all_failures(mock_check_ssh_and_sudo_on_master):
    masters = [
        '192.0.2.1',
        '192.0.2.2',
        '192.0.2.3',
    ]
    timeout = 6.0
    mock_check_ssh_and_sudo_on_master.return_value = (255, "timeout")

    actual = utils.find_connectable_master(masters)
    assert mock_check_ssh_and_sudo_on_master.call_count == 3
    mock_check_ssh_and_sudo_on_master.assert_any_call((masters[0]), timeout=timeout)
    mock_check_ssh_and_sudo_on_master.assert_any_call((masters[1]), timeout=timeout)
    mock_check_ssh_and_sudo_on_master.assert_any_call((masters[2]), timeout=timeout)
    assert actual[0] is None
    assert 'timeout' in actual[1]
示例#9
0
def test_find_connectable_master_one_failure(mock_check_ssh_and_sudo_on_master):
    masters = [
        '192.0.2.1',
        '192.0.2.2',
        '192.0.2.3',
    ]
    timeout = 6.0
    # iter() is a workaround
    # (http://lists.idyll.org/pipermail/testing-in-python/2013-April/005527.html)
    # for a bug in mock (http://bugs.python.org/issue17826)
    create_connection_side_effects = iter([
        (False, "something bad"),
        (True, 'unused'),
        (True, 'unused'),
    ])
    mock_check_ssh_and_sudo_on_master.side_effect = create_connection_side_effects
    mock_check_ssh_and_sudo_on_master.return_value = True

    actual = utils.find_connectable_master(masters)
    assert mock_check_ssh_and_sudo_on_master.call_count == 2
    mock_check_ssh_and_sudo_on_master.assert_any_call(masters[0], timeout=timeout)
    mock_check_ssh_and_sudo_on_master.assert_any_call(masters[1], timeout=timeout)
    assert actual == ('192.0.2.2', None)