diff options
Diffstat (limited to '')
-rw-r--r-- | tests/elasticsearch-error-format-check.py | 137 |
1 files changed, 137 insertions, 0 deletions
diff --git a/tests/elasticsearch-error-format-check.py b/tests/elasticsearch-error-format-check.py new file mode 100644 index 0000000..f8f091d --- /dev/null +++ b/tests/elasticsearch-error-format-check.py @@ -0,0 +1,137 @@ +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: <script> <default|erroronly|errorinterleaved>") + sys.exit(6) |