import json import sys import os def checkDefaultErrorFile(): with open(os.environ['RSYSLOG_DYNNAME'] + ".errorfile") as json_file: json_data = json.load(json_file) indexCount =0 replyCount=0 for item in json_data: if item == "request": for reqItem in json_data[item]: if reqItem == "url": print "url found" print reqItem elif reqItem == "postdata": print "postdata found" indexCount = str(json_data[item]).count('\"_index\":') print reqItem else: print reqItem print "Unknown item found" sys.exit(1) elif item == "reply": for replyItem in json_data[item]: if replyItem == "items": print json_data[item][replyItem] replyCount = str(json_data[item][replyItem]).count('_index') elif replyItem == "errors": print "error node found" elif replyItem == "took": print "took node found" else: print replyItem print "Unknown item found" sys.exit(3) else: print item print "Unknown item found" print "error" sys.exit(4) if replyCount == indexCount : return 0 else: sys.exit(7) return 0 def checkErrorOnlyFile(): with open(os.environ['RSYSLOG_DYNNAME'] + ".errorfile") as json_file: json_data = json.load(json_file) indexCount =0 replyCount=0 for item in json_data: if item == "request": print json_data[item] indexCount = str(json_data[item]).count('\"_index\":') elif item == "url": print "url found" elif item == "reply": print json_data[item] replyCount = str(json_data[item]).count('\"_index\":') else: print item print "Unknown item found" print "error" sys.exit(4) if replyCount == indexCount : return 0 else: sys.exit(7) return 0 def checkErrorInterleaved(): with open(os.environ['RSYSLOG_DYNNAME'] + ".errorfile") as json_file: json_data = json.load(json_file) indexCount =0 replyCount=0 for item in json_data: print item if item == "response": for responseItem in json_data[item]: print responseItem for res in responseItem: print res if res == "request": print responseItem[res] indexCount = str(responseItem[res]).count('\"_index\":') print "request count ", indexCount elif res == "reply": print responseItem[res] replyCount = str(responseItem[res]).count('\"_index\":') print "reply count ", replyCount else: print res print "Unknown item found" sys.exit(9) if replyCount != indexCount : sys.exit(8) elif item == "url": print "url found" else: print item print "Unknown item found" sys.exit(4) return 0 def checkInterleaved(): return checkErrorInterleaved() if __name__ == "__main__": option = sys.argv[1] if option == "default": checkDefaultErrorFile() elif option == "erroronly": checkErrorOnlyFile() elif option == "errorinterleaved": checkErrorInterleaved() elif option == "interleaved": checkErrorInterleaved() else: print "Usage: