From 3bfa3abee41afd4e870cddac5fd37ecbba63dac2 Mon Sep 17 00:00:00 2001 From: Julian Rother <julianr@fsmpi.rwth-aachen.de> Date: Fri, 1 Dec 2017 12:41:14 +0100 Subject: [PATCH] Moved handler registration to server.py to reduce module dependencies --- edit.py | 12 ------------ jobs.py | 19 ------------------- server.py | 35 +++++++++++++++++++++++++++++++++-- 3 files changed, 33 insertions(+), 33 deletions(-) diff --git a/edit.py b/edit.py index f9eafb7..d776e06 100644 --- a/edit.py +++ b/edit.py @@ -119,18 +119,6 @@ def getfielddescription(path): desc = '<br>'+desc return desc -edit_handlers = {} -def edit_handler(*tables, field=None): - def wrapper(func): - for table in tables: - if table not in edit_handlers: - edit_handlers[table] = {} - if field not in edit_handlers[table]: - edit_handlers[table][field] = [] - edit_handlers[table][field].append(func) - return func - return wrapper - @app.route('/internal/edit', methods=['GET', 'POST']) @mod_required @csrf_protect diff --git a/jobs.py b/jobs.py index 0718d7d..509697a 100644 --- a/jobs.py +++ b/jobs.py @@ -99,25 +99,6 @@ def jobs_worker_ping(hostname): query('REPLACE INTO worker (hostname, last_ping) values (?, ?)', hostname, datetime.now()) return 'OK',200 -job_handlers = {} -def job_handler(*types, state='finished'): - def wrapper(func): - for jobtype in types: - if jobtype not in job_handlers: - job_handlers[jobtype] = {} - if jobtype not in job_handlers[jobtype]: - job_handlers[jobtype][state] = [] - job_handlers[jobtype][state].append(func) - return func - return wrapper - -def schedule_job(jobtype, data=None, priority=0): - if not data: - data = {} - modify('INSERT INTO jobs (type, priority, data, time_created) VALUES (?, ?, ?, ?)', - jobtype, priority, json.dumps(data, default=date_json_handler), datetime.now()) - - @app.route('/internal/jobs/api/job/<int:id>/ping', methods=['GET', 'POST']) @jobs_api_token_required def jobs_ping(id): diff --git a/server.py b/server.py index fba13c7..5db9de3 100644 --- a/server.py +++ b/server.py @@ -461,14 +461,45 @@ def dbstatus(): clusters[cluster].append(host) return render_template('dbstatus.html', clusters=clusters, statuses=status, vars=variables), 200 -from edit import edit_handler + +job_handlers = {} +def job_handler(*types, state='finished'): + def wrapper(func): + for jobtype in types: + if jobtype not in job_handlers: + job_handlers[jobtype] = {} + if jobtype not in job_handlers[jobtype]: + job_handlers[jobtype][state] = [] + job_handlers[jobtype][state].append(func) + return func + return wrapper + +def schedule_job(jobtype, data=None, priority=0): + if not data: + data = {} + modify('INSERT INTO jobs (type, priority, data, time_created) VALUES (?, ?, ?, ?)', + jobtype, priority, json.dumps(data, default=date_json_handler), datetime.now()) + +edit_handlers = {} +def edit_handler(*tables, field=None): + def wrapper(func): + for table in tables: + if table not in edit_handlers: + edit_handlers[table] = {} + if field not in edit_handlers[table]: + edit_handlers[table][field] = [] + edit_handlers[table][field].append(func) + return func + return wrapper + +import edit import feeds import importer import stats if 'ICAL_URL' in config: import meetings import l2pauth -from jobs import job_handler, schedule_job +import jobs import sorter import encoding import timetable -- GitLab