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'}
barBeispiel 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
