Linspector is running, again!!

This commit is contained in:
Rafael.Timmerberg 2013-06-21 02:20:58 +02:00
commit 8d0e924bd2
2 changed files with 25 additions and 33 deletions

View file

@ -14,42 +14,24 @@ def generateId():
class JobInfo: class JobInfo:
def __init__(self, hostgroupname, members, hosts, hostServices, threshold, parent=None): def __init__(self, service):
self.members = members self.service = service
self.hosts = hosts
self.hostServices = hostServices
self.threshold = threshold
self.parent = parent
self.name = generateId() self.name = generateId()
#self.name = hostgroupname + str([str("_" + s.service.name ) for s in hostServices]) self.job = None
self.jobs = []
def __str__(self): def __str__(self):
return "JobInfo " + str(self.name) return "JobInfo " + str(self.name)
def setLogger(self, log): def set_logger(self, log):
self.log = log self.log = log
def appendJob(self, job): def set_job(self, job):
self.jobs.append(job) self.job = job
def getNextExecutionTime(self): def handle_call(self):
nextExecution = None
for job in self.jobs:
jobExec = job.trigger.get_next_fire_time()
if nextExecution is None or nextExecution > jobExec:
nextExecution = jobExec
return nextExecution
def handleCall(self):
self.log.d("handle call") self.log.d("handle call")
self.log.d(self.hostServices) self.log.d(self.service)
try: try:
self.service._execute()
for hs in self.hostServices: except Exception, e:
self.log.d(str(hs)) self.log.d(e)
cmd = Command(hs.service.command, self.log)
cmd.call()
self.log.d(cmd.getAllOutput())
except Exception:
self.log.d(Exception)

View file

@ -11,6 +11,7 @@ from lib.core.job import JobInfo
from lib.core.logger import Logger from lib.core.logger import Logger
from lib.config.parser import FullConfigParser from lib.config.parser import FullConfigParser
from apscheduler.scheduler import Scheduler from apscheduler.scheduler import Scheduler
from lib.core.job import JobInfo
log = None log = None
@ -44,7 +45,7 @@ def parseArgs():
def handleJob(jobInfo): def handleJob(jobInfo):
log.w(jobInfo) jobInfo.handle_call()
def main(): def main():
@ -66,7 +67,16 @@ def main():
for hostgroup in layout.get_hostgroups(): for hostgroup in layout.get_hostgroups():
for service in hostgroup.get_services(): for service in hostgroup.get_services():
for period in service.get_periods(): for period in service.get_periods():
jobs.append(period.createJob(scheduler, service, handleJob)) jobInfo = JobInfo(service)
job = period.createJob(scheduler, jobInfo, handleJob)
if job is not None:
jobInfo.set_job(job)
jobInfo.set_logger(log)
jobs.append(jobInfo)
while True:
#Todo: implement user handle
time.sleep(10)
#log.i("starting linspector: reading config... (" + args.config + ")") #log.i("starting linspector: reading config... (" + args.config + ")")