File: //lib/python2.7/site-packages/lap/unbound.py
import commands
import DNS
def counter():
CMD = '/usr/sbin/unbound-control stats'
data = {}
output = commands.getoutput(CMD)
for line in output.splitlines():
if line.startswith('total.num.queries'):
data['queries'] = line.split('=')[1]
elif line.startswith('total.num.cachehits'):
data['cachehits'] = line.split('=')[1]
elif line.startswith('total.num.cachemiss'):
data['cachemiss'] = line.split('=')[1]
return '|'.join([ str('%s=%s' % (x, data[x])) for x in data ])
def __run__(params):
try:
DNS.DiscoverNameServers()
DN = 'google.com'
if '127.0.0.1' in DNS.defaults['server']:
if len(DNS.dnslookup(DN, 'A')):
return [0, "OK", counter()]
else:
return [2, "CRITICAL: Unable to resolve domain"]
else:
return [2, "CRITICAL: Unable to use local cache"]
except Exception, e:
return [2,"CRITICAL: %s" % repr(e)]