Update 1.5 -> 1.6: saveint in Perf-O-Meter nutzen

Hallo,

beim Testen der Migration von 1.5 auf 1.6 bekomme ich die folgende Fehlermeldung in Perf-O-Meter Feld bei einem der selbstgeschriebenen Checks:

Exception: global name 'saveint' is not defined

Der Code enthält in der Tat den Aufruf von saveint. Das funktioniert auch wunderbar in der Version 1.5, aber eben nicht mehr in 1.6. Da ich Pythons nicht mächtig bin, möchte ich wissen, wie ich auf die Funktionen der Check_MK zurückgreifen kann, wie importieren?
Am besten wäre eine Lösung, die in beiden Versionen 1.5 und 1.6 ginge.

Grüße
Hermann

Hallo Hermann,

bitte ändere das “saveint” einfach mal in ein “int” um. Danach sollte es wieder funktionieren.
“saveint” sollte eh möglichst nicht mehr verwendet werden. In einem Perf-o-Meter dürfte dies eh nicht notwendig sein.

Gruß
Andreas

2 Likes

Vielleicht als Ergänzung: saveint ist mittlerweile deprecated, weil es im Fehlerfall (z.B. saveint('text')) den Wert 0 zurück liefert und man daher eine Fehler-Null nicht von einer Erfolgs-Null unterscheiden kann.

Vielen Dank für den Tipp Andreas, ich habe es so umgesetzt.

Hallo Dirk,

Leider finde ich nirgends Infos zu den Unterschieden zwischen 1.5 und 1.6 auf einer Seite. In den zahlreichen Werks herumwühlen ist für mich als CMK-Nutzer und nicht CMK-Entwickler nicht einfach.
Das Dokument https://checkmk.com/cms_dev_guidelines.html behauptet nach wie vor, dass die Funktion zu nutzen sei. Da wäre doch dringend ein Update fällig.

Insbesondere wäre es wichtig schnell anzugehen, weil es in 1.6 wohl einige Neuigkeiten gibt, die Plugins aus 1.5 mit der 1.6 nicht kompatibel machen und eine Anpassung erfordern.

Gruß
Hermann

1 Like

Hallo Herrmann,

da stimme ich Dir zu. Ich entwickele selbst Plugins für CMK und würde mir auch eine Übersicht wünschen, was sich grundsätzlich geändert hat zwischen 1.5 und 1.6, z.B. Pfade, notwendige import-Statements usw.

Über die “deprecation”-Warnung von saveint bin ich auch eher zufällig gestolpert, sie steht bei der Funktionsdefinition als Kommentar (~/lib/python/cmk_base/check_api.py).

Gruß Dirk

2 Likes

Diese Aussage bezieht sich auf die Entwicklung von Check-Plugins nicht auf perf-o-meter. Ebenfalls wird dort geschrieben, dass es nur verwendet werden soll, wenn ein ungültiger Wert (nicht int) eine bekannte Fehlerquelle ist.

Ja, das ist richtig, auch wenn das nicht explizit ausgeschlossen ist.
Um so wichtiger ist es, klar Unterschiede zwischen den Versionen zu nennen.

An einer verbesserten aktuellen Code-Dokumentation für Check Plug-In Entwicklung arbeiten wir gerade.
Wir gehen aber erstmal nur das Thema “Check Plug-Ins” an, ist ja an sich schon groß genug. Dauert aber noch ein wenig.

2 Likes