#!/usr/local/bin/python
# -*- encoding: iso-8859-1 -*-

# Ce script vérifie si les stats de délivraion email (sur Nuala) ont bien
# été mises à jour suffisament récemment.

# Yann Grossel / Claranet - 2005.09.30

NAGIOS_OK			= 0
NAGIOS_WARNING		= 1
NAGIOS_CRITICAL	= 2
NAGIOS_UNKNOWN		= 3

max_delta			= 7200	# 7200 secondes => 2 heures

#

import os, sys, MySQLdb as mysql

sql_host = 'nuala.fr.clara.net'
sql_user = 'mail_stats'
sql_pass = 'Gb8dfsvaow73'
sql_base = 'mail_stats'

# On se connecte au server MySQL.

try:
	sql = mysql.connect(host = sql_host, user = sql_user, passwd = sql_pass, db = sql_base)
except:
	print "Failed to connect to mysql server."
	sys.exit(NAGIOS_WARNING)

sqlc = sql.cursor()

# On effectue la requete

sqlc.execute("SELECT UNIX_TIMESTAMP(NOW()) - MAX(ts) FROM daily")

r = sqlc.fetchall()

if len(r) != 1:
	print "MySQL query returned %d rows ?!" % (len(r))
	sys.exit(NAGIOS_UNKNOWN)

# On check la valeur obtenue.

r = r[0][0]

if r < 0: r = 0 - r

if r > max_delta:
	print "Stats last updated %d seconds ago !" % (r)
	sys.exit(NAGIOS_CRITICAL)

# Ok.

print "Stats last updated %d seconds ago." % (r)

sys.exit(NAGIOS_OK)

# vim: set ts=3 sw=3:
