From 923bc11b391a1c6f70c3d5fa9febaf39a5b30fa3 Mon Sep 17 00:00:00 2001 From: Johannes Meyer Date: Tue, 14 Apr 2015 12:44:24 +0200 Subject: [PATCH] GroupsummaryQuery: Provide case insensitive filter columns for group names I've renamed those and made them case sensitive as part of #8613 but missed that they are required by the global search. fixes #9056 --- .../Monitoring/Backend/Ido/Query/GroupsummaryQuery.php | 10 +++++++--- .../Monitoring/Backend/Ido/Query/HoststatusQuery.php | 2 ++ .../library/Monitoring/DataView/Groupsummary.php | 5 +++++ 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/modules/monitoring/library/Monitoring/Backend/Ido/Query/GroupsummaryQuery.php b/modules/monitoring/library/Monitoring/Backend/Ido/Query/GroupsummaryQuery.php index 5852c329cd..8b72bbf793 100644 --- a/modules/monitoring/library/Monitoring/Backend/Ido/Query/GroupsummaryQuery.php +++ b/modules/monitoring/library/Monitoring/Backend/Ido/Query/GroupsummaryQuery.php @@ -20,7 +20,8 @@ class GroupSummaryQuery extends IdoQuery 'hosts_down_unhandled' => 'SUM(CASE WHEN object_type = \'host\' AND state = 1 AND acknowledged + in_downtime = 0 THEN 1 ELSE 0 END)', 'hosts_pending' => 'SUM(CASE WHEN object_type = \'host\' AND state = 99 THEN 1 ELSE 0 END)', 'hostgroup_name' => 'hostgroup_name', - 'hostgroup_alias' => 'hostgroup_alias' + 'hostgroup_alias' => 'hostgroup_alias', + 'hostgroup' => 'hostgroup' ), 'servicestatussummary' => array( 'services_total' => 'SUM(CASE WHEN object_type = \'service\' THEN 1 ELSE 0 END)', @@ -45,7 +46,8 @@ class GroupSummaryQuery extends IdoQuery 'services_critical_last_state_change_unhandled' => 'MAX(CASE WHEN object_type = \'service\' AND state = 2 AND acknowledged + in_downtime + host_state = 0 THEN state_change ELSE 0 END)', 'services_unknown_last_state_change_unhandled' => 'MAX(CASE WHEN object_type = \'service\' AND state = 3 AND acknowledged + in_downtime + host_state = 0 THEN state_change ELSE 0 END)', 'servicegroup_name' => 'servicegroup_name', - 'servicegroup_alias' => 'servicegroup_alias' + 'servicegroup_alias' => 'servicegroup_alias', + 'servicegroup' => 'servicegroup' ) ); @@ -56,11 +58,13 @@ protected function joinBaseTables() 'host_state' ); - if (in_array('servicegroup_name', $this->desiredColumns)) { + if (in_array('servicegroup', $this->desiredColumns) || in_array('servicegroup_name', $this->desiredColumns)) { + $columns[] = 'servicegroup'; $columns[] = 'servicegroup_name'; $columns[] = 'servicegroup_alias'; $groupColumns = array('servicegroup_name', 'servicegroup_alias'); } else { + $columns[] = 'hostgroup'; $columns[] = 'hostgroup_name'; $columns[] = 'hostgroup_alias'; $groupColumns = array('hostgroup_name', 'hostgroup_alias'); diff --git a/modules/monitoring/library/Monitoring/Backend/Ido/Query/HoststatusQuery.php b/modules/monitoring/library/Monitoring/Backend/Ido/Query/HoststatusQuery.php index 5428d881e7..23a8b585a7 100644 --- a/modules/monitoring/library/Monitoring/Backend/Ido/Query/HoststatusQuery.php +++ b/modules/monitoring/library/Monitoring/Backend/Ido/Query/HoststatusQuery.php @@ -83,10 +83,12 @@ class HoststatusQuery extends IdoQuery END' ), 'hostgroups' => array( + 'hostgroup' => 'hgo.name1 COLLATE latin1_general_ci', 'hostgroup_name' => 'hgo.name1', 'hostgroup_alias' => 'hg.alias' ), 'servicegroups' => array( + 'servicegroup' => 'sgo.name1 COLLATE latin1_general_ci', 'servicegroup_name' => 'sgo.name1', 'servicegroup_alias' => 'sg.alias' ), diff --git a/modules/monitoring/library/Monitoring/DataView/Groupsummary.php b/modules/monitoring/library/Monitoring/DataView/Groupsummary.php index e60e531519..562bed1da5 100644 --- a/modules/monitoring/library/Monitoring/DataView/Groupsummary.php +++ b/modules/monitoring/library/Monitoring/DataView/Groupsummary.php @@ -58,4 +58,9 @@ public function getSortRules() ) ); } + + public function getFilterColumns() + { + return array('hostgroup', 'servicegroup'); + } }