added progess in percent while scheduling jobs... yay... :)

This commit is contained in:
Johannes Findeisen 2013-11-23 20:18:38 +01:00
commit 64800c3741

View file

@ -20,7 +20,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
""" """
__version__ = "0.14/AMNESIA" __version__ = "0.15/AMNESIA"
import argparse import argparse
import datetime import datetime
@ -28,6 +28,7 @@ import logging
import logging.handlers import logging.handlers
import os import os
import os.path as path import os.path as path
import sys
from linspector.backends.jsonrpc import JsonrpcBackend from linspector.backends.jsonrpc import JsonrpcBackend
from linspector.config.parser import FullConfigParser from linspector.config.parser import FullConfigParser
@ -116,21 +117,36 @@ def main():
logger.error(msg) logger.error(msg)
exit() exit()
print("Scheduling jobs. Be patient...")
scheduler = Scheduler({"apscheduler.threadpool.core_threads": args.corethreads, scheduler = Scheduler({"apscheduler.threadpool.core_threads": args.corethreads,
"apscheduler.threadpool.max_threads": args.threads}) "apscheduler.threadpool.max_threads": args.threads})
scheduler.start() scheduler.start()
TaskExecutor.Instance() TaskExecutor.Instance()
job_count = 0
for layout in linConf.get_enabled_layouts():
for hostgroup in layout.get_hostgroups():
job_count += (hostgroup.get_services().__len__() * hostgroup.get_hosts().__len__())
start_date = datetime.datetime.now() start_date = datetime.datetime.now()
time_delta = 0 time_delta = 0
jobs = [] jobs = []
count = 0
percent = 0
for layout in linConf.get_enabled_layouts(): for layout in linConf.get_enabled_layouts():
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 host in hostgroup.get_hosts(): for host in hostgroup.get_hosts():
for period in service.get_periods(): for period in service.get_periods():
count += 1
if job_count >= 100:
if count % (job_count/100) == 0:
percent += 1
sys.stdout.write("Scheduling jobs. Be patient... " + str(percent) + "%\r")
sys.stdout.flush()
else:
sys.stdout.write("Scheduling jobs. Be patient...\r")
sys.stdout.flush()
time_delta += float(args.delay) time_delta += float(args.delay)
new_start_date = start_date + datetime.timedelta(seconds=time_delta) new_start_date = start_date + datetime.timedelta(seconds=time_delta)
job = Job(service, job = Job(service,
@ -143,6 +159,8 @@ def main():
job.set_job(scheduler_job) job.set_job(scheduler_job)
jobs.append(job) jobs.append(job)
print("\nScheduled " + str(job_count) + " jobs")
interface = LinspectorInterface(jobs, scheduler, linConf) interface = LinspectorInterface(jobs, scheduler, linConf)
if "jsonrpc_backend" in core and core["jsonrpc_backend"]: if "jsonrpc_backend" in core and core["jsonrpc_backend"]:
@ -150,8 +168,6 @@ def main():
jsonrpc.daemon = True jsonrpc.daemon = True
jsonrpc.start() jsonrpc.start()
print("Ready!")
print("Type \"help\" to view available commands or \"help COMMAND\" to view the commands help") print("Type \"help\" to view available commands or \"help COMMAND\" to view the commands help")
LishFrontend(interface) LishFrontend(interface)