Module: check_mk
Branch: master
Commit: 8631bc2753345272c873781c74af0f5955fc4dad
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=8631bc27533452…
Author: Simon Betz <si(a)mathias-kettner.de>
Date: Sun May 14 13:25:21 2017 +0200
4656 Added folder selection to Host & Service Parameters search
Change-Id: Ib3fa62949cb29cff6e10571dcfb50456c3971d08
---
.werks/4656 | 10 ++++++++++
web/htdocs/wato.py | 18 ++++++++++++++++++
web/htdocs/watolib.py | 13 ++++++++++++-
3 files changed, 40 insertions(+), 1 deletion(-)
diff --git a/.werks/4656 b/.werks/4656
new file mode 100644
index 0000000..575f170
--- /dev/null
+++ b/.werks/4656
@@ -0,0 +1,10 @@
+Title: Added folder selection to Host & Service Parameters search
+Level: 1
+Component: wato
+Compatible: compat
+Edition: cre
+Version: 1.5.0i1
+Date: 1494761036
+Class: feature
+
+
diff --git a/web/htdocs/wato.py b/web/htdocs/wato.py
index 4c8e4d1..1a28d0b 100644
--- a/web/htdocs/wato.py
+++ b/web/htdocs/wato.py
@@ -13095,6 +13095,7 @@ class ModeRuleSearch(WatoMode):
"rule_hosttags",
"rule_disabled",
"rule_ineffective",
+ "rule_folder",
]),
],
elements = [
@@ -13183,6 +13184,23 @@ class ModeRuleSearch(WatoMode):
(False, _("Search for effective rules")),
],
)),
+ ("rule_folder", Tuple(
+ title = _("Folder"),
+ elements = [
+ DropdownChoice(
+ title = _("Selection"),
+ choices = Folder.folder_choices(),
+ ),
+ DropdownChoice(
+ title = _("Recursion"),
+ choices = [
+ (True, _("Also search in subfolders")),
+ (False, _("Search in this folder")),
+ ],
+ default_value = False,
+ ),
+ ],
+ )),
],
)
diff --git a/web/htdocs/watolib.py b/web/htdocs/watolib.py
index ef8aed4..d138830 100644
--- a/web/htdocs/watolib.py
+++ b/web/htdocs/watolib.py
@@ -7410,7 +7410,6 @@ class Ruleset(object):
# The ruleset matched or did not decide to skip the whole ruleset.
# The ruleset should be matched in case a rule matches.
-
if not self.has_rule_search_options(search_options):
return self.matches_fulltext_search(search_options)
@@ -7923,6 +7922,9 @@ class Rule(object):
def matches_search(self, search_options):
+ if "rule_folder" in search_options and self.folder.name() not in
self._get_search_folders(search_options):
+ return False
+
if "rule_disabled" in search_options and
search_options["rule_disabled"] != self.is_disabled():
return False
@@ -7978,6 +7980,15 @@ class Rule(object):
return True
+ def _get_search_folders(self, search_options):
+ current_folder, do_recursion = search_options["rule_folder"]
+ current_folder = Folder.folder(current_folder)
+ search_in_folders = [current_folder.name()]
+ if do_recursion:
+ search_in_folders = [x.split("/")[-1] for x,y in
current_folder.recursive_subfolder_choices()]
+ return search_in_folders
+
+
def index(self):
return self.ruleset.get_folder_rules(self.folder).index(self)