Check_MK speichert alle Daten in einfachen Dateien direkt als ausführbaren Python Code.
Um die abgelegten Dictionarys etc. in seinen eigenen Skripten weiterverwenden zu können kann man sich die mit eval() oder exec() laden.
eval() kann verwendet werden um z.B. ein Dictionary in eine Variable zu laden, exec() kann auch ganze Funktionen etc. laden.
Beispiel eval():
dict.txt
{"foo":"bar","aaa":"bbb"}
import_dict.py
#!/usr/bin/env python with open("dict1.txt","r") as f: x = eval(f.read().replace("\n","")) print x print x['foo']
Ergebnis:
max@cmkdevel:~/dev$ python import_dict.py {'foo': 'bar', 'aaa': 'bbb'} bar
Beispiel exec()
code.txt
max['foo'] = { "foo": "bar", "fxx": "boo", } def hello(name): print "Hallo " + name
import_code.py
#!/usr/bin/env python max = {} with open("code.txt","r") as f: exec(f.read()) print max print max['foo'] print max['foo']['foo'] hello("max")
Ergebnis:
max@cmkdevel:~/dev$ python import_code.py {'foo': {'foo': 'bar', 'fxx': 'boo'}} {'foo': 'bar', 'fxx': 'boo'} bar Hallo max