From 8cea292745f21302cdc721371fdf6fece4424aa1 Mon Sep 17 00:00:00 2001 From: Eric Lippmann Date: Thu, 17 Sep 2015 16:22:24 +0200 Subject: [PATCH] monitoring: Fix grouping of host and service status when filtering for group columns refs #9956 --- .../Backend/Ido/Query/HoststatusQuery.php | 16 ++++++++-------- .../Backend/Ido/Query/ServicestatusQuery.php | 16 ++++++++-------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/modules/monitoring/library/Monitoring/Backend/Ido/Query/HoststatusQuery.php b/modules/monitoring/library/Monitoring/Backend/Ido/Query/HoststatusQuery.php index 9898ccac9..7f1066bfc 100644 --- a/modules/monitoring/library/Monitoring/Backend/Ido/Query/HoststatusQuery.php +++ b/modules/monitoring/library/Monitoring/Backend/Ido/Query/HoststatusQuery.php @@ -289,26 +289,26 @@ class HoststatusQuery extends IdoQuery } $groupedTables = array(); if ($this->hasJoinedVirtualTable('servicegroups')) { + $group[] = 'ho.object_id'; + $group[] = 'h.host_id'; + $groupedTables['hosts'] = true; $serviceGroupColumns = array_keys($this->columnMap['servicegroups']); $selectedServiceGroupColumns = array_intersect($serviceGroupColumns, array_keys($this->columns)); if (! empty($selectedServiceGroupColumns)) { - $group[] = 'ho.object_id'; - $group[] = 'h.host_id'; $group[] = 'sgo.object_id'; $group[] = 'sg.servicegroup_id'; - $groupedTables['hosts'] = true; $groupedTables['servicegroups'] = true; } } if ($this->hasJoinedVirtualTable('hostgroups')) { + if (! isset($groupedTables['hosts'])) { + $group[] = 'ho.object_id'; + $group[] = 'h.host_id'; + $groupedTables['hosts'] = true; + } $hostGroupColumns = array_keys($this->columnMap['hostgroups']); $selectedHostGroupColumns = array_intersect($hostGroupColumns, array_keys($this->columns)); if (! empty($selectedHostGroupColumns)) { - if (! isset($groupedTables['hosts'])) { - $group[] = 'ho.object_id'; - $group[] = 'h.host_id'; - $groupedTables['hosts'] = true; - } $group[] = 'hgo.object_id'; $group[] = 'hg.hostgroup_id'; $groupedTables['hostgroups'] = true; diff --git a/modules/monitoring/library/Monitoring/Backend/Ido/Query/ServicestatusQuery.php b/modules/monitoring/library/Monitoring/Backend/Ido/Query/ServicestatusQuery.php index 734e138d4..1c9785548 100644 --- a/modules/monitoring/library/Monitoring/Backend/Ido/Query/ServicestatusQuery.php +++ b/modules/monitoring/library/Monitoring/Backend/Ido/Query/ServicestatusQuery.php @@ -409,26 +409,26 @@ class ServicestatusQuery extends IdoQuery } $groupedTables = array(); if ($this->hasJoinedVirtualTable('servicegroups')) { + $group[] = 'so.object_id'; + $group[] = 's.service_id'; + $groupedTables['services'] = true; $serviceGroupColumns = array_keys($this->columnMap['servicegroups']); $selectedServiceGroupColumns = array_intersect($serviceGroupColumns, array_keys($this->columns)); if (! empty($selectedServiceGroupColumns)) { - $group[] = 'so.object_id'; - $group[] = 's.service_id'; $group[] = 'sgo.object_id'; $group[] = 'sg.servicegroup_id'; - $groupedTables['services'] = true; $groupedTables['servicegroups'] = true; } } if ($this->hasJoinedVirtualTable('hostgroups')) { + if (! isset($groupedTables['services'])) { + $group[] = 'so.object_id'; + $group[] = 's.service_id'; + $groupedTables['services'] = true; + } $hostGroupColumns = array_keys($this->columnMap['hostgroups']); $selectedHostGroupColumns = array_intersect($hostGroupColumns, array_keys($this->columns)); if (! empty($selectedHostGroupColumns)) { - if (! isset($groupedTables['services'])) { - $group[] = 'so.object_id'; - $group[] = 's.service_id'; - $groupedTables['services'] = true; - } $group[] = 'hgo.object_id'; $group[] = 'hg.hostgroup_id'; $groupedTables['hostgroups'] = true;