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
Module: check_mk
Branch: master
Commit: 33ef988e13cd180bad6e3cf9bf2b9e7ae44d7494
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=33ef988e13cd18…
Author: Lars Michelsen <lm(a)mathias-kettner.de>
Date: Mon Apr 16 10:51:18 2012 +0200
Revert "Preventing creation of users which are only found in htpasswd (-> hidden from WATO)"
This reverts commit 49c48b609aa0c21b1f9d486409ff0739a1c6f6e6.
---
web/htdocs/wato.py | 57 ++++++++++++++++++++-------------------------------
1 files changed, 22 insertions(+), 35 deletions(-)
diff --git a/web/htdocs/wato.py b/web/htdocs/wato.py
index f8f7ff3..57fdd2b 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 or in_htpasswd(id)):
+ if new and id in users:
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,27 +7139,6 @@ 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"
@@ -7216,19 +7195,27 @@ def load_users():
# they are getting according to the multisite old-style
# configuration variables.
- 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...
+ 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...
# Now read the automation secrets and add them to existing
# users or create new users automatically
Module: check_mk
Branch: master
Commit: 6d11b24bc656d6c1e5fb133212fb713110c19270
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=6d11b24bc656d6…
Author: Florian Heigl <fh(a)mathias-kettner.de>
Date: Mon Apr 16 17:46:29 2012 +0200
Add new bug entry
---
.bugs/707 | 26 ++++++++++++++++++++++++++
1 files changed, 26 insertions(+), 0 deletions(-)
diff --git a/.bugs/707 b/.bugs/707
new file mode 100644
index 0000000..eca28fe
--- /dev/null
+++ b/.bugs/707
@@ -0,0 +1,26 @@
+Title: WATO dashlets Service problems and Events of rec. 4 hours can die if view is missing
+Component: multisite
+State: open
+Date: 2012-04-16 17:10:07
+Targetversion: 1.2.0
+Class: nastiness
+
+The dashlets will print the following error
+Internal error:: 'aggr_onlyproblems'
+Traceback (most recent call last):
+ File "/omd/sites/new/share/check_mk/web/htdocs/index.py", line 312, in handler
+ handler()
+ File "/omd/sites/new/share/check_mk/web/htdocs/views.py", line 1047, in page_view
+ show_view(view, True, True, True)
+ File "/omd/sites/new/share/check_mk/web/htdocs/views.py", line 1163, in show_view
+ vo = view_options(view["name"])
+ File "/omd/sites/new/share/check_mk/web/htdocs/views.py", line 1564, in view_options
+ del v[on]
+KeyError: 'aggr_onlyproblems'
+
+The error can be reproduced if you modify the following
+Multisite role setting to 'no':
+Change column display options
+
+
+Since this is user-modifyable we need to catch it and i.e. disable the dashlets.