Module: check_mk
Branch: master
Commit: 97acc7884e35788a6fe6f5df2e1e7213303e0b3c
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=97acc7884e3578…
Author: Lars Michelsen <lm(a)mathias-kettner.de>
Date: Mon Dec 5 14:29:15 2016 +0100
4130 FIX Improved error handling when trying to edit not existant rules
---
.werks/4130 | 10 ++++++++++
ChangeLog | 1 +
web/htdocs/wato.py | 14 ++++++++++----
3 files changed, 21 insertions(+), 4 deletions(-)
diff --git a/.werks/4130 b/.werks/4130
new file mode 100644
index 0000000..0e838c8
--- /dev/null
+++ b/.werks/4130
@@ -0,0 +1,10 @@
+Title: Improved error handling when trying to edit not existant rules
+Level: 1
+Component: wato
+Class: fix
+Compatible: compat
+State: unknown
+Version: 1.4.0i3
+Date: 1480944530
+
+
diff --git a/ChangeLog b/ChangeLog
index b6ed499..3965d1a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -82,6 +82,7 @@
* 4079 FIX: Improved error handling in case a WATO folder can not be written
* 4082 FIX: Icon selector: Fixed exception in case non images are saved in icon
folder
* 4084 FIX: Improved error handling in case of broken hosts.mk files
+ * 4130 FIX: Improved error handling when trying to edit not existant rules
Notifications:
* 4042 FIX: Fix missing From address in synchronous SMTP notifications...
diff --git a/web/htdocs/wato.py b/web/htdocs/wato.py
index 5fb22d8..c8d3d47 100644
--- a/web/htdocs/wato.py
+++ b/web/htdocs/wato.py
@@ -12411,7 +12411,13 @@ def mode_edit_ruleset(phase):
rulesets = load_rulesets(rule_folder)
rules = rulesets.get(varname, [])
- rulenr = int(html.var("_rulenr")) # rule number relativ to folder
+ try:
+ rulenr = int(html.var("_rulenr")) # rule number relativ to folder
+ rule = rules[rulenr]
+ except (IndexError, TypeError, ValueError):
+ raise MKUserError("rulenr", _("You are trying to edit a rule
which does not exist "
+ "anymore."))
+
action = html.var("_action")
if action == "delete":
@@ -12441,7 +12447,7 @@ def mode_edit_ruleset(phase):
else:
if not html.check_transaction():
return None # browser reload
- rule = rules[rulenr]
+
del rules[rulenr]
if action == "up":
rules[rulenr-1:rulenr-1] = [ rule ]
@@ -13103,10 +13109,10 @@ def mode_edit_rule(phase, new = False):
return
rulenr = len(rules)
else:
- rulenr = int(html.var("rulenr"))
try:
+ rulenr = int(html.var("rulenr"))
rule = rules[rulenr]
- except IndexError:
+ except (TypeError, ValueError, IndexError):
if phase == "action":
raise MKUserError("rulenr", _("You are trying to edit a
rule which does not exist "
"anymore."))