summaryrefslogtreecommitdiffstats
path: root/roles/openshift_health_checker/test/memory_availability_test.py
blob: a8ba032cc9be25bf8aec12e4841f5fcd814c4d9c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
import pytest

from openshift_checks.memory_availability import MemoryAvailability, OpenShiftCheckException


@pytest.mark.parametrize('group_names,is_containerized,is_active', [
    (['masters'], False, True),
    # ensure check is skipped on containerized installs
    (['masters'], True, True),
    (['nodes'], True, True),
    (['etcd'], False, True),
    (['masters', 'nodes'], False, True),
    (['masters', 'etcd'], False, True),
    ([], False, False),
    (['lb'], False, False),
    (['nfs'], False, False),
])
def test_is_active(group_names, is_containerized, is_active):
    task_vars = dict(
        group_names=group_names,
        openshift=dict(common=dict(is_containerized=is_containerized)),
    )
    assert MemoryAvailability.is_active(task_vars=task_vars) == is_active


@pytest.mark.parametrize("group_name,size_available", [
    (
        "masters",
        17200,
    ),
    (
        "nodes",
        8200,
    ),
    (
        "etcd",
        12200,
    ),
])
def test_mem_check_with_recommended_memtotal(group_name, size_available):
    result = MemoryAvailability(execute_module=NotImplementedError).run(tmp=None, task_vars=dict(
        group_names=[group_name],
        ansible_memtotal_mb=size_available,
    ))

    assert not result.get('failed', False)


@pytest.mark.parametrize("group_name,size_available", [
    (
        "masters",
        1,
    ),
    (
        "nodes",
        2,
    ),
    (
        "etcd",
        3,
    ),
])
def test_mem_check_with_insufficient_memtotal(group_name, size_available):
    result = MemoryAvailability(execute_module=NotImplementedError).run(tmp=None, task_vars=dict(
        group_names=[group_name],
        ansible_memtotal_mb=size_available,
    ))

    assert result['failed']
    assert "below recommended storage" in result['msg']


def test_mem_check_with_invalid_groupname():
    with pytest.raises(OpenShiftCheckException) as excinfo:
        result = MemoryAvailability(execute_module=NotImplementedError).run(tmp=None, task_vars=dict(
            openshift=dict(common=dict(
                service_type='origin',
                is_containerized=False,
            )),
            group_names=["invalid"],
            ansible_memtotal_mb=1234567,
        ))

    assert "'invalid'" in str(excinfo.value)