File: //proc/self/root/lib/python2.7/site-packages/lap/pgsql_check_installation.py
import psycopg2
import yaml
import os
def __run__(params):
conn = None
try:
os.environ['PGPASSFILE'] = params.get('pgpassfile')
conn = psycopg2.connect(host=params.get('host'),
port=int(params.get('port')),
database='postgres',
user=params.get('user'))
cursor = conn.cursor()
# we connected, so mysql is working, now some additional tests
# get number of connections
cursor.execute("SELECT COUNT(datname) FROM pg_database WHERE datname NOT IN ('template1','template0','postgres','beholder')")
databases = cursor.fetchone()[0]
perfdata = "databases={0}".format(databases)
if databases >= 2000:
return [2, 'CRITICAL: {0} bases'.format(databases), perfdata]
elif databases > 1800:
return [1, 'WARNING: {0} base'.format(databases), perfdata]
else:
return [0, 'OK: {0} bases'.format(databases), perfdata]
except Exception, e:
return [2, 'CRITICAL: {0}'.format(str(e))]
finally:
try:
if conn:
conn.close()
except:
# finally clause, don't bother about errors here
pass