示例#1
0
def test_inventory_common():
    info = list(itertools.chain.from_iterable(generate_inputs()))
    assert sorted({s.item: s for s in ps_utils.discover_ps(  # type: ignore[attr-defined]
        PS_DISCOVERY_WATO_RULES,  # type: ignore[arg-type]
        ps_section.parse_ps(info),
        None,
        None,
    )}.values(), key=lambda s: s.item) == sorted(PS_DISCOVERED_ITEMS, key=lambda s: s.item)  # type: ignore[attr-defined]
示例#2
0
def test_subset_patterns():

    section_ps = ps_section.parse_ps(
        splitter("""(user,0,0,0.5) main
(user,0,0,0.4) main_dev
(user,0,0,0.1) main_dev
(user,0,0,0.5) main_test"""))

    # Boundary in match is necessary otherwise main instance accumulates all
    inv_params: List[Dict] = [{
        'default_params': {
            'cpu_rescale_max': True,
            'levels': (1, 1, 99999, 99999)
        },
        'match': '~(main.*)\\b',
        'descr': '%s',
    }, {}]

    discovered = [
        Service(
            item='main',
            parameters={
                'cpu_rescale_max': True,
                'levels': (1, 1, 99999, 99999),
                'process': '~(main.*)\\b',
                'match_groups': ('main',),
                'user': None,
                'cgroup': (None, False),
            },
        ),
        Service(
            item='main_dev',
            parameters={
                'cpu_rescale_max': True,
                'levels': (1, 1, 99999, 99999),
                'process': '~(main.*)\\b',
                'match_groups': ('main_dev',),
                'user': None,
                'cgroup': (None, False),
            },
        ),
        Service(
            item='main_test',
            parameters={
                'cpu_rescale_max': True,
                'levels': (1, 1, 99999, 99999),
                'process': '~(main.*)\\b',
                'match_groups': ('main_test',),
                'user': None,
                'cgroup': (None, False),
            },
        ),
    ]

    test_discovered = ps_utils.discover_ps(inv_params, section_ps, None, None, None)  # type: ignore[arg-type]
    assert {s.item: s for s in test_discovered} == {s.item: s for s in discovered}  # type: ignore[attr-defined]

    for service, count in zip(discovered, [1, 2, 1]):
        assert isinstance(service.item, str)
        output = list(ps_utils.check_ps_common(
            label="Processes",
            item=service.item,
            params=service.parameters,  # type: ignore[arg-type]
            process_lines=[
                (None, psi, cmd_line) for (psi, cmd_line) in section_ps[1]],
            cpu_cores=1,
            total_ram=None,
        ))
        assert output[0] == Result(state=state.OK, summary="Processes: %s" % count)
示例#3
0
def test_subset_patterns():

    section_ps = ps_section.parse_ps(
        splitter("""(user,0,0,0.5) main
(user,0,0,0.4) main_dev
(user,0,0,0.1) main_dev
(user,0,0,0.5) main_test"""))

    # Boundary in match is necessary otherwise main instance accumulates all
    inv_params: List[Dict] = [
        {
            "default_params": {
                "cpu_rescale_max": True,
                "levels": (1, 1, 99999, 99999)
            },
            "match": "~(main.*)\\b",
            "descr": "%s",
        },
        {},
    ]

    discovered = [
        Service(
            item="main",
            parameters={
                "cpu_rescale_max": True,
                "levels": (1, 1, 99999, 99999),
                "process": "~(main.*)\\b",
                "match_groups": ("main", ),
                "user": None,
                "cgroup": (None, False),
            },
        ),
        Service(
            item="main_dev",
            parameters={
                "cpu_rescale_max": True,
                "levels": (1, 1, 99999, 99999),
                "process": "~(main.*)\\b",
                "match_groups": ("main_dev", ),
                "user": None,
                "cgroup": (None, False),
            },
        ),
        Service(
            item="main_test",
            parameters={
                "cpu_rescale_max": True,
                "levels": (1, 1, 99999, 99999),
                "process": "~(main.*)\\b",
                "match_groups": ("main_test", ),
                "user": None,
                "cgroup": (None, False),
            },
        ),
    ]

    test_discovered = ps_utils.discover_ps(inv_params, section_ps, None, None,
                                           None)
    assert {s.item: s
            for s in test_discovered} == {s.item: s
                                          for s in discovered}

    for service, count in zip(discovered, [1, 2, 1]):
        assert isinstance(service.item, str)
        output = list(
            ps_utils.check_ps_common(
                label="Processes",
                item=service.item,
                params=service.parameters,
                process_lines=[(None, psi, cmd_line)
                               for (psi, cmd_line) in section_ps[1]],
                cpu_cores=1,
                total_ram_map={},
            ))
        assert output[0] == Result(state=state.OK,
                                   summary="Processes: %s" % count)