#!/usr/bin/python import pynag.Plugins import cx_Oracle helper = pynag.Plugins.PluginHelper() helper.parser.add_option('--host', help="MSSQL Server to connect to", dest="host") helper.parser.add_option('--username', help="MSSQL Username to connect with", dest="username") helper.parser.add_option('--password', help="MSSQL Server to connect to", dest="password") helper.parser.add_option('--database', help="MSSQL Database", dest="database") helper.parser.add_option('--query', help="MSSQL Query to execute", dest="query") # When parse_arguments is called some default options like --threshold and --no-longoutput are automatically added helper.parse_arguments() host = helper.options.host username = helper.options.username password = helper.options.password database = helper.options.database query = helper.options.query #enable_debugging = helper.options.debug enable_debugging = helper.options.verbose def debug(message): if enable_debugging: print "debug: %s" % str(message) if not host: helper.parser.error('--host is required') if not username: helper.parser.error('--username is required') if not password: helper.parser.error('--password is required') if not database: helper.parser.error('--database is required') # Actual coding logic starts conn = cx_Oracle.connect(username, password, database) debug("connecting to host") cur = conn.cursor() debug("Executing sql query: %s" % query) cur.execute(query) status,text = None,None for row in cur: debug(row) if len(row) > 0: status = row[0] if len(row) > 1: text = row[1] else: text = "" if text == '': text = "No text in this field" if status not in pynag.Plugins.state_text: helper.add_summary("Invalid status: %s" % status) status = pynag.Plugins.unknown helper.status(status) helper.add_long_output("%s: %s" % (pynag.Plugins.state_text.get(status,'unknown'), text) ) if not helper.get_summary(): if not text: helper.add_summary("Hey! Af hverju er enginn texti?") else: helper.add_summary(text) helper.check_all_metrics() helper.exit()