core/source/check_kinds/script.py
2022-11-30 00:36:39 +01:00

38 lines
819 B
Python

class implementation_check_kind_script(interface_check_kind):
'''
[implementation]
'''
def normalize_conf_node(self, node):
return dict_merge(
{
},
node
)
'''
[implementation]
'''
def run(self, check_data):
result = _subprocess.run(
[check_data["parameters"]["path"]] + check_data["parameters"]["arguments"],
capture_output = True
)
if (result.returncode == 0):
condition = enum_condition.ok
elif (result.returncode == 1):
condition = enum_condition.unknown
elif (result.returncode == 2):
condition = enum_condition.warning
elif (result.returncode == 3):
condition = enum_condition.critical
else:
raise ValueError("invalid exit code: %i" % result.returncode)
output = result.stdout.decode()
return {
"condition": condition,
"output": output,
}