Module: check_mk
Branch: master
Commit: 391df69d27f90cab56a84a439f22e4eadc092676
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=391df69d27f90c…
Author: Lars Michelsen <lm(a)mathias-kettner.de>
Date: Mon Jul 17 08:14:41 2017 +0200
Cleanup: Site specific globals are now stored in sitespecific.mk on slaves
Change-Id: I90bd75235cd4f420d7a07702d9e5b20ba7553d83
---
web/htdocs/wato.py | 27 +++++++++++++++++----------
web/htdocs/watolib.py | 19 ++++++++++++-------
2 files changed, 29 insertions(+), 17 deletions(-)
diff --git a/web/htdocs/wato.py b/web/htdocs/wato.py
index c458be0..08bdca7 100644
--- a/web/htdocs/wato.py
+++ b/web/htdocs/wato.py
@@ -9597,7 +9597,9 @@ class ModeDistributedMonitoring(ModeSites):
delete_url = html.makeactionuri([("_delete", site_id)])
html.icon_button(delete_url, _("Delete"), "delete")
- if has_wato_slave_sites() and (site.get("replication") or
config.site_is_local(site_id)):
+ if (has_wato_slave_sites()
+ and (site.get("replication") or config.site_is_local(site_id))) \
+ or is_wato_slave_site():
globals_url = folder_preserving_link([("mode",
"edit_site_globals"), ("site", site_id)])
html.icon_button(globals_url, _("Site specific global
configuration"), "configuration")
@@ -9681,7 +9683,11 @@ class ModeEditSiteGlobals(ModeSites):
# The site's default values are the current global settings
self._default_values = check_mk_local_automation("get-configuration",
[], get_check_mk_config_var_names())
self._default_values.update(load_configuration_settings())
- self._current_settings = self._site.get("globals", {})
+
+ if is_wato_slave_site():
+ self._current_settings = load_configuration_settings(site_specific=True)
+ else:
+ self._current_settings = self._site.get("globals", {})
def title(self):
@@ -9754,15 +9760,16 @@ class ModeEditSiteGlobals(ModeSites):
"on that site. <b>Note</b>: this only makes sense if
the site "
"is part of a distributed setup."))
- if not has_wato_slave_sites():
- html.show_error(_("You can not configure site specific global settings
"
- "in non distributed setups."))
- return
+ if not is_wato_slave_site():
+ if not has_wato_slave_sites():
+ html.show_error(_("You can not configure site specific global
settings "
+ "in non distributed setups."))
+ return
- if not self._site.get("replication") and not
config.site_is_local(self._site_id):
- html.show_error(_("This site is not the master site nor a replication
slave. "
- "You cannot configure specific settings for
it."))
- return
+ if not self._site.get("replication") and not
config.site_is_local(self._site_id):
+ html.show_error(_("This site is not the master site nor a
replication slave. "
+ "You cannot configure specific settings for
it."))
+ return
group_names = global_config_variable_groups(show_all=True)
render_global_configuration_variables(group_names, self._default_values,
diff --git a/web/htdocs/watolib.py b/web/htdocs/watolib.py
index ea9116a..49150b5 100644
--- a/web/htdocs/watolib.py
+++ b/web/htdocs/watolib.py
@@ -313,8 +313,8 @@ class ConfigDomain(object):
raise MKGeneralException(_("The domain \"%s\" does not support
activation.") % self.ident)
- def load(self):
- filename = self.config_file(site_specific=False)
+ def load(self, site_specific=False):
+ filename = self.config_file(site_specific)
settings = {}
if not os.path.exists(filename):
@@ -333,6 +333,10 @@ class ConfigDomain(object):
(filename, e))
+ def load_site_globals(self):
+ return self.load(site_specific=True)
+
+
def save(self, settings, site_specific=False):
filename = self.config_file(site_specific)
@@ -3408,10 +3412,13 @@ def register_configvar_group(title, order=None):
# - --> Wir machen eine automation, die alle Konfigurationsvariablen
# ausgibt
-def load_configuration_settings():
+def load_configuration_settings(site_specific=False):
settings = {}
for domain in ConfigDomain.enabled_domains():
- settings.update(domain().load())
+ if site_specific:
+ settings.update(domain().load_site_globals())
+ else:
+ settings.update(domain().load())
return settings
@@ -4167,9 +4174,7 @@ def save_site_globals_on_slave_site(tarcontent):
multitar.extract_from_buffer(tarcontent, [ ("dir",
"sitespecific", tmp_dir) ])
site_globals = store.load_data_from_file(tmp_dir + "/sitespecific.mk",
{})
- current_settings = load_configuration_settings()
- current_settings.update(site_globals)
- save_global_settings(current_settings)
+ save_site_global_settings(site_globals)
finally:
shutil.rmtree(tmp_dir)