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]
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)
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)