OK = 0 WARN = 1 CRIT = 2 UNKNOWN = 3 def extract_values(info): values = {} for line in info: key = line[0].replace(':','') value = " ".join(line[1:]) values[key] = value return values def inventory_mysql_repl_status(info): inventory = [] try: values = extract_values(info) if 'Slave_IO_Running' in values: inventory.append(('Slave_IO_Running', ['IO'])) if 'Slave_SQL_Running' in values: inventory.append(('Slave_SQL_Running', ['SQL'])) return inventory except Exception, e: return [] def check_mysql_repl_status(item, params, info): try: values = extract_values(info) if item in values: if values[item] == 'Yes': return (OK, 'Slave %s is running' % params[0]) return (CRIT, 'Slave %s is not(!!) running' % params[0]) except Exception, e: return (UNKNOWN, "mysql_repl check failed: %", e.message) check_info["mysql_repl"] = { 'check_function': check_mysql_repl_status, 'inventory_function': inventory_mysql_repl_status, 'service_description': 'mySQL Replication CLient Status', }