2
0
mirror of https://github.com/xcat2/confluent.git synced 2025-01-12 02:38:20 +00:00

Map health to nagios compatible codes

nodehealth adds granularity and health to the return code.
Rather than only reflecting failure running command, also
have nodehealth assign exit code according to the expectations
of nagios.
This commit is contained in:
Jarrod Johnson 2018-10-30 13:56:09 -04:00
parent 25b969a4db
commit d836bf7298

View File

@ -44,6 +44,13 @@ except IndexError:
client.check_globbing(noderange)
codemappings = {
'ok': 0,
'warning': 1,
'critical': 2,
'failed': 2,
}
def main():
global session, exitcode, healthbynode, healthexplanations, health, node, sensor, explanation
session = client.Command()
@ -66,9 +73,11 @@ def main():
if 'error' in health[node]:
sys.stderr.write('{0}: Error: {1}\n'.format(
node, health[node]['error']))
exitcode |= 1
exitcode = 3
if 'health' in health[node]:
healthbynode[node] = health[node]['health']['value']
if codemappings[healthbynode[node]] > exitcode:
exitcode = codemappings[healthbynode[node]]
if 'sensors' in health[node]:
healthexplanations[node] = []
for sensor in health[node]['sensors']:
@ -94,5 +103,5 @@ try:
main()
except KeyboardInterrupt:
print('')
sys.exit(0)
sys.exit(exitcode)