#!/usr/bin/python2.7 -tt import sys import time import getopt from lib.core.daemon import Daemon from lib.config.config import Config from lib.core import logger from apscheduler.scheduler import Scheduler import pprint NAME = "linspector" VERSION = "0.1/TETRIS" _configfile = str(sys.path[0]) + "/linspector.json" _logfile = str(sys.path[0]) + "/linspector.log" _pidfile = "/tmp/linspector.pid" class LinspectorDaemon(Daemon): def run(self): """ parse the joblist here and add each job to cron. """ sched = Scheduler() sched.start() x = sched.add_cron_job(job_function, second='*/1', args=['1!']) if x is not None: logger.writeLogToFile(_logfile, str(x.__dict__)) else: logger.writeLogToFile(_logfile, "sdfasdfsdf") sched.add_cron_job(job_function, second='*/2', args=['2!']) sched.add_cron_job(job_function, second='*/4', args=['4!']) sched.add_cron_job(job_function, second='*/5', args=['5!']) sched.add_cron_job(job_function, second='*/8', args=['8!']) sched.add_cron_job(job_function, second='*/10', args=['10!']) sched.add_cron_job(job_function, second='*/20', args=['20!']) sched.add_cron_job(job_function, second='*/40', args=['40!']) sched.add_cron_job(job_function, second='*', args=['0!']) while True: try: logger.writeLogToFile(_logfile, "Running!") except Exception as err: logger.writeLogToFile(_logfile, str(err)) sys.exit(1) time.sleep(1) def job_function(mes): logger.writeLogToFile(_logfile, "Function: job_function says " + str(mes) + ", from cron.") def usage(): print "usage: linspector [-cdhlprsSvV]" print "-c, --config=FILE select configfile to use" print "-d, --daemonize daemonize process" print "-h, --help this help" print "-l, --logfile=FILE set logfile to use" print "-p, --pidfile=FILE set the pidfile to use (default: /tmp/linspector.pid)" print "-r, --restart restart the daemon" print "-s, --start start the daemon" print "-S, --stop stop the daemon" print "-v, --verbose verbose mode" print "-V, --version show version information" def version(): print NAME + " " + VERSION print "copyright (c) 2011-2013 by Johannes Findeisen and Rafael Timmerberg" def main(): try: opts, args = getopt.getopt(sys.argv[1:], "hl:c:p:vVrsS", ["help", "logfile=", "config=", "pidfile=", "verbose", "version", "restart", "start", "stop"]) except getopt.GetoptError, err: print str(err) usage() sys.exit(2) verbose = False restart = False start = False stop = False for o, a in opts: if o in ("-v", "--verbose"): verbose = True elif o in ("-V", "--version"): version() sys.exit() elif o in ("-h", "--help"): usage() sys.exit() elif o in ("-c", "--config"): configfile = a global _configfile _configfile = a elif o in ("-l", "--logfile"): logfile = a global _logfile _logfile = a elif o in ("-p", "--pidfile"): pidfile = a global _pidfile _pidfile = a elif o in ("-r", "--restart"): restart = True elif o in ("-s", "--start"): start = True elif o in ("-S", "--stop"): stop = True if start is True or restart is True: config = Config(_configfile) #pprint.pprint(str(config.layouts)) #pprint.pprint(str(config.dict["hostgroups"])) #pprint.pprint(str(config.filters.)) """ for service in config.services: pprint.pprint(str(service)) for filter in config.filters: pprint.pprint(str(filter)) for member in config.members: pprint.pprint(str(member)) for period in config.periods: pprint.pprint(str(period)) for host in config.hosts: pprint.pprint(str(host)) """ for hostgroup in config.hostgroups: pprint.pprint(str(hostgroup)) #for layout in config.layouts.layouts: # pprint.pprint(str(layout #logger.writeLogToFile(_logfile, "config.layouts.lyouts: " + str([str(i) for i in config.layouts.layouts])) #logger.writeLogToFile(_logfile, "config.hostgroups: " + config.hostgroups) #logger.writeLogToFile(_logfile, "config.hosts: " + str([str(i) for i in config.hosts])) #logger.writeLogToFile(_logfile, "config.services: " + str([str(i) for i in config.services])) #logger.writeLogToFile(_logfile, "config.members: " + str([str(i) for i in config.members])) #logger.writeLogToFile(_logfile, "config.periods: " + str([str(i) for i in config.periods])) #logger.writeLogToFile(_logfile, "config.filters: " + str([str(i) for i in config.filters])) #logger.writeLogToFile(_logfile, "X:" + config.periods[0]) """ linspector = LinspectorDaemon(_pidfile) if start is True: logger.writeLogToFile(_logfile, "Starting Linspector...") logger.writeLogToFile(_logfile, "Path: " + str(sys.path[0])) logger.writeLogToFile(_logfile, "Configfile: " + _configfile) logger.writeLogToFile(_logfile, "Logfile: " + _logfile) logger.writeLogToFile(_logfile, "Pidfile: " + _pidfile) linspector.start() elif stop is True: logger.writeLogToFile(_logfile, "Stopping Linspector...") logger.writeLogToFile(_logfile, "Pidfile: " + _pidfile) linspector.stop() logger.writeLogToFile(_logfile, "Terminated!") elif restart is True: logger.writeLogToFile(_logfile, "Restarting Linspector...") logger.writeLogToFile(_logfile, "Path: " + str(sys.path[0])) logger.writeLogToFile(_logfile, "Configfile: " + _configfile) logger.writeLogToFile(_logfile, "Logfile: " + _logfile) logger.writeLogToFile(_logfile, "Pidfile: " + _pidfile) linspector.restart() sys.exit(0) """ if __name__ == "__main__": main()