Beginner: Setting up WATO Rules in v2.0 (deutsch)

Hallo zusammen,

ich habe gerade begonnen meine unflexiblen local-checks auf vollwertige Plugins umzuschreiben. Dazu habe ich zunächst auf die 2.0 Version gewartet, die ich mir nun in der Beta installiert habe.

Mithilfe der Anleitung war auch das erste Plugin relativ schnell umgesetzt (noch ohne Parameter) und ich habe mich weiter an WATO-Regeln versucht - leider noch ohne Erfolg. Ich würde gerne erstmal nur ein “doofes” Feld haben, indem ich eine Zahl / einen Text eintippern kann. Ich habe hierfür 1 zu 1 den Doku-Code übernommen:

from cmk.gui.i18n import _
from cmk.gui.ValueSpec import (
    Dictionary,
    Integer,
    TextAscii,
)
from cmk.gui.plugins.wato import (
    CheckParameterRulespecWithItem,
    rulespec_registry,
    RulespecGroupCheckParametersOperatingSystem,
)

def _item_valuespec_foobar():
    return TextAscii(title=_("Sector name"))

def _parameter_valuespec_foobar():
    return Dictionary(
        elements=[
            ("warning_lower", Integer(title=_("Warning below free slots"),
        ],
    )

rulespec_registry.register(
    CheckParameterRulespecWithItem(
        check_group_name="foobar",
        group=RulespecGroupCheckParametersOperatingSystem,
        match_type="dict",
        item_spec=_item_ValueSpec_foobar,
        parameter_valuespec=_parameter_valuespec_foobar,
        title=lambda: _("Free slots for Foobar sectors"),
    ))

In meinem Check habe ich entsprechend das Register so angepasst:

register.check_plugin(
    name = "foobar-check",
     [...]
    check_default_parameters={},
    check_ruleset_name="foobar",
)

Wenn ich nun in die Parameter des checks gehe sehe ich nur: This check is not configurable via WATO

Generell finde ich es sehr schwer hier irgendwelche python Fehler zu debuggen, da ich noch nicht verstanden habe wir ich discovery/check funktionen und sonstiges durch nen Compiler werfe um mir die Fehlermeldungen anzuzeigen. Auch finde ich die “print / pprint” Ausgaben nirgends.

Vielleicht liegt es auch an den beiden Fehlenden Sektionen 2.9 und 2.10 in der Dokumentation (Eigene Checkplugins schreiben), das hier das Verständnis fehlt.

Vielleicht hat hier einer eine Idee zu?

Freue mich auf eure Rückmeldung!

Problem gefunden. In der Doku passen die Klammern in der

def _parameter_valuespec_foobar():

nicht. richtig wäre:

 return Dictionary(
        elements=[
            ("warning_lower", Integer(title=_("Warning below free slots"),**))**
        ],
    )