Module: check_mk
Branch: master
Commit: c854a583d2ed03fc723cc59a9b7ade9822fc0310
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=c854a583d2ed03…
Author: Mathias Kettner <mk(a)mathias-kettner.de>
Date: Thu Nov 3 16:56:41 2011 +0100
WATO: make check period configurable
---
web/plugins/wato/check_mk_configuration.py | 19 +++++++++++++++++++
1 files changed, 19 insertions(+), 0 deletions(-)
diff --git a/web/plugins/wato/check_mk_configuration.py b/web/plugins/wato/check_mk_configuration.py
index d7f74c1..8d72eeb 100644
--- a/web/plugins/wato/check_mk_configuration.py
+++ b/web/plugins/wato/check_mk_configuration.py
@@ -505,6 +505,25 @@ register_rule(group,
"as the 'service time'.")),
itemtype = "service")
+register_rule(group,
+ "extra_host_conf:check_period",
+ TimeperiodSelection(
+ title = _("Check period for hosts"),
+ help = _("If you specify a check period for a host then active checks of that "
+ "host will only take place within that period. In the rest of the time "
+ "the state of the host will stay at its last status.")),
+ )
+
+register_rule(group,
+ "extra_service_conf:check_period",
+ TimeperiodSelection(
+ title = _("Check period for services"),
+ help = _("If you specify a notification period for a service then active checks "
+ "of that service will only be done in that period. Please note, that the "
+ "checks driven by Check_MK are passive checks and are not affected by this "
+ "rule. You can use the rule for the active Check_MK check, however.")),
+ itemtype = "service")
+
class MonitoringIcon(ValueSpec):
def __init__(self, **kwargs):
ValueSpec.__init__(self, **kwargs)
Module: check_mk
Branch: master
Commit: eadec49a85a0257c3c1b118c6959146e4de4b801
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=eadec49a85a025…
Author: Mathias Kettner <mk(a)mathias-kettner.de>
Date: Thu Nov 3 16:57:00 2011 +0100
WATO: inhibit deletion of used timeperiods
---
web/htdocs/wato.py | 65 +++++++++++++++++++++++++++++++++++++++++----------
1 files changed, 52 insertions(+), 13 deletions(-)
diff --git a/web/htdocs/wato.py b/web/htdocs/wato.py
index 7718e56..b9b8927 100644
--- a/web/htdocs/wato.py
+++ b/web/htdocs/wato.py
@@ -5206,19 +5206,29 @@ def mode_timeperiods(phase):
if phase == "action":
delname = html.var("_delete")
- c = wato_confirm(_("Confirm deletion of time period %s") % delname,
- _("Do you really want to delete the time period '%s'? If it "
- "is still in use by an object, you will not be able to "
- "activate your changed configuration?") % delname)
- if c:
- del timeperiods[delname]
- save_timeperiods(timeperiods)
- log_pending(SYNCRESTART, None, "edit-timeperiods", _("Deleted timeperiod %s") % delname)
- return None
- elif c == False:
- return ""
- else:
- return None
+ if html.transaction_valid():
+ usages = find_usage_of_timeperiod(delname)
+ if usages:
+ message = "<b>%s</b><br>%s:<ul>" % \
+ (_("You cannot delete this timeperiod."),
+ _("It is still in use by"))
+ for title, link in usages:
+ message += '<li><a href="%s">%s</a></li>\n' % (link, title)
+ message += "</ul>"
+ raise MKUserError(None, message)
+
+ c = wato_confirm(_("Confirm deletion of time period %s") % delname,
+ _("Do you really want to delete the time period '%s'? I've checked it: "
+ "it is not being used by any rule or user profile right now.") % delname)
+ if c:
+ del timeperiods[delname]
+ save_timeperiods(timeperiods)
+ log_pending(SYNCRESTART, None, "edit-timeperiods", _("Deleted timeperiod %s") % delname)
+ return None
+ elif c == False:
+ return ""
+ else:
+ return None
html.write("<h3>" + _("Timeperiod definitions") + "</h3>")
@@ -5498,6 +5508,35 @@ class TimeperiodSelection(ElementSelection):
elements = dict([ (name, "%s - %s" % (name, tp["alias"])) for (name, tp) in timeperiods.items() ])
return elements
+# Check if a timeperiod is currently in use and cannot be deleted
+# Returns a list of occurrances.
+# Possible usages:
+# - user accounts (notification period)
+# - rules: service/host-notification/check-period
+def find_usage_of_timeperiod(tpname):
+
+ # Part 1: Rules
+ used_in = []
+ for varname, ruleset in load_all_rulesets().items():
+ rulespec = g_rulespecs[varname]
+ if isinstance(rulespec.get("valuespec"), TimeperiodSelection):
+ for folder, rule in ruleset:
+ value, tag_specs, host_list, item_list = parse_rule(rulespec, rule)
+ if value == tpname:
+ used_in.append(("%s: %s" % (_("Ruleset"), g_rulespecs[varname]["title"]),
+ make_link([("mode", "edit_ruleset"), ("varname", varname)])))
+ break
+
+ # Part 2: Users
+ for userid, user in load_users().items():
+ tp = user.get("notification_period")
+ if tp == tpname:
+ used_in.append(("%s: %s" % (_("User"), userid),
+ make_link([("mode", "edit_user"), ("edit", userid)])))
+
+ return used_in
+
+
#.
# .-Sites----------------------------------------------------------------.
# | ____ _ _ |
Module: check_mk
Branch: master
Commit: 894a923c70ae2c56a470492306c1023ee13e8ef6
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=894a923c70ae2c…
Author: Mathias Kettner <mk(a)mathias-kettner.de>
Date: Thu Nov 3 13:40:04 2011 +0100
Remote <br> from permission helps
---
web/htdocs/config.py | 12 ++++++------
1 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/web/htdocs/config.py b/web/htdocs/config.py
index d660047..0720f79 100644
--- a/web/htdocs/config.py
+++ b/web/htdocs/config.py
@@ -165,7 +165,7 @@ declare_permission("edit_permissions",
declare_permission("see_all",
"See all Nagios objects",
- "See all objects regardless of contacts and contact groups. If combined<br>with 'perform commands' then commands may be done on all objects.",
+ "See all objects regardless of contacts and contact groups. If combined with 'perform commands' then commands may be done on all objects.",
[ "admin", "guest" ])
declare_permission("edit_views",
@@ -185,24 +185,24 @@ declare_permission("force_views",
declare_permission("view_option_columns",
"Change view display columns",
- "Interactively change the number of columns being displayed by a view<br>(does not edit or customize the view)",
+ "Interactively change the number of columns being displayed by a view (does not edit or customize the view)",
[ "admin", "user", "guest" ])
declare_permission("view_option_refresh",
"Change view display refresh",
- "Interactively change the automatic browser reload of a view being displayed<br>(does not edit or customize the view)",
+ "Interactively change the automatic browser reload of a view being displayed (does not edit or customize the view)",
[ "admin", "user" ])
declare_permission("painter_options",
"Change column display options",
- "Some of the display columns offer options for customizing their output.<br>"
- "For example time stamp columns can be displayed absolute, relative or<br>"
+ "Some of the display columns offer options for customizing their output. "
+ "For example time stamp columns can be displayed absolute, relative or "
"in a mixed style. This permission allows the user to modify display options",
[ "admin", "user", "guest" ])
declare_permission("act",
"Perform commands",
- "Allows users to perform Nagios commands. If now futher permissions are granted,<br>actions can only be done one objects one is a contact for",
+ "Allows users to perform Nagios commands. If now futher permissions are granted, actions can only be done one objects one is a contact for",
[ "admin", "user" ])