mirror of https://gitee.com/anolis/sysom.git
200 lines
9.1 KiB
Python
Executable File
200 lines
9.1 KiB
Python
Executable File
#!/usr/bin/python3
|
|
# coding=utf-8
|
|
import sys
|
|
import json
|
|
|
|
if sys.version[0] == '2':
|
|
reload(sys)
|
|
sys.setdefaultencoding('utf8')
|
|
|
|
ERR_LEVEL = ["none", "info", "warning", "error", "critical", "fatal"]
|
|
|
|
|
|
def ossre_to_sysom_json(raw):
|
|
postprocess_result = {
|
|
"code": 0,
|
|
"err_msg": "",
|
|
"result": {}
|
|
}
|
|
retdata = {}
|
|
retdata["check_success"] = 0
|
|
retdata["CONFIG"] = {}
|
|
retdata["CONFIG"]["SCHED"] = {}
|
|
retdata["CONFIG"]["SCHED"]["summary"] = "未发现异常"
|
|
retdata["CONFIG"]["SCHED"]["level"] = "none"
|
|
retdata["CONFIG"]["MEM"] = {}
|
|
retdata["CONFIG"]["MEM"]["summary"] = "未发现异常"
|
|
retdata["CONFIG"]["MEM"]["level"] = "none"
|
|
retdata["CONFIG"]["IO"] = {}
|
|
retdata["CONFIG"]["IO"]["summary"] = "未发现异常"
|
|
retdata["CONFIG"]["IO"]["level"] = "none"
|
|
retdata["CONFIG"]["NET"] = {}
|
|
retdata["CONFIG"]["NET"]["summary"] = "未发现异常"
|
|
retdata["CONFIG"]["NET"]["level"] = "none"
|
|
retdata["CONFIG"]["HOTFIX"] = {}
|
|
retdata["CONFIG"]["HOTFIX"]["summary"] = "未发现异常"
|
|
retdata["CONFIG"]["HOTFIX"]["level"] = "none"
|
|
retdata["CONFIG"]["MISC"] = {}
|
|
retdata["CONFIG"]["MISC"]["summary"] = "未发现异常"
|
|
retdata["CONFIG"]["MISC"]["level"] = "none"
|
|
retdata["CONFIG"]["CPU"] = {}
|
|
retdata["CONFIG"]["CPU"]["summary"] = "未发现异常"
|
|
retdata["CONFIG"]["CPU"]["level"] = "none"
|
|
retdata["SLI"] = {}
|
|
retdata["SLI"]["CPU"] = {}
|
|
retdata["SLI"]["CPU"]["summary"] = "未发现异常"
|
|
retdata["SLI"]["CPU"]["level"] = "none"
|
|
retdata["SLI"]["MEM"] = {}
|
|
retdata["SLI"]["MEM"]["summary"] = "未发现异常"
|
|
retdata["SLI"]["MEM"]["level"] = "none"
|
|
retdata["SLI"]["IO"] = {}
|
|
retdata["SLI"]["IO"]["summary"] = "未发现异常"
|
|
retdata["SLI"]["IO"]["level"] = "none"
|
|
retdata["SLI"]["NET"] = {}
|
|
retdata["SLI"]["NET"]["summary"] = "未发现异常"
|
|
retdata["SLI"]["NET"]["level"] = "none"
|
|
retdata["SLI"]["HOTFIX"] = {}
|
|
retdata["SLI"]["HOTFIX"]["summary"] = "未发现异常"
|
|
retdata["SLI"]["HOTFIX"]["level"] = "none"
|
|
retdata["SLI"]["CRASH"] = {}
|
|
retdata["SLI"]["CRASH"]["summary"] = "未发现异常"
|
|
retdata["SLI"]["CRASH"]["level"] = "none"
|
|
retdata["SLI"]["MISC"] = {}
|
|
retdata["SLI"]["MISC"]["summary"] = "未发现异常"
|
|
retdata["SLI"]["MISC"]["level"] = "none"
|
|
retdata["ISSUE"] = {}
|
|
retdata["ISSUE"]["CRIT"] = {}
|
|
retdata["ISSUE"]["CRIT"]["summary"] = "未发现异常"
|
|
retdata["ISSUE"]["CRIT"]["level"] = "none"
|
|
retdata["ISSUE"]["ERR"] = {}
|
|
retdata["ISSUE"]["ERR"]["summary"] = "未发现异常"
|
|
retdata["ISSUE"]["ERR"]["level"] = "none"
|
|
retdata["ISSUE"]["WARN"] = {}
|
|
retdata["ISSUE"]["WARN"]["summary"] = "未发现异常"
|
|
retdata["ISSUE"]["WARN"]["level"] = "none"
|
|
retdata["LOG"] = {}
|
|
retdata["LOG"]["CRIT"] = {}
|
|
retdata["LOG"]["CRIT"]["summary"] = "未发现异常"
|
|
retdata["LOG"]["CRIT"]["level"] = "none"
|
|
retdata["LOG"]["ERR"] = {}
|
|
retdata["LOG"]["ERR"]["summary"] = "未发现异常"
|
|
retdata["LOG"]["ERR"]["level"] = "none"
|
|
retdata["LOG"]["WARN"] = {}
|
|
retdata["LOG"]["WARN"]["summary"] = "未发现异常"
|
|
retdata["LOG"]["WARN"]["level"] = "none"
|
|
retdata["HW"] = {}
|
|
retdata["HW"]["DMESG"] = {}
|
|
retdata["HW"]["DMESG"]["summary"] = "未发现异常"
|
|
retdata["HW"]["DMESG"]["level"] = "none"
|
|
postprocess_result["result"] = retdata
|
|
try:
|
|
if "ossre" not in raw:
|
|
print(json.dumps(postprocess_result, indent=4, ensure_ascii=False))
|
|
else:
|
|
rawdata_json = json.loads(raw)
|
|
retdata["check_success"] = 1
|
|
cust = rawdata_json["ossre"]["fields"]["cust"]
|
|
if "CONFIG" in cust:
|
|
for item in cust["CONFIG"]:
|
|
if retdata["CONFIG"][cust["CONFIG"][item]["category"]]["summary"] == "未发现异常":
|
|
retdata["CONFIG"][cust["CONFIG"][item]
|
|
["category"]]["summary"] = ""
|
|
retdata["CONFIG"][cust["CONFIG"][item]["category"]
|
|
]["summary"] += "%s\n" % cust["CONFIG"][item]["name"]
|
|
if len(cust["CONFIG"][item]["desc"]) != 0:
|
|
retdata["CONFIG"][cust["CONFIG"][item]["category"]
|
|
]["summary"] += "%s\n" % cust["CONFIG"][item]["desc"]
|
|
retdata["CONFIG"][cust["CONFIG"][item]["category"]
|
|
]["summary"] += "%s\n" % cust["CONFIG"][item]["summary"]
|
|
|
|
if ERR_LEVEL.index(cust["CONFIG"][item]["level"]) > ERR_LEVEL.index(retdata["CONFIG"][cust["CONFIG"][item]["category"]]["level"]):
|
|
retdata["CONFIG"][cust["CONFIG"][item]["category"]
|
|
]["level"] = cust["CONFIG"][item]["level"]
|
|
|
|
if "SLI" in cust:
|
|
for item in cust["SLI"]:
|
|
if retdata["SLI"][cust["SLI"][item]["category"]]["summary"] == "未发现异常":
|
|
retdata["SLI"][cust["SLI"][item]
|
|
["category"]]["summary"] = ""
|
|
retdata["SLI"][cust["SLI"][item]["category"]
|
|
]["summary"] += "%s\n" % cust["SLI"][item]["name"]
|
|
if len(cust["SLI"][item]["desc"]) != 0:
|
|
retdata["SLI"][cust["SLI"][item]["category"]
|
|
]["summary"] += "%s\n" % cust["SLI"][item]["desc"]
|
|
retdata["SLI"][cust["SLI"][item]["category"]
|
|
]["summary"] += "%s\n" % cust["SLI"][item]["summary"]
|
|
|
|
if ERR_LEVEL.index(cust["SLI"][item]["level"]) > ERR_LEVEL.index(retdata["SLI"][cust["SLI"][item]["category"]]["level"]):
|
|
retdata["SLI"][cust["SLI"][item]["category"]
|
|
]["level"] = cust["SLI"][item]["level"]
|
|
|
|
if "ISSUE" in cust:
|
|
for item in cust["ISSUE"]:
|
|
level = cust["ISSUE"][item]["level"]
|
|
|
|
if level in ERR_LEVEL:
|
|
if ERR_LEVEL.index(level) <= ERR_LEVEL.index("warning"):
|
|
level_idx = "WARN"
|
|
elif ERR_LEVEL.index(level) == ERR_LEVEL.index("error"):
|
|
level_idx = "ERR"
|
|
elif ERR_LEVEL.index(level) >= ERR_LEVEL.index("critical"):
|
|
level_idx = "CRIT"
|
|
else:
|
|
level_idx = "WARN"
|
|
|
|
if retdata["ISSUE"][level_idx]["summary"] == "未发现异常":
|
|
retdata["ISSUE"][level_idx]["summary"] = ""
|
|
retdata["ISSUE"][level_idx]["summary"] += "%s\n" % cust["ISSUE"][item]["summary"]
|
|
retdata["ISSUE"][level_idx]["summary"] += "%s\n\n" % cust["ISSUE"][item]["solution"]
|
|
retdata["ISSUE"][level_idx]["level"] = level
|
|
|
|
if "LOG" in cust:
|
|
for item in cust["LOG"]:
|
|
level = cust["LOG"][item]["level"]
|
|
|
|
if level in ERR_LEVEL:
|
|
if ERR_LEVEL.index(level) <= ERR_LEVEL.index("warning"):
|
|
level_idx = "WARN"
|
|
elif ERR_LEVEL.index(level) == ERR_LEVEL.index("error"):
|
|
level_idx = "ERR"
|
|
elif ERR_LEVEL.index(level) >= ERR_LEVEL.index("critical"):
|
|
level_idx = "CRIT"
|
|
else:
|
|
level_idx = "WARN"
|
|
|
|
if retdata["LOG"][level_idx]["summary"] == "未发现异常":
|
|
retdata["LOG"][level_idx]["summary"] = ""
|
|
retdata["LOG"][level_idx]["summary"] += "%s\n%s\n" % (
|
|
cust["LOG"][item]["name"], cust["LOG"][item]["desc"])
|
|
retdata["LOG"][level_idx]["summary"] += "%s\n" % cust["LOG"][item]["summary"]
|
|
retdata["LOG"][level_idx]["level"] = level
|
|
|
|
if "HW" in cust:
|
|
for item in cust["HW"]:
|
|
level = cust["HW"][item]["level"]
|
|
|
|
if retdata["HW"]["DMESG"]["summary"] == "未发现异常":
|
|
retdata["HW"]["DMESG"]["summary"] = ""
|
|
if ERR_LEVEL.index(cust["HW"][item]["level"]) > ERR_LEVEL.index(retdata["HW"]["DMESG"]["level"]):
|
|
retdata["HW"]["DMESG"]["level"] = cust["HW"][item]["level"]
|
|
|
|
retdata["HW"]["DMESG"]["summary"] += "%s\n%s\n" % (
|
|
cust["HW"][item]["name"], cust["HW"][item]["desc"])
|
|
retdata["HW"]["DMESG"]["summary"] += "%s\n" % cust["HW"][item]["summary"]
|
|
|
|
print(json.dumps(postprocess_result, indent=4, ensure_ascii=False))
|
|
except:
|
|
print(json.dumps(postprocess_result, indent=4, ensure_ascii=False))
|
|
|
|
|
|
def extract_params():
|
|
path, res, task_id = sys.argv[1], "", sys.argv[2]
|
|
with open(path, 'r') as tmp:
|
|
res = tmp.read()
|
|
return res, task_id
|
|
|
|
|
|
if __name__ == "__main__":
|
|
res, _ = extract_params()
|
|
ossre_to_sysom_json(res)
|