def test_get_mesos_status(
    mock_get_mesos_stats,
    mock_get_num_masters,
    mock_get_configured_quorum_size,
    mock_getfqdn,
):
    mock_getfqdn.return_value = 'fakename'
    mock_get_mesos_stats.return_value = {
        'master/cpus_total': 10,
        'master/cpus_used': 8,
        'master/mem_total': 10240,
        'master/mem_used': 2048,
        'master/disk_total': 10240,
        'master/disk_used': 3072,
        'master/tasks_running': 3,
        'master/tasks_staging': 4,
        'master/tasks_starting': 0,
        'master/slaves_active': 4,
        'master/slaves_inactive': 0,
    }
    mesos_state = {
        'flags': {
            'zk': 'zk://1.1.1.1:2222/fake_cluster',
            'quorum': 2,
        },
        'frameworks': [
            {
                'name': 'test_framework1',
            },
            {
                'name': 'test_framework1',
            },
        ]
    }
    mock_get_num_masters.return_value = 5
    mock_get_configured_quorum_size.return_value = 3
    expected_cpus_output = "CPUs: 8.00 / 10 in use (%s)" % PaastaColors.green("80.00%")
    expected_mem_output = \
        "Memory: 2.00 / 10.00GB in use (%s)" % PaastaColors.green("20.00%")
    expected_disk_output = "Disk: 3.00 / 10.00GB in use (%s)" % PaastaColors.green("30.00%")
    expected_tasks_output = \
        "tasks: running: 3 staging: 4 starting: 0"
    expected_duplicate_frameworks_output = \
        "frameworks:\n%s" % \
        PaastaColors.red("    CRITICAL: Framework test_framework1 has 2 instances running--expected no more than 1.")
    expected_slaves_output = \
        "slaves: active: 4 inactive: 0"
    expected_masters_quorum_output = \
        "quorum: masters: 5 configured quorum: 3 "

    results = paasta_metastatus.get_mesos_status(mesos_state, verbosity=0)

    assert mock_get_mesos_stats.called_once()
    assert (expected_masters_quorum_output, True) in results
    assert (expected_cpus_output, True) in results
    assert (expected_mem_output, True) in results
    assert (expected_disk_output, True) in results
    assert (expected_tasks_output, True) in results
    assert (expected_duplicate_frameworks_output, False) in results
    assert (expected_slaves_output, True) in results
Example #2
0
def test_get_mesos_status(
    mock_get_mesos_state_from_leader,
    mock_get_mesos_stats,
    mock_get_num_masters,
    mock_get_configured_quorum_size,
    mock_getfqdn,
):
    mock_getfqdn.return_value = 'fakename'
    mock_get_mesos_stats.return_value = {
        'master/cpus_total': 10,
        'master/cpus_used': 8,
        'master/mem_total': 10240,
        'master/mem_used': 2048,
        'master/tasks_running': 3,
        'master/tasks_staging': 4,
        'master/tasks_starting': 0,
        'master/slaves_active': 4,
        'master/slaves_inactive': 0,
    }
    mock_get_mesos_state_from_leader.return_value = {
        'flags': {
            'zk': 'zk://1.1.1.1:2222/fake_cluster',
            'quorum': 2,
        },
        'frameworks': [
            {
                'name': 'test_framework1',
            },
            {
                'name': 'test_framework1',
            },
        ]
    }
    mock_get_num_masters.return_value = 5
    mock_get_configured_quorum_size.return_value = 3
    expected_cpus_output = "CPUs: 8.00 / 10 in use (%s)" % PaastaColors.green(
        "80.00%")
    expected_mem_output = \
        "Memory: 2.00 / 10.00GB in use (%s)" % PaastaColors.green("20.00%")
    expected_tasks_output = \
        "tasks: running: 3 staging: 4 starting: 0"
    expected_duplicate_frameworks_output = \
        "frameworks:\n%s" % \
        PaastaColors.red("    CRITICAL: Framework test_framework1 has 2 instances running--expected no more than 1.")
    expected_slaves_output = \
        "slaves: active: 4 inactive: 0"
    expected_masters_quorum_output = \
        "quorum: masters: 5 configured quorum: 3 "

    results = paasta_metastatus.get_mesos_status()

    assert mock_get_mesos_stats.called_once()
    assert mock_get_mesos_state_from_leader.called_once()
    assert (expected_masters_quorum_output, True) in results
    assert (expected_cpus_output, True) in results
    assert (expected_mem_output, True) in results
    assert (expected_tasks_output, True) in results
    assert (expected_duplicate_frameworks_output, False) in results
    assert (expected_slaves_output, True) in results
def test_get_mesos_status(
    mock_get_mesos_state_from_leader,
    mock_get_mesos_stats,
    mock_get_num_masters,
    mock_get_configured_quorum_size,
    mock_getfqdn,
):
    mock_getfqdn.return_value = "fakename"
    mock_get_mesos_stats.return_value = {
        "master/cpus_total": 10,
        "master/cpus_used": 8,
        "master/mem_total": 10240,
        "master/mem_used": 2048,
        "master/tasks_running": 3,
        "master/tasks_staging": 4,
        "master/tasks_starting": 0,
        "master/slaves_active": 4,
        "master/slaves_inactive": 0,
    }
    mock_get_mesos_state_from_leader.return_value = {
        "flags": {"zk": "zk://1.1.1.1:2222/fake_cluster", "quorum": 2},
        "frameworks": [{"name": "test_framework1"}, {"name": "test_framework1"}],
    }
    mock_get_num_masters.return_value = 5
    mock_get_configured_quorum_size.return_value = 3
    expected_cpus_output = "CPUs: 8.00 / 10 in use (%s)" % PaastaColors.green("80.00%")
    expected_mem_output = "Memory: 2.00 / 10.00GB in use (%s)" % PaastaColors.green("20.00%")
    expected_tasks_output = "tasks: running: 3 staging: 4 starting: 0"
    expected_duplicate_frameworks_output = "frameworks:\n%s" % PaastaColors.red(
        "    CRITICAL: Framework test_framework1 has 2 instances running--expected no more than 1."
    )
    expected_slaves_output = "slaves: active: 4 inactive: 0"
    expected_masters_quorum_output = "quorum: masters: 5 configured quorum: 3 "

    results = paasta_metastatus.get_mesos_status()

    assert mock_get_mesos_stats.called_once()
    assert mock_get_mesos_state_from_leader.called_once()
    assert (expected_masters_quorum_output, True) in results
    assert (expected_cpus_output, True) in results
    assert (expected_mem_output, True) in results
    assert (expected_tasks_output, True) in results
    assert (expected_duplicate_frameworks_output, False) in results
    assert (expected_slaves_output, True) in results
def test_missing_master_exception(mock_fetch_from_leader):
    mock_fetch_from_leader.side_effect = mesos_tools.MasterNotAvailableException("Missing")
    with raises(mesos_tools.MasterNotAvailableException) as exception_info:
        paasta_metastatus.get_mesos_status()
    assert "Missing" in str(exception_info.value)
Example #5
0
def test_missing_master_exception(mock_fetch_from_leader):
    mock_fetch_from_leader.side_effect = mesos_tools.MasterNotAvailableException(
        'Missing')
    with raises(mesos_tools.MasterNotAvailableException) as exception_info:
        paasta_metastatus.get_mesos_status()
    assert 'Missing' in str(exception_info.value)