class implementation_check_kind_script(interface_check_kind): ''' [implementation] ''' def normalize_conf_node(self, node): return dict_merge( { }, node ) ''' [implementation] ''' def run(self, parameters): result = _subprocess.run( [parameters["path"]] + 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, }