Module: check_mk
Branch: master
Commit: c231f5e1f86736cee0dec405c0147db1604d1abf
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=c231f5e1f86736…
Author: Mathias Kettner <mk(a)mathias-kettner.de>
Date: Tue Apr 17 14:53:20 2012 +0200
Updated bug entries #0676
---
.bugs/676 | 7 +++++--
1 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/.bugs/676 b/.bugs/676
index d1efc8b..ef3be82 100644
--- a/.bugs/676
+++ b/.bugs/676
@@ -1,9 +1,12 @@
Title: Rule-Icon missing for df check in WATO services list
Component: wato
-State: open
+Class: bug
+State: works4me
Date: 2012-04-10 17:04:16
Targetversion: 1.2.0
-Class: bug
In the inventory list you have usually a rule icon for each
check the can be parameterized. At df this is missing latetly.
+
+2012-04-17 14:53:17: changed state open -> works4me
+Cannot see any problem here (anymore).
Module: check_mk
Branch: master
Commit: ed7f35ce80758ef6563791ec45053a14daf74290
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=ed7f35ce80758e…
Author: Lars Michelsen <lm(a)mathias-kettner.de>
Date: Tue Apr 17 14:51:55 2012 +0200
Updated bug entries #0668
---
.bugs/668 | 7 +++++--
1 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/.bugs/668 b/.bugs/668
index f860c9d..d675923 100644
--- a/.bugs/668
+++ b/.bugs/668
@@ -1,9 +1,9 @@
Title: Reschedule does not work anymore
Component: multisite
-State: open
+Class: bug
+State: works4me
Date: 2012-02-26 11:18:29
Targetversion: 1.2.0
-Class: bug
When clicking on the rotating arrows only the error
message ERROR cannot reschedule check: time out
@@ -13,3 +13,6 @@ LM: Works for me.
MK: Most time for me as well. But sometimes it
immediately fails....
+
+2012-04-17 14:51:32: changed state open -> works4me
+I can not reproduce the problem. So I close this bug now. Please analyze+fix it next time it occurs.
Module: check_mk
Branch: master
Commit: b0dae8649ddf20d313a22c3838376d758818b57e
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=b0dae8649ddf20…
Author: Lars Michelsen <lm(a)mathias-kettner.de>
Date: Mon Apr 16 15:19:57 2012 +0200
WATO: Added new internal hook pre-activate-changes to execute custom
code BEFORE Check_MK is called to restart Nagios
---
ChangeLog | 2 ++
web/htdocs/wato.py | 17 +++++++++++++++++
2 files changed, 19 insertions(+), 0 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 75d6c9a..599a486 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -22,6 +22,8 @@
of userids to hide the listed users from the WATO user management GUI.
* WATO API: Added new method rewrite_configuration to trigger a rewrite of
all host related wato configuration files to distribute changed tags
+ * WATO: Added new internal hook pre-activate-changes to execute custom
+ code BEFORE Check_MK is called to restart Nagios
Multisite
* Added config option default_ts_format to configure default timestamp
diff --git a/web/htdocs/wato.py b/web/htdocs/wato.py
index b0de0e2..73f9f7c 100644
--- a/web/htdocs/wato.py
+++ b/web/htdocs/wato.py
@@ -3379,6 +3379,9 @@ def check_mk_local_automation(command, args=[], indata=""):
"<li>Retry this operation</li></ol>\n" %
(html.apache_user(), sudoline))
+ if command == 'restart':
+ call_hook_pre_activate_changes()
+
if config.debug:
log_audit(None, "automation", "Automation: %s" % " ".join(cmd))
try:
@@ -10360,6 +10363,20 @@ def call_hook_folder_deleted(folder):
if 'folder-deleted' in g_hooks:
call_hooks("folder-deleted", folder)
+def call_hook_pre_activate_changes():
+ """
+ This hook is executed when one applies the pending configuration changes
+ from wato but BEFORE the nagios restart is executed.
+
+ It can be used to create custom input files for nagios/Check_MK.
+
+ The registered hooks are called with a dictionary as parameter which
+ holds all available with the hostnames as keys and the attributes of
+ the hosts as values.
+ """
+ if hook_registered('pre-activate-changes'):
+ call_hooks("pre-activate-changes", collect_hosts(g_root_folder))
+
def call_hook_activate_changes():
"""
This hook is executed when one applies the pending configuration changes
Module: check_mk
Branch: master
Commit: 70723cf316e3d80b54238a9fa4ed8a096c43fa3b
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=70723cf316e3d8…
Author: Lars Michelsen <lm(a)mathias-kettner.de>
Date: Mon Apr 16 10:19:17 2012 +0200
WATO API: Added new method rewrite_configuration to trigger a rewrite of
all host related wato configuration files to distribute changed tags
---
ChangeLog | 2 ++
web/htdocs/wato.py | 5 +++++
2 files changed, 7 insertions(+), 0 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 735d39b..1423343 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -19,6 +19,8 @@
handling of users only appearing in htpasswd configurable. The default
is set to True to keep the default behaviour. Users only appearing in
htpasswd will not be shown in this GUI when the option is set to False.
+ * WATO API: Added new method rewrite_configuration to trigger a rewrite of
+ all host related wato configuration files to distribute changed tags
Multisite
* Added config option default_ts_format to configure default timestamp
diff --git a/web/htdocs/wato.py b/web/htdocs/wato.py
index 6c7a67d..57fdd2b 100644
--- a/web/htdocs/wato.py
+++ b/web/htdocs/wato.py
@@ -10200,6 +10200,11 @@ class API:
save_folder_and_hosts(folder)
return folder[".hosts"][host["name"]]
+ # Rewrite the WATO configuration files
+ def rewrite_configuration(self):
+ self.prepare_folder_info()
+ rewrite_config_files_below(g_root_folder)
+
# Return displayable information about host (call with result of get_host())
def get_host_painted(self, host):
result = []
Module: check_mk
Branch: master
Commit: 9356889969d7fdd0799e070c053cebdd8a389f72
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=9356889969d7fd…
Author: Lars Michelsen <lm(a)mathias-kettner.de>
Date: Mon Apr 16 09:32:58 2012 +0200
WATO: Added wato_create_users_from_htpasswd option
Users & Contacts: Added new option wato_create_users_from_htpasswd
to make handling of users only appearing in htpasswd configurable. The
default is set to True to keep the default behaviour. Users only appearing
in htpasswd will not be shown in this GUI when the option is set to
False.
---
ChangeLog | 4 ++++
web/htdocs/config.py | 1 +
web/htdocs/wato.py | 2 +-
3 files changed, 6 insertions(+), 1 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 0ea1d0c..735d39b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -15,6 +15,10 @@
* Added new variable logwatch_rules which can also be managed through the
WATO ruleset editor (Host/Service Parameters > Parameters and rules for
inventorized checks > Various applications > Logwatch Patterns)
+ * Users & Contacts: Added new option wato_create_users_from_htpasswd to make
+ handling of users only appearing in htpasswd configurable. The default
+ is set to True to keep the default behaviour. Users only appearing in
+ htpasswd will not be shown in this GUI when the option is set to False.
Multisite
* Added config option default_ts_format to configure default timestamp
diff --git a/web/htdocs/config.py b/web/htdocs/config.py
index 4d161cb..04df063 100644
--- a/web/htdocs/config.py
+++ b/web/htdocs/config.py
@@ -621,6 +621,7 @@ wato_num_hostspecs = 12
wato_num_itemspecs = 15
wato_activation_method = 'restart'
wato_write_nagvis_auth = False
+wato_create_users_from_htpasswd = True
# ____ ___
diff --git a/web/htdocs/wato.py b/web/htdocs/wato.py
index 1b3a234..6c7a67d 100644
--- a/web/htdocs/wato.py
+++ b/web/htdocs/wato.py
@@ -7207,7 +7207,7 @@ def load_users():
if id in result:
result[id]["password"] = password
result[id]["locked"] = locked
- else:
+ elif wato_create_users_from_htpasswd:
# Create entry if this is an admin user
new_user = {
"roles" : config.roles_of_user(id),
Module: check_mk
Branch: master
Commit: 49c48b609aa0c21b1f9d486409ff0739a1c6f6e6
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=49c48b609aa0c2…
Author: Lars Michelsen <lm(a)mathias-kettner.de>
Date: Mon Apr 16 10:34:47 2012 +0200
Preventing creation of users which are only found in htpasswd (-> hidden from WATO)
---
web/htdocs/wato.py | 57 +++++++++++++++++++++++++++++++--------------------
1 files changed, 35 insertions(+), 22 deletions(-)
diff --git a/web/htdocs/wato.py b/web/htdocs/wato.py
index 57fdd2b..f8f7ff3 100644
--- a/web/htdocs/wato.py
+++ b/web/htdocs/wato.py
@@ -6815,7 +6815,7 @@ def mode_edit_user(phase):
return "users"
id = html.var("userid").strip()
- if new and id in users:
+ if new and (id in users or in_htpasswd(id)):
raise MKUserError("userid", _("This username is already being used by another user."))
if not re.match("^[-a-z0-9A-Z_\.]+$", id):
raise MKUserError("userid", _("The username must consist only of letters, digit and the underscore."))
@@ -7139,6 +7139,27 @@ def mode_edit_user(phase):
html.hidden_fields()
html.end_form()
+def load_htpasswd():
+ users = {}
+ filename = defaults.htpasswd_file
+ if os.path.exists(filename):
+ for line in file(filename):
+ id, password = line.strip().split(":")[:2]
+ if password.startswith("!"):
+ locked = True
+ password = password[1:]
+ else:
+ locked = False
+
+ users[id] = {
+ 'password': password,
+ 'locked': locked,
+ }
+ return users
+
+def in_htpasswd(id):
+ return id in load_htpasswd()
+
def load_users():
# First load monitoring contacts from Check_MK's world
filename = root_dir + "contacts.mk"
@@ -7195,27 +7216,19 @@ def load_users():
# they are getting according to the multisite old-style
# configuration variables.
- filename = defaults.htpasswd_file
- if os.path.exists(filename):
- for line in file(filename):
- id, password = line.strip().split(":")[:2]
- if password.startswith("!"):
- locked = True
- password = password[1:]
- else:
- locked = False
- if id in result:
- result[id]["password"] = password
- result[id]["locked"] = locked
- elif wato_create_users_from_htpasswd:
- # Create entry if this is an admin user
- new_user = {
- "roles" : config.roles_of_user(id),
- "password" : password,
- "locked" : False
- }
- result[id] = new_user
- # Other unknown entries will silently be dropped. Sorry...
+ for id, user in load_htpasswd().items():
+ if id in result:
+ result[id]["password"] = user['password']
+ result[id]["locked"] = user['locked']
+ elif config.wato_create_users_from_htpasswd:
+ # Create entry if this is an admin user
+ new_user = {
+ "roles" : config.roles_of_user(id),
+ "password" : user['password'],
+ "locked" : False
+ }
+ result[id] = new_user
+ # Other unknown entries will silently be dropped. Sorry...
# Now read the automation secrets and add them to existing
# users or create new users automatically
Module: check_mk
Branch: master
Commit: 9bfbab6d9c2433ec0738853ce572f7c99a6a9116
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=9bfbab6d9c2433…
Author: Lars Michelsen <lm(a)mathias-kettner.de>
Date: Mon Apr 16 10:52:33 2012 +0200
Revert "WATO: Added wato_create_users_from_htpasswd option"
This reverts commit 9356889969d7fdd0799e070c053cebdd8a389f72.
Conflicts:
ChangeLog
---
ChangeLog | 6 ++----
web/htdocs/config.py | 1 -
web/htdocs/wato.py | 2 +-
3 files changed, 3 insertions(+), 6 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 1423343..2941c11 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -15,10 +15,8 @@
* Added new variable logwatch_rules which can also be managed through the
WATO ruleset editor (Host/Service Parameters > Parameters and rules for
inventorized checks > Various applications > Logwatch Patterns)
- * Users & Contacts: Added new option wato_create_users_from_htpasswd to make
- handling of users only appearing in htpasswd configurable. The default
- is set to True to keep the default behaviour. Users only appearing in
- htpasswd will not be shown in this GUI when the option is set to False.
+ * Users & Contacts: Added new option wato_hidden_users which holds a list
+ of userids to hide the listed users from the WATO user management GUI.
* WATO API: Added new method rewrite_configuration to trigger a rewrite of
all host related wato configuration files to distribute changed tags
diff --git a/web/htdocs/config.py b/web/htdocs/config.py
index 04df063..4d161cb 100644
--- a/web/htdocs/config.py
+++ b/web/htdocs/config.py
@@ -621,7 +621,6 @@ wato_num_hostspecs = 12
wato_num_itemspecs = 15
wato_activation_method = 'restart'
wato_write_nagvis_auth = False
-wato_create_users_from_htpasswd = True
# ____ ___
diff --git a/web/htdocs/wato.py b/web/htdocs/wato.py
index 57fdd2b..6dc267e 100644
--- a/web/htdocs/wato.py
+++ b/web/htdocs/wato.py
@@ -7207,7 +7207,7 @@ def load_users():
if id in result:
result[id]["password"] = password
result[id]["locked"] = locked
- elif wato_create_users_from_htpasswd:
+ else:
# Create entry if this is an admin user
new_user = {
"roles" : config.roles_of_user(id),
Module: check_mk
Branch: master
Commit: 02b2e2bab251890f992f4c0da2f431681edeb438
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=02b2e2bab25189…
Author: Lars Michelsen <lm(a)mathias-kettner.de>
Date: Mon Apr 16 12:29:15 2012 +0200
FIX: Automation Try-Inventory: Fixed problem on where checks which
produce equal service descriptions could lead to invalid inventory
results on cluster hosts.
---
.bugs/692 | 37 +++++++++++++++++++++++++++++++++++++
ChangeLog | 3 +++
modules/automation.py | 9 +++++----
3 files changed, 45 insertions(+), 4 deletions(-)
diff --git a/.bugs/692 b/.bugs/692
new file mode 100644
index 0000000..03b4ed9
--- /dev/null
+++ b/.bugs/692
@@ -0,0 +1,37 @@
+Title: Fehler bei Inventory via WATO (fs_* Services von df Check werden nicht gefunden)
+Component: wato
+Class: bug
+State: done
+Date: 2012-04-16 12:11:13
+Targetversion: future
+
+Beim Aufruf der Service Inventur im WATO bekommt man mit den "(cached data)" folgendes:
+
+Available (missing) services
+df /mirrored/monitoring fs_/mirrored/monitoring OK
+OK df /mirrored/syslog fs_/mirrored/syslog OK
+
+Beim Klick auf "Full Scan" sieht man diese Services nicht mehr:
+
+Already configured services
+Status Checktype Item Service Description Current check
+OK df /mirrored/ldap fs_/mirrored/ldap
+OK mounts /mirrored/ldap Mount options of /mirrored/ldap
+OK mounts /mirrored/monitoring Mount options of /mirrored/monitoring
+OK mounts /mirrored/syslog Mount options of /mirrored/syslog
+
+Ignored services (configured away by admin)
+Status Checktype Item Service Description Current check
+OK hr_fs /mirrored/monitoring fs_/mirrored/monitoring
+OK hr_fs /mirrored/monitoring/sites/vtr_whvvtr/tmp fs_/mirrored/monitoring/sites/vtr_whvvtr/tmp
+OK hr_fs /mirrored/syslog fs_/mirrored/syslog
+
+Vermutung: hr_fs erzeugt die gleichen Service Descriptions und steht auf ignore. Überdecken die
+Services womöglich die Services von df?
+
+Hier geht es um einen Cluster Host. Eventuell ist das ein Spezialproblem von Clustern.
+
+EDIT: Der Fehler kommt aus cmk --automation try-inventory.
+
+2012-04-16 12:24:31: changed state open -> done
+Bei Cluster Hosts gibt es eine Sonderbehandlung. Dort wurde nur die Service-Description behandelt.
diff --git a/ChangeLog b/ChangeLog
index 2941c11..75d6c9a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,9 @@
1.2.0b2:
Core:
* FIX: Cluster host checks were UNKNOWN all the time
+ * FIX: Automation Try-Inventory: Fixed problem on where checks which
+ produce equal service descriptions could lead to invalid inventory
+ results on cluster hosts.
WATO:
* Added new permission "move hosts" to allow/deny moving of hosts in WATO
diff --git a/modules/automation.py b/modules/automation.py
index 00059cf..3a3240e 100644
--- a/modules/automation.py
+++ b/modules/automation.py
@@ -146,14 +146,15 @@ def automation_try_inventory(args):
# services of that cluster.
services = []
if is_cluster(hostname):
- descriptions = set([])
+ already_added = set([])
for node in nodes_of(hostname):
new_services = automation_try_inventory_node(node)
for entry in new_services:
if host_of_clustered_service(node, entry[6]) == hostname:
- if entry[6] not in descriptions:
+ # 1: check, 6: Service description
+ if (entry[1], entry[6]) not in already_added:
services.append(entry)
- descriptions.add(entry[6]) # make it unique
+ already_added.add((entry[1], entry[6])) # make it unique
else:
new_services = automation_try_inventory_node(hostname)
@@ -163,7 +164,7 @@ def automation_try_inventory(args):
return services
-
+
def automation_try_inventory_node(hostname):
global opt_use_cachefile, opt_no_tcp, opt_dont_submit