So da bin ich wieder, saß nun den ganzen morgen dran und komm nicht weiter...
Zu Anfangs hatte ich KeyErrors, die sind nun weg aber hab nun keinerlei Erfolg....
Code: Alles auswählen
def auslesen(status):
with open("/home/tweber/status.dat") as statuspart:
servicestatus = None
for line in (l.strip(" ") for l in statuspart):
if line.endswith("{", 1, len(line)):
servicestatus = {}
elif line.startswith("}", 0, len(line)):
yield servicestatus
servicestatus = None
elif servicestatus is not None and line:
name, value = line.split("=", 1)
servicestatus["plugin_output"] = value
servicestatus["problem_has_been_acknowledged"] = value
servicestatus["scheduled_downtime_depth"] = value
def Main(argv):
print "hallo"
for servicestatus in auslesen("/home/tweber/status.dat"):
print "das hier?"
if (servicestatus["plugin_output"].startswith("OK", 0, len(servicestatus["plugin_output"])) and # oder "OK" in servicestatus["plugin_output"]
servicestatus["problem_has_been_acknowledged"] == "0" and
servicestatus["scheduled_downtime_depth"] == "0"):
green()
else:
print "hallo?"
off()
if __name__ == "__main__":
Main(sys.argv[1:])
green(), off() sind fehlerfreie codeteile, die jedoch nichts hiermit zu tun haben.
Wenn ich den Code ausführe kommt keinerlei Fehlermeldung, jedoch greift das Programm aber auch nicht in die bereiche die nach "for servicestatus in auslesen..." zu, bzw. kann mit dem variablen-namen servicestatus nichts anfangen, hatte auch schon versucht servicestatus zuvor als global zu definieren, machte jedoch keinen sinn da dies ja von "yield" übernommen wird, kann mir irgendjemand helfen? Ich steck hier echt fest und würde mich über einen Ratschlag sehr freuen
Bin mir auch nicht sicher ob das
Code: Alles auswählen
elif servicestatus is not None and line:
name, value = line.split("=", 1)
servicestatus["plugin_output"] = value
servicestatus["problem_has_been_acknowledged"] = value
servicestatus["scheduled_downtime_depth"] = value
sinn macht, da von meinem Verständnis das ja eigentlich der Code "servicestatus[name]", so wie ihn EyDu gepostet hat, übernehmen müsste ...
Hilfe...
Gruß Tobi