From b7e95522d4d99e76a6f2b6eaef08bb2256fb2d28 Mon Sep 17 00:00:00 2001 From: Johannes Findeisen Date: Sun, 25 Sep 2022 04:36:55 +0200 Subject: [PATCH] Just commiting old stuff... don't know what changed in logic... --- .gitignore | 5 +++- bin/linspector | 31 +++++++++++++--------- linspector/config/periods.py | 51 +++++++++++++++++------------------- linspector/core/job.py | 1 + 4 files changed, 48 insertions(+), 40 deletions(-) diff --git a/.gitignore b/.gitignore index 0c5c16b..6524bd0 100644 --- a/.gitignore +++ b/.gitignore @@ -15,4 +15,7 @@ log examples/private* linspector/services/private* -NOTES.* \ No newline at end of file +NOTES.* + +linspector.iml + diff --git a/bin/linspector b/bin/linspector index 8988ea4..cb84a0a 100755 --- a/bin/linspector +++ b/bin/linspector @@ -21,10 +21,9 @@ along with this program. If not, see . """ -__version__ = "0.16/AMNESIA" +__version__ = "0.17" import argparse -import copy import datetime import logging import logging.handlers @@ -70,7 +69,7 @@ def parse_args(): parser.add_argument("-m", "--logsize", default=10485760, type=int, help="maximum logfile size in bytes (default: 10485760)") - parser.add_argument("-t", "--threads", default=3500, type=int, + parser.add_argument("-t", "--threads", default=20, type=int, help="maximum number of scheduler threads (default: 3500)") parser.add_argument("-p", "--processes", default=0, type=int, @@ -96,9 +95,14 @@ def parse_args(): def handle_job(job): + print("HANDLE") job.handle_call() +def tick(job): + print("TICK") + + def main(): global lin_conf args = parse_args() @@ -117,17 +121,17 @@ def main(): try: config_parser = FullConfigParser() lin_conf, core = config_parser.parse_config(args.config) - except Exception, msg: + except Exception as msg: print("Configuration error: " + str(msg) + ". Exiting now.") logger.error(msg) exit() - + jobstores = { 'memory': MemoryJobStore() } executors = { 'default': ThreadPoolExecutor(args.threads), - 'processpool': ProcessPoolExecutor(args.processes) + #'default': ProcessPoolExecutor(args.processes) } job_defaults = { 'max_instances': 10000 @@ -141,7 +145,7 @@ def main(): for hostgroup in layout.get_hostgroups(): job_count += (hostgroup.get_services().__len__() * hostgroup.get_hosts().__len__()) - start_date = datetime.datetime.now() + datetime.timedelta(seconds=30) + start_date = datetime.datetime.now()# + datetime.timedelta(seconds=1) time_delta = 0 jobs = [] @@ -168,12 +172,15 @@ def main(): core, hostgroup) - scheduler_job = period.createJob(scheduler, job, handle_job, start_date=new_start_date) + #scheduler_job = period.createJob(scheduler, job, handle_job, start_date=new_start_date) - if scheduler_job is not None: - scheduler_job.misfire_grace_time = 2 - job.set_job(scheduler_job) - jobs.append(job) + #if scheduler_job is not None: + #scheduler.misfire_grace_time = 2 + #print(new_start_date) + scheduler_job = scheduler.add_job(tick, 'interval', start_date=new_start_date, seconds=3, timezone="CET", args=[job]) + #print(scheduler_job) + job.set_job(scheduler_job) + jobs.append(job) print("\nStarting Scheduler...") diff --git a/linspector/config/periods.py b/linspector/config/periods.py index 95b1b4f..2534b1c 100644 --- a/linspector/config/periods.py +++ b/linspector/config/periods.py @@ -30,10 +30,7 @@ class Period(object): def get_name(self): return self.name - - #def createJob(self, scheduler, jobInfo, func): - # pass - + class IntervalPeriod(Period): def __init__(self, name="", weeks=0, days=0, hours=0, minutes=0, seconds=0, start_date=None, comment=None): @@ -47,13 +44,13 @@ class IntervalPeriod(Period): self.start_date = start_date # when to first execute self.comment = comment # comment - def createJob(self, scheduler, jobInfo, func, **kwargs): - start_date = self.start_date - if "start_date" in kwargs: - start_date = kwargs["start_date"] + #def createJob(self, scheduler, jobInfo, func, **kwargs): + # start_date = self.start_date + # if "start_date" in kwargs: + # start_date = kwargs["start_date"] - return scheduler.add_job(func, trigger="interval", weeks=self.weeks, hours=self.hours, minutes=self.minutes, - seconds=self.seconds, start_date=start_date, args=[jobInfo], timezone="CET") + # return scheduler.add_job(func, trigger="interval", weeks=self.weeks, hours=self.hours, minutes=self.minutes, + # seconds=self.seconds, start_date=start_date, args=[jobInfo], timezone="CET") def __str__(self): ret = "IntervalPeriod(Name: " + self.name + ")" @@ -79,15 +76,15 @@ class CronPeriod(Period): ret = "CronPeriod(Name: " + self.name + ")" return ret - def createJob(self, scheduler, jobInfo, func, **kwargs): - start_date = self.start_date + #def createJob(self, scheduler, jobInfo, func, **kwargs): + # start_date = self.start_date - if "start_date" in kwargs: - start_date = kwargs["start_date"] + # if "start_date" in kwargs: + # start_date = kwargs["start_date"] - return scheduler.add_job(func, trigger="cron", year=self.year, month=self.month, day=self.day, week=self.week, - day_of_week=self.day_of_week, hour=self.hour, minute=self.minute, - second=self.second, start_date=start_date, args=[jobInfo]) + # return scheduler.add_job(func, trigger="cron", year=self.year, month=self.month, day=self.day, week=self.week, + # day_of_week=self.day_of_week, hour=self.hour, minute=self.minute, + # second=self.second, start_date=start_date, args=[jobInfo]) class DatePeriod(Period): @@ -100,14 +97,14 @@ class DatePeriod(Period): ret = "DatePeriod(Name: " + self.name + ", " + str(self.date) + ")" return ret - def createJob(self, scheduler, jobInfo, func, **kwargs): - try: - if "start_date" in kwargs: - earliest = kwargs["start_date"] - date = convert_to_datetime(self.date) - if date < earliest: - self.date = earliest + #def createJob(self, scheduler, jobInfo, func, **kwargs): + # try: + # if "start_date" in kwargs: + # earliest = kwargs["start_date"] + # date = convert_to_datetime(self.date) + # if date < earliest: + # self.date = earliest - return scheduler.add_job(func=func, trigger="date", date=self.date, args=[jobInfo]) - except Exception, e: - logger.error("exception while creating job out of DatePeriod!\n%s" % e) + # return scheduler.add_job(func=func, trigger="date", date=self.date, args=[jobInfo]) + # except Exception, e: + # logger.error("exception while creating job out of DatePeriod!\n%s" % e) diff --git a/linspector/core/job.py b/linspector/core/job.py index b6aa1ff..a0888ae 100644 --- a/linspector/core/job.py +++ b/linspector/core/job.py @@ -119,6 +119,7 @@ class LinspectorJob: TaskExecutor.Instance().schedule_task(job_information, task) def handle_call(self): + print("\nHANDLE CALL") logger.debug("handle call") logger.debug(self.service) if self.enabled: