Example #1
0
def grouped_services() -> discovery.ServicesByTransition:
    return {
        "new": [
            discovery.Service(
                CheckPluginName("check_plugin_name"),
                "New Item 1",
                "Test Description New Item 1",
                {},
            ),
            discovery.Service(
                CheckPluginName("check_plugin_name"),
                "New Item 2",
                "Test Description New Item 2",
                {},
            ),
        ],
        "vanished": [
            discovery.Service(
                CheckPluginName("check_plugin_name"),
                "Vanished Item 1",
                "Test Description Vanished Item 1",
                {},
            ),
            discovery.Service(
                CheckPluginName("check_plugin_name"),
                "Vanished Item 2",
                "Test Description Vanished Item 2",
                {},
            ),
        ],
    }
Example #2
0
def test_discovered_service_eq():
    ser1 = discovery.Service(CheckPluginName("abc"), u"Item", u"ABC Item",
                             None)
    ser2 = discovery.Service(CheckPluginName("abc"), u"Item", u"ABC Item",
                             None)
    ser3 = discovery.Service(CheckPluginName("xyz"), u"Item", u"ABC Item",
                             None)
    ser4 = discovery.Service(CheckPluginName("abc"), u"Xtem", u"ABC Item",
                             None)
    ser5 = discovery.Service(CheckPluginName("abc"), u"Item", u"ABC Item", [])

    assert ser1 == ser1  # pylint: disable=comparison-with-itself
    assert ser1 == ser2
    assert ser1 != ser3
    assert ser1 != ser4
    assert ser1 == ser5

    assert ser1 in [ser1]
    assert ser1 in [ser2]
    assert ser1 not in [ser3]
    assert ser1 not in [ser4]
    assert ser1 in [ser5]

    assert ser1 in {ser1}
    assert ser1 in {ser2}
    assert ser1 not in {ser3}
    assert ser1 not in {ser4}
    assert ser1 in {ser5}
Example #3
0
def test_discovered_service_init():
    ser = discovery.Service(CheckPluginName("abc"), u"Item", u"ABC Item", None)
    assert ser.check_plugin_name == CheckPluginName("abc")
    assert ser.item == u"Item"
    assert ser.description == u"ABC Item"
    assert ser.parameters is None
    assert ser.service_labels.to_dict() == {}

    ser = discovery.Service(CheckPluginName("abc"), u"Item", u"ABC Item", None,
                            DiscoveredServiceLabels(ServiceLabel(u"läbel", u"lübel")))
    assert ser.service_labels.to_dict() == {u"läbel": u"lübel"}

    with pytest.raises(AttributeError):
        ser.xyz = "abc"  # type: ignore[attr-defined] # pylint: disable=assigning-non-slot
Example #4
0
def test__get_service_filter_func_same_lists(monkeypatch, whitelist, result):
    monkeypatch.setattr(config, "service_description",
                        lambda h, c, i: "Test Description")

    params = {"inventory_rediscovery": {"service_whitelist": whitelist}}
    service_filters = discovery.get_service_filter_funcs(params)
    service = discovery.Service(CheckPluginName("check_plugin_name"), "item",
                                "Test Description", None)
    assert service_filters.new is not None
    assert service_filters.new("hostname", service) is result

    params = {"inventory_rediscovery": {"service_blacklist": whitelist}}
    service_filters_inverse = discovery.get_service_filter_funcs(params)
    assert service_filters_inverse.new is not None
    assert service_filters_inverse.new("hostname", service) is not result

    params = {
        "inventory_rediscovery": {
            "service_whitelist": whitelist,
            "service_blacklist": whitelist,
        }
    }
    service_filters_both = discovery.get_service_filter_funcs(params)
    assert service_filters_both.new is not None
    assert service_filters_both.new("hostname", service) is False
Example #5
0
def test__get_service_filter_func(monkeypatch, parameters_rediscovery, result):
    monkeypatch.setattr(config, "service_description", lambda h, c, i: "Test Description")

    params = {"inventory_rediscovery": parameters_rediscovery}
    service_filters = discovery.get_service_filter_funcs(params)
    service = discovery.Service(CheckPluginName("check_plugin_name"), "item", "Test Description",
                                None)
    assert service_filters.new is not None
    assert service_filters.new("hostname", service) is result
Example #6
0
def service_table() -> discovery.ServicesTable:
    return {
        (CheckPluginName("check_plugin_name"), "New Item 1"): (
            "new",
            discovery.Service(
                CheckPluginName("check_plugin_name"),
                "New Item 1",
                "Test Description New Item 1",
                {},
            ),
            [],
        ),
        (CheckPluginName("check_plugin_name"), "New Item 2"): (
            "new",
            discovery.Service(
                CheckPluginName("check_plugin_name"),
                "New Item 2",
                "Test Description New Item 2",
                {},
            ),
            [],
        ),
        (CheckPluginName("check_plugin_name"), "Vanished Item 1"): (
            "vanished",
            discovery.Service(
                CheckPluginName("check_plugin_name"),
                "Vanished Item 1",
                "Test Description Vanished Item 1",
                {},
            ),
            [],
        ),
        (CheckPluginName("check_plugin_name"), "Vanished Item 2"): (
            "vanished",
            discovery.Service(
                CheckPluginName("check_plugin_name"),
                "Vanished Item 2",
                "Test Description Vanished Item 2",
                {},
            ),
            [],
        ),
    }
Example #7
0
    assert autochecks.has_autochecks("host") is True


def test_remove_autochecks_file():
    assert autochecks.has_autochecks("host") is False
    autochecks.save_autochecks_file("host", [])
    assert autochecks.has_autochecks("host") is True
    autochecks.remove_autochecks_file("host")
    assert autochecks.has_autochecks("host") is False


@pytest.mark.parametrize("items,expected_content", [
    ([], "[\n]\n"),
    ([
        discovery.Service(CheckPluginName('df'), u'/xyz', u"Filesystem /xyz",
                          None,
                          DiscoveredServiceLabels(ServiceLabel(u"x", u"y"))),
        discovery.Service(CheckPluginName('df'), u'/', u"Filesystem /", {},
                          DiscoveredServiceLabels(ServiceLabel(u"x", u"y"))),
        discovery.Service(CheckPluginName('cpu_loads'), None, "CPU load", {},
                          DiscoveredServiceLabels(ServiceLabel(u"x", u"y"))),
    ], """[
  {'check_plugin_name': 'cpu_loads', 'item': None, 'parameters': {}, 'service_labels': {'x': 'y'}},
  {'check_plugin_name': 'df', 'item': '/', 'parameters': {}, 'service_labels': {'x': 'y'}},
  {'check_plugin_name': 'df', 'item': '/xyz', 'parameters': None, 'service_labels': {'x': 'y'}},
]\n"""),
])
def test_save_autochecks_file(items, expected_content):
    autochecks.save_autochecks_file("host", items)

    autochecks_file = Path(cmk.utils.paths.autochecks_dir, "host.mk")
Example #8
0
    autochecks.save_autochecks_file("host", [])
    assert autochecks.has_autochecks("host") is True


def test_remove_autochecks_file():
    assert autochecks.has_autochecks("host") is False
    autochecks.save_autochecks_file("host", [])
    assert autochecks.has_autochecks("host") is True
    autochecks.remove_autochecks_file("host")
    assert autochecks.has_autochecks("host") is False


@pytest.mark.parametrize("items,expected_content", [
    ([], "[\n]\n"),
    ([
        discovery.Service('df', u'/xyz', u"Filesystem /xyz", None,
                          DiscoveredServiceLabels(ServiceLabel(u"x", u"y"))),
        discovery.Service('df', u'/', u"Filesystem /", {},
                          DiscoveredServiceLabels(ServiceLabel(u"x", u"y"))),
        discovery.Service('cpu.loads', None, "CPU load", {},
                          DiscoveredServiceLabels(ServiceLabel(u"x", u"y"))),
    ], """[
  {'check_plugin_name': 'cpu.loads', 'item': None, 'parameters': {}, 'service_labels': {'x': 'y'}},
  {'check_plugin_name': 'df', 'item': '/', 'parameters': {}, 'service_labels': {'x': 'y'}},
  {'check_plugin_name': 'df', 'item': '/xyz', 'parameters': None, 'service_labels': {'x': 'y'}},
]\n"""),
])
def test_save_autochecks_file(items, expected_content):
    autochecks.save_autochecks_file("host", items)

    autochecks_file = Path(cmk.utils.paths.autochecks_dir, "host.mk")
    with autochecks_file.open("r", encoding="utf-8") as f: