Module: check_mk
Branch: master
Commit: 3f03b96cd2520170de80c5a9466c88d8696728f9
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=3f03b96cd25201…
Author: Lars Michelsen <lm(a)mathias-kettner.de>
Date: Thu Jul 12 09:10:23 2018 +0200
Refactored cron plugins to new module hierarchy
* Moved web/plugins/cron to cmk/gui/plugins/cron
* Plugins are real modules now
* Did not change plugin API yet
Change-Id: Ie2f85883a39acb0f334f9f695949d673ab8b2833
---
cmk/gui/cron.py | 18 +++----
cmk/gui/plugins/cron/__init__.py | 60 ++++++++++++++++++++++
.../gui}/plugins/cron/gui_background_job.py | 2 +
{web => cmk/gui}/plugins/cron/network_scan.py | 2 +
{web => cmk/gui}/plugins/cron/user_sync.py | 1 +
5 files changed, 73 insertions(+), 10 deletions(-)
diff --git a/cmk/gui/cron.py b/cmk/gui/cron.py
index 80b9114..50cac3a 100644
--- a/cmk/gui/cron.py
+++ b/cmk/gui/cron.py
@@ -28,16 +28,20 @@ import os
import time
import traceback
-import cmk.gui.utils as utils
-from cmk.gui.log import logger
import cmk.paths
import cmk.store as store
-import cmk.gui.i18n
+import cmk.gui.utils as utils
+from cmk.gui.log import logger
+import cmk.gui.i18n
from cmk.gui.exceptions import MKGeneralException
+from cmk.gui.plugins.cron import (
+ multisite_cronjobs,
+ register_job,
+)
+
loaded_with_language = False
-multisite_cronjobs = []
lock_file = cmk.paths.tmp_dir + "/cron.lastrun"
@@ -47,17 +51,11 @@ def load_plugins(force):
if loaded_with_language == cmk.gui.i18n.get_current_language() and not force:
return
- global multisite_cronjobs
- multisite_cronjobs = []
utils.load_web_plugins("cron", globals())
loaded_with_language = cmk.gui.i18n.get_current_language()
-def register_job(cron_job):
- multisite_cronjobs.append(cron_job)
-
-
# Page called by some external trigger (usually cron job in OMD site)
# Note: this URL is being called *without* any login. We have no
# user. Everyone can call this! We must not read any URL variables.
diff --git a/cmk/gui/plugins/cron/__init__.py b/cmk/gui/plugins/cron/__init__.py
new file mode 100644
index 0000000..ce9e549
--- /dev/null
+++ b/cmk/gui/plugins/cron/__init__.py
@@ -0,0 +1,60 @@
+#!/usr/bin/env python
+# -*- encoding: utf-8; py-indent-offset: 4 -*-
+# +------------------------------------------------------------------+
+# | ____ _ _ __ __ _ __ |
+# | / ___| |__ ___ ___| | __ | \/ | |/ / |
+# | | | | '_ \ / _ \/ __| |/ / | |\/| | ' / |
+# | | |___| | | | __/ (__| < | | | | . \ |
+# | \____|_| |_|\___|\___|_|\_\___|_| |_|_|\_\ |
+# | |
+# | Copyright Mathias Kettner 2014 mk(a)mathias-kettner.de |
+# +------------------------------------------------------------------+
+#
+# This file is part of Check_MK.
+# The official homepage is at
http://mathias-kettner.de/check_mk.
+#
+# check_mk is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation in version 2. check_mk is distributed
+# in the hope that it will be useful, but WITHOUT ANY WARRANTY; with-
+# out even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE. See the GNU General Public License for more de-
+# tails. You should have received a copy of the GNU General Public
+# License along with GNU Make; see the file COPYING. If not, write
+# to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+# Boston, MA 02110-1301 USA.
+
+import os
+import glob
+
+from cmk.gui.i18n import _
+
+modules = glob.glob(os.path.join(os.path.dirname(__file__), "*.py"))
+__all__ = [ os.path.basename(f)[:-3] for f in modules if f not in [
"__init__.py", "utils.py" ] ]
+
+#.
+# .--Plugin API----------------------------------------------------------.
+# | ____ _ _ _ ____ ___ |
+# | | _ \| |_ _ __ _(_)_ __ / \ | _ \_ _| |
+# | | |_) | | | | |/ _` | | '_ \ / _ \ | |_) | | |
+# | | __/| | |_| | (_| | | | | | / ___ \| __/| | |
+# | |_| |_|\__,_|\__, |_|_| |_| /_/ \_\_| |___| |
+# | |___/ |
+# '----------------------------------------------------------------------'
+
+multisite_cronjobs = []
+
+def register_job(cron_job):
+ multisite_cronjobs.append(cron_job)
+
+#.
+# .--Plugins-------------------------------------------------------------.
+# | ____ _ _ |
+# | | _ \| |_ _ __ _(_)_ __ ___ |
+# | | |_) | | | | |/ _` | | '_ \/ __| |
+# | | __/| | |_| | (_| | | | | \__ \ |
+# | |_| |_|\__,_|\__, |_|_| |_|___/ |
+# | |___/ |
+# '----------------------------------------------------------------------'
+
+from . import *
diff --git a/web/plugins/cron/gui_background_job.py
b/cmk/gui/plugins/cron/gui_background_job.py
similarity index 98%
rename from web/plugins/cron/gui_background_job.py
rename to cmk/gui/plugins/cron/gui_background_job.py
index 17cd08e..cd2f8b4 100644
--- a/web/plugins/cron/gui_background_job.py
+++ b/cmk/gui/plugins/cron/gui_background_job.py
@@ -29,6 +29,8 @@ import cmk.gui.background_job
import cmk.gui.gui_background_job as gui_background_job
from cmk.gui.log import logger
+from . import register_job
+
def housekeeping():
housekeep_classes = gui_background_job.GUIBackgroundJob.get_concrete_subclasses()
cmk.gui.background_job.BackgroundJobManager(logger).do_housekeeping(housekeep_classes)
diff --git a/web/plugins/cron/network_scan.py b/cmk/gui/plugins/cron/network_scan.py
similarity index 98%
rename from web/plugins/cron/network_scan.py
rename to cmk/gui/plugins/cron/network_scan.py
index 849fe4b..9bb3a7d 100644
--- a/web/plugins/cron/network_scan.py
+++ b/cmk/gui/plugins/cron/network_scan.py
@@ -26,4 +26,6 @@
import cmk.gui.wato as wato
+from . import register_job
+
register_job(wato.execute_network_scan_job)
diff --git a/web/plugins/cron/user_sync.py b/cmk/gui/plugins/cron/user_sync.py
similarity index 98%
rename from web/plugins/cron/user_sync.py
rename to cmk/gui/plugins/cron/user_sync.py
index eeae924..7cf58ad 100644
--- a/web/plugins/cron/user_sync.py
+++ b/cmk/gui/plugins/cron/user_sync.py
@@ -25,5 +25,6 @@
# Boston, MA 02110-1301 USA.
import cmk.gui.userdb as userdb
+from . import register_job
register_job(userdb.execute_userdb_job)