File: //lib/python2.7/site-packages/lap/check_neighbors_birdc.py
from subprocess import Popen, PIPE
import yaml
def __run__(params):
try:
thresholds = yaml.load(params.get('thresholds'))
response = Popen(['sudo /usr/lib/check_mk_agent/need_sudo/birdc neighbors'], shell=True, stdout=PIPE, stderr=PIPE, close_fds=True)
infos, errors = response.communicate()
qtde = len([ line for line in infos.split('\n') if line.find('full') != -1 ])
thresholds.update({'qtde': qtde, 'limit': (thresholds['total'] - qtde)})
except Exception, e:
return [2, "CRITICAL - Error: %s" % repr(e)]
if errors:
return [2, 'CRITICAL - %s' % repr(errors)]
if thresholds['limit'] >= thresholds['critical']:
return [2, 'CRITICAL: The OSPF has %(qtde)s of %(total)s routes' % thresholds]
elif thresholds['limit'] >= thresholds['warning']:
return [1, 'WARNING: The OSPF has %(qtde)s of %(total)s route' % thresholds]
else:
return [0, 'OK - OSPF Routes is ok: %(qtde)s routes' % thresholds]