Module: check_mk
Branch: master
Commit: db80fb204bcaed7f9abf00ed0978c141af494164
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=db80fb204bcaed…
Author: Lars Michelsen <lm(a)mathias-kettner.de>
Date: Thu Sep 6 16:55:01 2012 +0200
User managament: Added fields for editing host/service notification commands
---
ChangeLog | 1 +
web/htdocs/wato.py | 11 +++++++++++
2 files changed, 12 insertions(+), 0 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 724a7c4..a074bc6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -69,6 +69,7 @@
* new: search for rules in "Host & Service Configuration"
* parent scan: new option "ping probes", that allows skipping
unreachable gateways.
+ * User managament: Added fields for editing host/service notification commands
* FIX: Removed double collect_hosts() call in activate changes hook
* FIX: Fixed double hook execution when using localized multisite
diff --git a/web/htdocs/wato.py b/web/htdocs/wato.py
index 0eb9438..ff95d1d 100644
--- a/web/htdocs/wato.py
+++ b/web/htdocs/wato.py
@@ -7701,6 +7701,8 @@ def mode_edit_user(phase):
for what, opts in [ ( "host", "durfs"), ("service", "wucrfs") ]:
new_user[what + "_notification_options"] = "".join(
[ opt for opt in opts if html.get_checkbox(what + "_" + opt) ])
+ # FIXME: Validate notification commands. Do they really exist?
+ new_user[what + "_notification_commands"] = html.var(what + "_notification_commands")
# Custom attributes
for name, vs in user_attributes:
@@ -7875,6 +7877,15 @@ def mode_edit_user(phase):
"will be notified to this contact. Note: these settings will only be saved "
"and used if the user is member of a contact group."))
+ # Notification commands
+ # FIXME: Add dropdown. But where to get a list of notification commands?
+ forms.section(_("Notification Command for Hosts"))
+ html.text_input("host_notification_commands", user.get("host_notification_commands", "check-mk-notify"))
+ html.help(_("Use this Nagios command for sending host notifications."))
+ forms.section(_("Notification Command for Services"))
+ html.text_input("service_notification_commands", user.get("service_notification_commands", "check-mk-notify"))
+ html.help(_("Use this Nagios command for sending service notifications."))
+
forms.header(_("Personal Settings"), isopen = False)
select_language(user.get('language', ''))
for name, vs in user_attributes:
Module: check_mk
Branch: master
Commit: 6e23fcba7e5f7efd8b92b36e5bcaf14a258fe82e
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=6e23fcba7e5f7e…
Author: Lars Michelsen <lm(a)mathias-kettner.de>
Date: Thu Sep 6 17:07:05 2012 +0200
Sidebar: Sorting aggregation groups in BI snapin now
---
ChangeLog | 2 ++
web/plugins/sidebar/bi.py | 9 +++++----
web/plugins/sidebar/shipped.py | 2 +-
3 files changed, 8 insertions(+), 5 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index a074bc6..913c60d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -79,6 +79,8 @@
Multisite:
* Added css class="dashboard_<name>" to the dashboard div for easier
customization of the dashboard style of a special dashboard
+ * Sidebar: Sorting aggregation groups in BI snapin now
+ * Sidebar: Sorting sites in master control snapin case insensitive
* FIX: fixed localization of general permissions
* FIX: show multisite warning messages even after page reload
* FIX: fix bug in Age ValueSpec: days had been ignored
diff --git a/web/plugins/sidebar/bi.py b/web/plugins/sidebar/bi.py
index f044c5f..fe34c6b 100644
--- a/web/plugins/sidebar/bi.py
+++ b/web/plugins/sidebar/bi.py
@@ -36,10 +36,11 @@ except NameError:
def render_bi_groups():
bi.compile_forest(config.user_id)
html.write("<ul>")
- for group, trees in bi.g_user_cache["forest"].items():
- if len(trees) > 0:
- bulletlink(group, "view.py?view_name=aggr_group&aggr_group=%s" %
- htmllib.urlencode(group))
+ group_names = [ group for group, trees in bi.g_user_cache["forest"].items() if trees ]
+ group_names = sorted(group_names, cmp = lambda a,b: cmp(a.lower(), b.lower()))
+ for group in group_names:
+ bulletlink(group, "view.py?view_name=aggr_group&aggr_group=%s" %
+ htmllib.urlencode(group))
html.write("</ul>")
sidebar_snapins["biaggr_groups"] = {
diff --git a/web/plugins/sidebar/shipped.py b/web/plugins/sidebar/shipped.py
index de9d1a4..339aab2 100644
--- a/web/plugins/sidebar/shipped.py
+++ b/web/plugins/sidebar/shipped.py
@@ -381,7 +381,7 @@ def render_sitestatus():
sitenames = []
for sitename, site in config.allsites().iteritems():
sitenames.append((sitename, site['alias']))
- sitenames = sorted(sitenames, key=lambda k: k[1])
+ sitenames = sorted(sitenames, key=lambda k: k[1], cmp = lambda a,b: cmp(a.lower(), b.lower()))
for sitename, sitealias in sitenames:
site = config.site(sitename)
Module: check_mk
Branch: master
Commit: 796adbfabb9667777b12255356555606d77dfda6
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=796adbfabb9667…
Author: Lars Michelsen <lm(a)mathias-kettner.de>
Date: Thu Sep 6 17:18:21 2012 +0200
FIX: User list shows names of contactgroups when no alias given
---
ChangeLog | 1 +
web/htdocs/wato.py | 3 ++-
2 files changed, 3 insertions(+), 1 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 913c60d..6e600e9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -72,6 +72,7 @@
* User managament: Added fields for editing host/service notification commands
* FIX: Removed double collect_hosts() call in activate changes hook
* FIX: Fixed double hook execution when using localized multisite
+ * FIX: User list shows names of contactgroups when no alias given
BI:
* Great speed up of rule compilation in large environments
diff --git a/web/htdocs/wato.py b/web/htdocs/wato.py
index ff95d1d..e078419 100644
--- a/web/htdocs/wato.py
+++ b/web/htdocs/wato.py
@@ -7517,7 +7517,8 @@ def mode_users(phase):
cgs = user.get("contactgroups", [])
if cgs:
html.write(", ".join(
- [ '<a href="%s">%s</a>' % (make_link([("mode", "edit_contact_group"), ("edit", c)]), contact_groups[c]) for c in cgs]))
+ [ '<a href="%s">%s</a>' % (make_link([("mode", "edit_contact_group"), ("edit", c)]),
+ contact_groups[c] and contact_groups[c] or c) for c in cgs]))
else:
html.write("<i>" + _("none") + "</i>")
html.write("</td>")
Module: check_mk
Branch: master
Commit: 88ace5d5162b762ba9369426dccc01cec7c517c3
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=88ace5d5162b76…
Author: Mathias Kettner <mk(a)mathias-kettner.de>
Date: Tue Sep 4 14:38:17 2012 +0200
Allow subcheck to be in a separate file (e.g. foo.bar)
---
ChangeLog | 1 +
modules/check_mk.py | 43 ++++++++++++++++++++++++++++++-------------
2 files changed, 31 insertions(+), 13 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index a6f60ce..4d4d2e3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -4,6 +4,7 @@
"comment" are allowed. Options are kept in an optional dict at the
end of each rule.
* parent scan: skip gateways that are reachable via PING
+ * Allow subcheck to be in a separate file (e.g. foo.bar)
Checks & Agents:
* New Checks for Siemens Blades (BX600)
diff --git a/modules/check_mk.py b/modules/check_mk.py
index be16ca0..cd5a207 100755
--- a/modules/check_mk.py
+++ b/modules/check_mk.py
@@ -2493,12 +2493,29 @@ def reread_autochecks():
# | |_| |
# +----------------------------------------------------------------------+
-def find_check_plugin(checktype):
- if local_checks_dir and os.path.exists(local_checks_dir + "/" + checktype):
- return local_checks_dir + "/" + checktype
- filename = checks_dir + "/" + checktype
- if os.path.exists(filename):
- return filename
+# Find files to be included in precompile host check for a certain
+# check (for example df or mem.used). In case of checks with a period
+# (subchecks) we might have to include both "mem" and "mem.used". The
+# subcheck *may* be implemented in a separate file.
+def find_check_plugins(checktype):
+ if '.' in checktype:
+ candidates = [ checktype.split('.')[0], checktype ]
+ else:
+ candidates = [ checktype ]
+
+ paths = []
+ for candidate in candidates:
+ if local_checks_dir:
+ filename = local_checks_dir + "/" + candidate
+ if os.path.exists(filename):
+ paths.append(filename)
+ continue
+
+ filename = checks_dir + "/" + candidate
+ if os.path.exists(filename):
+ paths.append(filename)
+
+ return paths
def get_precompiled_check_table(hostname):
host_checks = get_sorted_check_table(hostname)
@@ -2637,15 +2654,15 @@ no_inventory_possible = None
if to_add not in filenames:
filenames.append(to_add)
- # Now add check file itself (convert check_type to section)
- section = check_type.split(".")[0]
- path = find_check_plugin(section)
- if not path:
+ # Now add check file(s) itself
+ paths = find_check_plugins(check_type)
+ if not paths:
raise MKGeneralException("Cannot find check file %s needed for check type %s" % \
- (section, check_type))
+ (basename, check_type))
- if path not in filenames:
- filenames.append(path)
+ for path in paths:
+ if path not in filenames:
+ filenames.append(path)
output.write("check_info = {}\n" +