Module: check_mk
Branch: master
Commit: 56857db73c07660dfac649a714b6491802c4bd35
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=56857db73c0766…
Author: Lars Michelsen <lm(a)mathias-kettner.de>
Date: Mon Sep 4 08:56:45 2017 +0200
5174 FIX Diskspace cleanup: Fixed default configuration
The configuration option was always shown as modified, even when the
user has not changed anything.
The cleanup of abandoned host files was disabled by accident when saving
any global setting once.
Change-Id: I9441f3604ca03221110ffff576fca6b2c88b62b6
---
.werks/5174 | 14 +++++++++++
omd/packages/maintenance/.f12 | 1 -
omd/packages/maintenance/diskspace | 26 +++++++++++++-------
web/plugins/wato/omd_configuration.py | 45 ++++++++++++++++++++++++-----------
4 files changed, 62 insertions(+), 24 deletions(-)
diff --git a/.werks/5174 b/.werks/5174
new file mode 100644
index 0000000..5898f30
--- /dev/null
+++ b/.werks/5174
@@ -0,0 +1,14 @@
+Title: Diskspace cleanup: Fixed default configuration
+Level: 1
+Component: wato
+Compatible: compat
+Edition: cre
+Version: 1.5.0i1
+Date: 1504508115
+Class: fix
+
+The configuration option was always shown as modified, even when the
+user has not changed anything.
+
+The cleanup of abandoned host files was disabled by accident when saving
+any global setting once.
diff --git a/omd/packages/maintenance/.f12 b/omd/packages/maintenance/.f12
index 90d4a79..0ec4fe3 100644
--- a/omd/packages/maintenance/.f12
+++ b/omd/packages/maintenance/.f12
@@ -10,5 +10,4 @@ done
sudo cp skel/etc/cron.d/* /omd/sites/$SITE/etc/cron.d
sudo omd restart $SITE crontab
-sudo cp wato_omd_configuration.py
/omd/sites/$SITE/share/check_mk/web/plugins/wato/omd_configuration.py
sudo omd restart $SITE apache
diff --git a/omd/packages/maintenance/diskspace b/omd/packages/maintenance/diskspace
index 28a2141..4502395 100755
--- a/omd/packages/maintenance/diskspace
+++ b/omd/packages/maintenance/diskspace
@@ -14,11 +14,16 @@ plugin_dir = omd_root + '/share/diskspace'
plugin_dir_local = omd_root + '/local/share/diskspace'
check_mk_var_dir = omd_root + '/var/check_mk'
-# Initial configuration
+# Configuration variables
min_free_bytes = None
max_file_age = None
min_file_age = None
-cleanup_abandoned_host_files = 2592000
+cleanup_abandoned_host_files = None
+
+# Initial configuration
+default_config = {
+ "cleanup_abandoned_host_files" : 2592000,
+}
plugins = {}
@@ -37,6 +42,8 @@ def verbose(s):
log(s)
def read_config():
+ globals().update(default_config)
+
try:
execfile(config_file, globals(), globals())
except IOError:
@@ -319,11 +326,12 @@ def main():
# #############################################################################
-read_config()
+if __name__ == "__main__":
+ read_config()
-try:
- main()
-except SystemExit:
- raise
-except:
- terminate('Unexpected exception: %s' % traceback.format_exc())
+ try:
+ main()
+ except SystemExit:
+ raise
+ except:
+ terminate('Unexpected exception: %s' % traceback.format_exc())
diff --git a/web/plugins/wato/omd_configuration.py
b/web/plugins/wato/omd_configuration.py
index 1069342..c9ec8d4 100644
--- a/web/plugins/wato/omd_configuration.py
+++ b/web/plugins/wato/omd_configuration.py
@@ -27,6 +27,7 @@
import cmk.paths
+# TODO: Diskspace cleanup does not support site specific globals!
class ConfigDomainDiskspace(ConfigDomain):
needs_sync = True
needs_activation = False
@@ -38,10 +39,12 @@ class ConfigDomainDiskspace(ConfigDomain):
def load(self, site_specific=False):
- settings = {}
- cleanup_settings = settings["diskspace_cleanup"] = {}
+ cleanup_settings = {}
execfile(self.diskspace_config, {}, cleanup_settings)
+ if not cleanup_settings:
+ return {}
+
# Convert old config (min_free_bytes and min_file_age) were independent options
if "min_free_bytes" in cleanup_settings:
cleanup_settings["min_free_bytes"] =
(cleanup_settings["min_free_bytes"],
@@ -50,30 +53,44 @@ class ConfigDomainDiskspace(ConfigDomain):
if cleanup_settings.get("cleanup_abandoned_host_files", False) ==
None:
del cleanup_settings["cleanup_abandoned_host_files"]
- return settings
+ return {
+ "diskspace_cleanup": cleanup_settings,
+ }
def save(self, settings, site_specific=False):
- # Convert to old config format.
config = {}
- for k, v in settings.get("diskspace_cleanup", {}).items():
- if k == "min_free_bytes":
- config["min_free_bytes"], config["min_file_age"] = v
- else:
- config[k] = v
- if "cleanup_abandoned_host_files" not in
settings.get("diskspace_cleanup", {}):
- config["cleanup_abandoned_host_files"] = None
+ if "diskspace_cleanup" in settings:
+ # Convert to old config format.
+ for k, v in settings.get("diskspace_cleanup", {}).items():
+ if k == "min_free_bytes":
+ config["min_free_bytes"], config["min_file_age"]
= v
+ else:
+ config[k] = v
+
+ if "cleanup_abandoned_host_files" not in
settings.get("diskspace_cleanup", {}):
+ config["cleanup_abandoned_host_files"] = None
+
+ output = ""
+ for k, v in sorted(config.items()):
+ output += '%s = %r\n' % (k, v)
- with file(self.diskspace_config, 'w') as f:
- for k, v in sorted(config.items()):
- f.write('%s = %r\n' % (k, v))
+ cmk.store.save_file(self.diskspace_config, output)
def save_site_globals(self, settings):
pass
+ def default_globals(self):
+ diskspace_context = {}
+ execfile("%s/bin/diskspace" % cmk.paths.omd_root, {},
diskspace_context)
+ return {
+ "diskspace_cleanup":
diskspace_context["default_config"],
+ }
+
+
group = _('Site Management')