diff --git a/lib/core/job.py b/lib/core/job.py index 2608f2b..80ea35a 100644 --- a/lib/core/job.py +++ b/lib/core/job.py @@ -14,42 +14,24 @@ def generateId(): class JobInfo: - def __init__(self, hostgroupname, members, hosts, hostServices, threshold, parent=None): - self.members = members - self.hosts = hosts - self.hostServices = hostServices - self.threshold = threshold - self.parent = parent + def __init__(self, service): + self.service = service self.name = generateId() - #self.name = hostgroupname + str([str("_" + s.service.name ) for s in hostServices]) - self.jobs = [] + self.job = None def __str__(self): return "JobInfo " + str(self.name) - def setLogger(self, log): + def set_logger(self, log): self.log = log - - def appendJob(self, job): - self.jobs.append(job) - - def getNextExecutionTime(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): + + def set_job(self, job): + self.job = job + + def handle_call(self): self.log.d("handle call") - self.log.d(self.hostServices) + self.log.d(self.service) try: - - for hs in self.hostServices: - self.log.d(str(hs)) - cmd = Command(hs.service.command, self.log) - cmd.call() - self.log.d(cmd.getAllOutput()) - except Exception: - self.log.d(Exception) \ No newline at end of file + self.service._execute() + except Exception, e: + self.log.d(e) \ No newline at end of file diff --git a/linspector b/linspector index 2e60ac2..0b92a19 100755 --- a/linspector +++ b/linspector @@ -11,6 +11,7 @@ from lib.core.job import JobInfo from lib.core.logger import Logger from lib.config.parser import FullConfigParser from apscheduler.scheduler import Scheduler +from lib.core.job import JobInfo log = None @@ -44,7 +45,7 @@ def parseArgs(): def handleJob(jobInfo): - log.w(jobInfo) + jobInfo.handle_call() def main(): @@ -66,7 +67,16 @@ def main(): for hostgroup in layout.get_hostgroups(): for service in hostgroup.get_services(): 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 + ")")