Module: check_mk
Branch: master
Commit: d8308c3bc7eee93379a4cb9a0995be1ba41087e8
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=d8308c3bc7eee9…
Author: Lars Michelsen <lm(a)mathias-kettner.de>
Date: Fri Feb 24 09:26:30 2017 +0100
4395 FIX Inventory filters: Fixed error handling when entering invalid regexes
Change-Id: I7c7edd13fcd1af3ac3e0d642e7375d48debcfa22
---
.werks/4395 | 11 +++++++++++
web/plugins/visuals/inventory.py | 24 +++++++++++++++++++++---
2 files changed, 32 insertions(+), 3 deletions(-)
diff --git a/.werks/4395 b/.werks/4395
new file mode 100644
index 0000000..590af27
--- /dev/null
+++ b/.werks/4395
@@ -0,0 +1,11 @@
+Title: Inventory filters: Fixed error handling when entering invalid regexes
+Level: 1
+Component: inv
+Class: fix
+Compatible: compat
+Edition: cre
+State: unknown
+Version: 1.5.0i1
+Date: 1487924766
+
+
diff --git a/web/plugins/visuals/inventory.py b/web/plugins/visuals/inventory.py
index af54a35..12a9809 100644
--- a/web/plugins/visuals/inventory.py
+++ b/web/plugins/visuals/inventory.py
@@ -54,7 +54,13 @@ class FilterInvtableText(Filter):
if not filtertext:
return rows
- regex = re.compile(filtertext, re.IGNORECASE)
+ try:
+ regex = re.compile(filtertext, re.IGNORECASE)
+ except re.error:
+ raise MKUserError(htmlvar,
+ _('You search statement is not valid. You need to provide a regular
'
+ 'expression (regex). For example you need to use
<tt>\\\\</tt> instead of <tt>\\</tt> '
+ 'if you like to search for a single backslash.'))
newrows = []
for row in rows:
@@ -332,7 +338,13 @@ class FilterInvText(Filter):
if not filtertext:
return rows
- regex = re.compile(filtertext, re.IGNORECASE)
+ try:
+ regex = re.compile(filtertext, re.IGNORECASE)
+ except re.error:
+ raise MKUserError(htmlvar,
+ _('You search statement is not valid. You need to provide a regular
'
+ 'expression (regex). For example you need to use
<tt>\\\\</tt> instead of <tt>\\</tt> '
+ 'if you like to search for a single backslash.'))
newrows = []
for row in rows:
@@ -487,7 +499,13 @@ class FilterInvHasSoftwarePackage(Filter):
negate = html.get_checkbox(self._varprefix + "negate")
match = html.var(self._varprefix + "match")
if match == "regex":
- name = re.compile(name)
+ try:
+ name = re.compile(name)
+ except re.error:
+ raise MKUserError(self._varprefix + "name",
+ _('You search statement is not valid. You need to provide a regular
'
+ 'expression (regex). For example you need to use
<tt>\\\\</tt> instead of <tt>\\</tt> '
+ 'if you like to search for a single backslash.'))
new_rows = []
for row in rows: