Just commiting old stuff... don't know what changed in logic...

This commit is contained in:
Johannes Findeisen 2022-09-25 04:36:55 +02:00
commit b7e95522d4
4 changed files with 49 additions and 41 deletions

3
.gitignore vendored
View file

@ -16,3 +16,6 @@ log
examples/private* examples/private*
linspector/services/private* linspector/services/private*
NOTES.* NOTES.*
linspector.iml

View file

@ -21,10 +21,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
""" """
__version__ = "0.16/AMNESIA" __version__ = "0.17"
import argparse import argparse
import copy
import datetime import datetime
import logging import logging
import logging.handlers import logging.handlers
@ -70,7 +69,7 @@ def parse_args():
parser.add_argument("-m", "--logsize", default=10485760, type=int, parser.add_argument("-m", "--logsize", default=10485760, type=int,
help="maximum logfile size in bytes (default: 10485760)") 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)") help="maximum number of scheduler threads (default: 3500)")
parser.add_argument("-p", "--processes", default=0, type=int, parser.add_argument("-p", "--processes", default=0, type=int,
@ -96,9 +95,14 @@ def parse_args():
def handle_job(job): def handle_job(job):
print("HANDLE")
job.handle_call() job.handle_call()
def tick(job):
print("TICK")
def main(): def main():
global lin_conf global lin_conf
args = parse_args() args = parse_args()
@ -117,7 +121,7 @@ def main():
try: try:
config_parser = FullConfigParser() config_parser = FullConfigParser()
lin_conf, core = config_parser.parse_config(args.config) lin_conf, core = config_parser.parse_config(args.config)
except Exception, msg: except Exception as msg:
print("Configuration error: " + str(msg) + ". Exiting now.") print("Configuration error: " + str(msg) + ". Exiting now.")
logger.error(msg) logger.error(msg)
exit() exit()
@ -127,7 +131,7 @@ def main():
} }
executors = { executors = {
'default': ThreadPoolExecutor(args.threads), 'default': ThreadPoolExecutor(args.threads),
'processpool': ProcessPoolExecutor(args.processes) #'default': ProcessPoolExecutor(args.processes)
} }
job_defaults = { job_defaults = {
'max_instances': 10000 'max_instances': 10000
@ -141,7 +145,7 @@ def main():
for hostgroup in layout.get_hostgroups(): for hostgroup in layout.get_hostgroups():
job_count += (hostgroup.get_services().__len__() * hostgroup.get_hosts().__len__()) 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 time_delta = 0
jobs = [] jobs = []
@ -168,10 +172,13 @@ def main():
core, core,
hostgroup) 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: #if scheduler_job is not None:
scheduler_job.misfire_grace_time = 2 #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) job.set_job(scheduler_job)
jobs.append(job) jobs.append(job)

View file

@ -31,9 +31,6 @@ class Period(object):
def get_name(self): def get_name(self):
return self.name return self.name
#def createJob(self, scheduler, jobInfo, func):
# pass
class IntervalPeriod(Period): class IntervalPeriod(Period):
def __init__(self, name="", weeks=0, days=0, hours=0, minutes=0, seconds=0, start_date=None, comment=None): 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.start_date = start_date # when to first execute
self.comment = comment # comment self.comment = comment # comment
def createJob(self, scheduler, jobInfo, func, **kwargs): #def createJob(self, scheduler, jobInfo, func, **kwargs):
start_date = self.start_date # start_date = self.start_date
if "start_date" in kwargs: # if "start_date" in kwargs:
start_date = kwargs["start_date"] # start_date = kwargs["start_date"]
return scheduler.add_job(func, trigger="interval", weeks=self.weeks, hours=self.hours, minutes=self.minutes, # 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") # seconds=self.seconds, start_date=start_date, args=[jobInfo], timezone="CET")
def __str__(self): def __str__(self):
ret = "IntervalPeriod(Name: " + self.name + ")" ret = "IntervalPeriod(Name: " + self.name + ")"
@ -79,15 +76,15 @@ class CronPeriod(Period):
ret = "CronPeriod(Name: " + self.name + ")" ret = "CronPeriod(Name: " + self.name + ")"
return ret return ret
def createJob(self, scheduler, jobInfo, func, **kwargs): #def createJob(self, scheduler, jobInfo, func, **kwargs):
start_date = self.start_date # start_date = self.start_date
if "start_date" in kwargs: # if "start_date" in kwargs:
start_date = kwargs["start_date"] # start_date = kwargs["start_date"]
return scheduler.add_job(func, trigger="cron", year=self.year, month=self.month, day=self.day, week=self.week, # 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, # day_of_week=self.day_of_week, hour=self.hour, minute=self.minute,
second=self.second, start_date=start_date, args=[jobInfo]) # second=self.second, start_date=start_date, args=[jobInfo])
class DatePeriod(Period): class DatePeriod(Period):
@ -100,14 +97,14 @@ class DatePeriod(Period):
ret = "DatePeriod(Name: " + self.name + ", " + str(self.date) + ")" ret = "DatePeriod(Name: " + self.name + ", " + str(self.date) + ")"
return ret return ret
def createJob(self, scheduler, jobInfo, func, **kwargs): #def createJob(self, scheduler, jobInfo, func, **kwargs):
try: # try:
if "start_date" in kwargs: # if "start_date" in kwargs:
earliest = kwargs["start_date"] # earliest = kwargs["start_date"]
date = convert_to_datetime(self.date) # date = convert_to_datetime(self.date)
if date < earliest: # if date < earliest:
self.date = earliest # self.date = earliest
return scheduler.add_job(func=func, trigger="date", date=self.date, args=[jobInfo]) # return scheduler.add_job(func=func, trigger="date", date=self.date, args=[jobInfo])
except Exception, e: # except Exception, e:
logger.error("exception while creating job out of DatePeriod!\n%s" % e) # logger.error("exception while creating job out of DatePeriod!\n%s" % e)

View file

@ -119,6 +119,7 @@ class LinspectorJob:
TaskExecutor.Instance().schedule_task(job_information, task) TaskExecutor.Instance().schedule_task(job_information, task)
def handle_call(self): def handle_call(self):
print("\nHANDLE CALL")
logger.debug("handle call") logger.debug("handle call")
logger.debug(self.service) logger.debug(self.service)
if self.enabled: if self.enabled: