78 lines
1.9 KiB
Python
78 lines
1.9 KiB
Python
|
|
import enum as _enum
|
||
|
|
import time as _time
|
||
|
|
|
||
|
|
|
||
|
|
def file_read(path):
|
||
|
|
handle = open(path, "r")
|
||
|
|
content = handle.read()
|
||
|
|
handle.close()
|
||
|
|
return content
|
||
|
|
|
||
|
|
|
||
|
|
def file_write(path, content):
|
||
|
|
handle = open(path, "w")
|
||
|
|
handle.write(content)
|
||
|
|
handle.close()
|
||
|
|
|
||
|
|
|
||
|
|
def string_coin(template, arguments):
|
||
|
|
result = template
|
||
|
|
for (key, value, ) in arguments.items():
|
||
|
|
result = result.replace("{{%s}}" % key, value)
|
||
|
|
return result
|
||
|
|
|
||
|
|
|
||
|
|
def get_current_timestamp():
|
||
|
|
return int(round(_time.time(), 0))
|
||
|
|
|
||
|
|
|
||
|
|
def dict_merge(core_dict, mantle_dict, recursive = False):
|
||
|
|
result_dict = {}
|
||
|
|
for current_dict in [core_dict, mantle_dict]:
|
||
|
|
for (key, value, ) in current_dict.items():
|
||
|
|
if (not (key in result_dict)):
|
||
|
|
result_dict[key] = value
|
||
|
|
else:
|
||
|
|
if (recursive and (type(result_dict[key]) == dict) and (type(value) == dict)):
|
||
|
|
result_dict[key] = dict_merge(result_dict[key], value)
|
||
|
|
elif (recursive and (type(result_dict[key]) == list) and (type(value) == list)):
|
||
|
|
result_dict[key] = (result_dict[key] + value)
|
||
|
|
else:
|
||
|
|
result_dict[key] = value
|
||
|
|
return result_dict
|
||
|
|
|
||
|
|
|
||
|
|
class enum_condition(_enum.Enum):
|
||
|
|
unknown = 0
|
||
|
|
ok = 1
|
||
|
|
warning = 2
|
||
|
|
critical = 3
|
||
|
|
|
||
|
|
|
||
|
|
def condition_encode(condition):
|
||
|
|
if (condition == enum_condition.ok):
|
||
|
|
return "ok"
|
||
|
|
elif (condition == enum_condition.unknown):
|
||
|
|
return "unknown"
|
||
|
|
elif (condition == enum_condition.warning):
|
||
|
|
return "warning"
|
||
|
|
elif (condition == enum_condition.critical):
|
||
|
|
return "critical"
|
||
|
|
else:
|
||
|
|
raise ValueError("unhandled condition: %s" % str(condition))
|
||
|
|
|
||
|
|
|
||
|
|
def condition_decode(condition_encoded):
|
||
|
|
if (condition_encoded == "ok"):
|
||
|
|
return enum_condition.ok
|
||
|
|
elif (condition_encoded == "unknown"):
|
||
|
|
return enum_condition.unknown
|
||
|
|
elif (condition_encoded == "warning"):
|
||
|
|
return enum_condition.warning
|
||
|
|
elif (condition_encoded == "critical"):
|
||
|
|
return enum_condition.critical
|
||
|
|
else:
|
||
|
|
raise ValueError("unhandled encoded condition: %s" % condition_encoded)
|
||
|
|
|
||
|
|
|