File: //usr/lib/python2.7/site-packages/lap/dovecot.py
import subprocess
def __run__(params):
protocol = params.get("protocol")
response = subprocess.Popen(["doveadm" "who"], stdout=subprocess.PIPE, stderr=subprocess.PIPE, close_fds=True)
response.wait()
status = response.communicate()
if response.returncode != 0:
return [3, "UNKNOWN: %s" % status[1] ]
total_connections = 0
for line in [ l.strip().split() for l in status[0].splitlines() ]:
if line[2] == protocol:
total_connections += int(line[1])
perfdata = []
perfdata.append(("total_connections", str(total_connections)))
perfdata = "|".join([ "=".join(x) for x in perfdata])
# TODO -> Get connection limit and check
return [0, "OK: [%s] current %d connections" % (protocol, total_connections), perfdata]