Module: check_mk
Branch: master
Commit: 177ec6c70c67d68d9b50961fc2190a81b3f5f52b
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=177ec6c70c67d6…
Author: Lars Michelsen <lm(a)mathias-kettner.de>
Date: Fri Mar 4 15:08:39 2016 +0100
Fixed multiple loading of config plugins
---
web/htdocs/config.py | 7 ++++---
web/htdocs/html_mod_python.py | 3 +++
2 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/web/htdocs/config.py b/web/htdocs/config.py
index 2944146..5bc4557 100644
--- a/web/htdocs/config.py
+++ b/web/htdocs/config.py
@@ -131,6 +131,10 @@ def include(filename):
# Load multisite.mk and all files in multisite.d/. This will happen
# for *each* HTTP request.
+# FIXME: Optimize this to cache the config etc. until either the config files or plugins
+# have changed. We could make this being cached for multiple requests just like the
+# plugins of other modules. This may save significant time in case of small requests
like
+# the graph ajax page or similar.
def load_config():
global modification_timestamps, sites
modification_timestamps = []
@@ -598,6 +602,3 @@ def load_plugins(force):
# Make sure, builtin roles are present, even if not modified and saved with WATO.
for br in builtin_role_ids:
roles.setdefault(br, {})
-
-
-load_plugins(True)
diff --git a/web/htdocs/html_mod_python.py b/web/htdocs/html_mod_python.py
index 8777e2b..8d56604 100644
--- a/web/htdocs/html_mod_python.py
+++ b/web/htdocs/html_mod_python.py
@@ -39,6 +39,9 @@ class FinalizeRequest(Exception):
class html_mod_python(htmllib.html):
+ # The constructor must not rely on "config.", because the configuration
+ # is not loaded yet. Earliest place is self.init_modes() where config
+ # is loaded.
def __init__(self, req, fields):
req.content_type = "text/html; charset=UTF-8"
req.header_sent = False