mirror of
https://github.com/pandorafms/pandorafms.git
synced 2025-07-31 01:35:36 +02:00
Merge branch 'ent-11953-informe-group-report-en-meta-no-muestra-mas-nodos-que-el-1' into 'develop'
Ent 11953 informe group report en meta no muestra mas nodos que el 1 See merge request artica/pandorafms!6408
This commit is contained in:
commit
885ed9747b
@ -1272,36 +1272,58 @@ $class = 'databox filters';
|
|||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
|
||||||
|
<?php
|
||||||
|
if (is_metaconsole() === true) {
|
||||||
|
?>
|
||||||
|
<tr id="row_servers_all" class="datos">
|
||||||
|
<td class="bolder"><?php echo __('Server'); ?></td>
|
||||||
|
<td >
|
||||||
<?php
|
<?php
|
||||||
if ($meta) {
|
html_print_select(
|
||||||
?>
|
$servers,
|
||||||
|
'combo_server_all',
|
||||||
|
$server_name,
|
||||||
|
'',
|
||||||
|
__('All nodes'),
|
||||||
|
'all'
|
||||||
|
);
|
||||||
|
?>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
|
||||||
|
<?php
|
||||||
|
if ($meta) {
|
||||||
|
?>
|
||||||
<tr id="row_multiple_servers" class="datos">
|
<tr id="row_multiple_servers" class="datos">
|
||||||
<td class="bolder"><?php echo __('Server'); ?></td>
|
<td class="bolder"><?php echo __('Server'); ?></td>
|
||||||
<td >
|
<td >
|
||||||
<?php
|
<?php
|
||||||
$server_ids = [];
|
$server_ids = [];
|
||||||
$server_ids[0] = __('Local metaconsole');
|
$server_ids[0] = __('Local metaconsole');
|
||||||
$get_servers = metaconsole_get_servers();
|
$get_servers = metaconsole_get_servers();
|
||||||
foreach ($get_servers as $key => $server) {
|
foreach ($get_servers as $key => $server) {
|
||||||
$server_ids[$server['id']] = $server['server_name'];
|
$server_ids[$server['id']] = $server['server_name'];
|
||||||
}
|
}
|
||||||
|
|
||||||
html_print_select(
|
html_print_select(
|
||||||
$server_ids,
|
$server_ids,
|
||||||
'server_multiple[]',
|
'server_multiple[]',
|
||||||
$server_multiple,
|
$server_multiple,
|
||||||
'',
|
'',
|
||||||
'',
|
'',
|
||||||
0,
|
0,
|
||||||
false,
|
false,
|
||||||
true
|
true
|
||||||
);
|
);
|
||||||
?>
|
?>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<?php
|
<?php
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
|
||||||
<tr id="row_label" class="datos">
|
<tr id="row_label" class="datos">
|
||||||
<td class="bolder">
|
<td class="bolder">
|
||||||
@ -6545,6 +6567,7 @@ function chooseType() {
|
|||||||
$("#row_alert_actions").hide();
|
$("#row_alert_actions").hide();
|
||||||
$("#row_servers").hide();
|
$("#row_servers").hide();
|
||||||
$("#row_servers_all_opt").hide();
|
$("#row_servers_all_opt").hide();
|
||||||
|
$("#row_servers_all").hide();
|
||||||
$("#row_multiple_servers").hide();
|
$("#row_multiple_servers").hide();
|
||||||
$("#row_sort").hide();
|
$("#row_sort").hide();
|
||||||
$("#row_date").hide();
|
$("#row_date").hide();
|
||||||
@ -7109,7 +7132,7 @@ function chooseType() {
|
|||||||
|
|
||||||
case 'group_report':
|
case 'group_report':
|
||||||
$("#row_group").show();
|
$("#row_group").show();
|
||||||
$("#row_servers_all_opt").show();
|
$("#row_servers_all").show();
|
||||||
$("#row_description").show();
|
$("#row_description").show();
|
||||||
$("#row_historical_db_check").hide();
|
$("#row_historical_db_check").hide();
|
||||||
break;
|
break;
|
||||||
|
@ -1986,7 +1986,7 @@ switch ($action) {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case 'group_report':
|
case 'group_report':
|
||||||
$values['server_name'] = get_parameter('combo_server');
|
$values['server_name'] = get_parameter('combo_server_all');
|
||||||
$good_format = true;
|
$good_format = true;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -2862,7 +2862,7 @@ switch ($action) {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case 'group_report':
|
case 'group_report':
|
||||||
$values['server_name'] = get_parameter('combo_server');
|
$values['server_name'] = get_parameter('combo_server_all');
|
||||||
$good_format = true;
|
$good_format = true;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -26,6 +26,7 @@
|
|||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
* ============================================================================
|
* ============================================================================
|
||||||
*/
|
*/
|
||||||
|
use PandoraFMS\Enterprise\Metaconsole\Node;
|
||||||
|
|
||||||
require_once $config['homedir'].'/include/functions.php';
|
require_once $config['homedir'].'/include/functions.php';
|
||||||
require_once $config['homedir'].'/include/functions_db.php';
|
require_once $config['homedir'].'/include/functions_db.php';
|
||||||
@ -2582,16 +2583,66 @@ function reporting_html_group_report($table, $item, $pdf=0)
|
|||||||
$table->colspan['group_report']['cell'] = 3;
|
$table->colspan['group_report']['cell'] = 3;
|
||||||
$table->cellstyle['group_report']['cell'] = 'text-align: center;';
|
$table->cellstyle['group_report']['cell'] = 'text-align: center;';
|
||||||
$metaconsole_connected = false;
|
$metaconsole_connected = false;
|
||||||
if (is_metaconsole() === true) {
|
if (is_metaconsole() === true && $item['server_name'] != '0') {
|
||||||
$connection = metaconsole_get_connection($item['server_name']);
|
$connection = metaconsole_get_connection($item['server_name']);
|
||||||
if (metaconsole_connect($connection) == NOERR) {
|
if (metaconsole_connect($connection) == NOERR) {
|
||||||
$metaconsole_connected = true;
|
$metaconsole_connected = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$all_group_id = [];
|
||||||
|
$group_events = [];
|
||||||
|
$group_os = [];
|
||||||
|
|
||||||
if ($item['subtitle'] === 'All') {
|
if ($item['subtitle'] === 'All') {
|
||||||
|
if (is_metaconsole() === true && $item['server_name'] === 'all' || $item['server_name'] === '0') {
|
||||||
|
$nodes = metaconsole_get_connections();
|
||||||
|
foreach ($nodes as $node) {
|
||||||
|
try {
|
||||||
|
$nd = new Node($node['id']);
|
||||||
|
$nd->connect();
|
||||||
|
|
||||||
|
$all_group_id_node = db_get_all_rows_sql('SELECT id_grupo FROM tgrupo');
|
||||||
|
|
||||||
|
$group_events_node = db_get_all_rows_sql(
|
||||||
|
'SELECT COUNT(te.id_evento) as count_events, ta.alias
|
||||||
|
FROM tevento as te
|
||||||
|
INNER JOIN tagente as ta ON te.id_agente = ta.id_agente
|
||||||
|
GROUP BY te.id_agente'
|
||||||
|
);
|
||||||
|
$group_os_node = db_get_all_rows_sql(
|
||||||
|
'SELECT COUNT(os.name) as count_os, os.name as name_os, ta.id_grupo
|
||||||
|
FROM tconfig_os as os
|
||||||
|
INNER JOIN tagente as ta ON ta.id_os = os.id_os GROUP by os.name'
|
||||||
|
);
|
||||||
|
|
||||||
|
$all_group_id = array_merge($all_group_id, $all_group_id_node);
|
||||||
|
$group_events = array_merge($group_events, $group_events_node);
|
||||||
|
$group_os = array_merge($group_os, $group_os_node);
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
$nd->disconnect();
|
||||||
|
$modules_regex_node = [];
|
||||||
|
} finally {
|
||||||
|
$nd->disconnect();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$all_group_id = db_get_all_rows_sql('SELECT id_grupo FROM tgrupo');
|
||||||
|
|
||||||
|
$group_events = db_get_all_rows_sql(
|
||||||
|
'SELECT COUNT(te.id_evento) as count_events, ta.alias
|
||||||
|
FROM tevento as te
|
||||||
|
INNER JOIN tagente as ta ON te.id_agente = ta.id_agente
|
||||||
|
GROUP BY te.id_agente'
|
||||||
|
);
|
||||||
|
$group_os = db_get_all_rows_sql(
|
||||||
|
'SELECT COUNT(os.name) as count_os, os.name as name_os, ta.id_grupo
|
||||||
|
FROM tconfig_os as os
|
||||||
|
INNER JOIN tagente as ta ON ta.id_os = os.id_os GROUP by os.name'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
$group_id = [];
|
$group_id = [];
|
||||||
$all_group_id = db_get_all_rows_sql('SELECT id_grupo FROM tgrupo');
|
|
||||||
|
|
||||||
foreach ($all_group_id as $group) {
|
foreach ($all_group_id as $group) {
|
||||||
$group_id[] = $group['id_grupo'];
|
$group_id[] = $group['id_grupo'];
|
||||||
@ -2599,61 +2650,113 @@ function reporting_html_group_report($table, $item, $pdf=0)
|
|||||||
|
|
||||||
$description = __('Data view of all groups');
|
$description = __('Data view of all groups');
|
||||||
$icon = '';
|
$icon = '';
|
||||||
|
|
||||||
$group_events = db_get_all_rows_sql(
|
|
||||||
'SELECT COUNT(te.id_evento) as count_events, ta.alias
|
|
||||||
FROM tevento as te
|
|
||||||
INNER JOIN tagente as ta ON te.id_agente = ta.id_agente
|
|
||||||
GROUP BY te.id_agente'
|
|
||||||
);
|
|
||||||
|
|
||||||
$group_os = db_get_all_rows_sql(
|
|
||||||
'SELECT COUNT(os.name) as count_os, os.name as name_os, ta.id_grupo
|
|
||||||
FROM tconfig_os as os
|
|
||||||
INNER JOIN tagente as ta ON ta.id_os = os.id_os GROUP by os.name'
|
|
||||||
);
|
|
||||||
} else {
|
} else {
|
||||||
$group_id = db_get_value('id_grupo', 'tgrupo', 'nombre', $item['subtitle']);
|
$group_id = db_get_value('id_grupo', 'tgrupo', 'nombre', $item['subtitle']);
|
||||||
$description = db_get_value('description', 'tgrupo', 'id_grupo', $group_id);
|
|
||||||
$icon_url = db_get_value('icon', 'tgrupo', 'id_grupo', $group_id);
|
|
||||||
$icon = html_print_image(
|
|
||||||
'images/'.$icon_url,
|
|
||||||
true,
|
|
||||||
[
|
|
||||||
'title' => $item['subtitle'],
|
|
||||||
'class' => 'main_menu_icon invert_filter',
|
|
||||||
]
|
|
||||||
);
|
|
||||||
|
|
||||||
$childrens = db_get_all_rows_sql('SELECT id_grupo FROM tgrupo WHERE parent = '.$group_id);
|
if (is_metaconsole() === true && $item['server_name'] === 'all' || $item['server_name'] === '0') {
|
||||||
$total_agents = db_get_all_rows_sql('SELECT COUNT(id_agente) as total FROM tagente where id_grupo = '.$group_id);
|
$nodes = metaconsole_get_connections();
|
||||||
|
foreach ($nodes as $node) {
|
||||||
|
try {
|
||||||
|
$nd = new Node($node['id']);
|
||||||
|
$nd->connect();
|
||||||
|
|
||||||
if ($childrens !== false && (int) $total_agents[0]['total'] !== $item['data']['group_stats']['total_agents']) {
|
$group_id_node = db_get_value('id_grupo', 'tgrupo', 'nombre', $item['subtitle']);
|
||||||
$array_group_id = [];
|
$description = db_get_value('description', 'tgrupo', 'id_grupo', $group_id_node);
|
||||||
$array_group_id[] = $group_id;
|
$icon_url = db_get_value('icon', 'tgrupo', 'id_grupo', $group_id_node);
|
||||||
foreach ($childrens as $group) {
|
$icon = html_print_image(
|
||||||
$array_group_id[] = $group['id_grupo'];
|
'images/'.$icon_url,
|
||||||
|
true,
|
||||||
|
[
|
||||||
|
'title' => $item['subtitle'],
|
||||||
|
'class' => 'main_menu_icon invert_filter',
|
||||||
|
]
|
||||||
|
);
|
||||||
|
|
||||||
|
$childrens = db_get_all_rows_sql('SELECT id_grupo FROM tgrupo WHERE parent = '.$group_id_node);
|
||||||
|
$total_agents = db_get_all_rows_sql('SELECT COUNT(id_agente) as total FROM tagente where id_grupo = '.$group_id_node);
|
||||||
|
|
||||||
|
if ($childrens !== false && (int) $total_agents[0]['total'] !== $item['data']['group_stats']['total_agents']) {
|
||||||
|
$array_group_id = [];
|
||||||
|
$array_group_id[] = $group_id_node;
|
||||||
|
foreach ($childrens as $group) {
|
||||||
|
$array_group_id[] = $group['id_grupo'];
|
||||||
|
}
|
||||||
|
|
||||||
|
$group_id_node = $array_group_id;
|
||||||
|
$explode_group_id = implode(',', $group_id_node);
|
||||||
|
} else {
|
||||||
|
$explode_group_id = $group_id_node;
|
||||||
|
}
|
||||||
|
|
||||||
|
$group_events_node = db_get_all_rows_sql(
|
||||||
|
'SELECT COUNT(te.id_evento) as count_events, ta.alias
|
||||||
|
FROM tevento as te
|
||||||
|
INNER JOIN tagente as ta ON te.id_agente = ta.id_agente WHERE te.id_grupo IN ('.$explode_group_id.')
|
||||||
|
GROUP BY te.id_agente'
|
||||||
|
);
|
||||||
|
|
||||||
|
$group_os_node = db_get_all_rows_sql(
|
||||||
|
'SELECT COUNT(os.name) as count_os, os.name as name_os, ta.id_grupo
|
||||||
|
FROM tconfig_os as os
|
||||||
|
INNER JOIN tagente as ta ON ta.id_os = os.id_os
|
||||||
|
WHERE ta.id_grupo IN ('.$explode_group_id.') GROUP by os.name'
|
||||||
|
);
|
||||||
|
|
||||||
|
if (is_array($group_events_node) === true) {
|
||||||
|
$group_events = array_merge($group_events, $group_events_node);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (is_array($group_os_node) === true) {
|
||||||
|
$group_os = array_merge($group_os, $group_os_node);
|
||||||
|
}
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
$nd->disconnect();
|
||||||
|
} finally {
|
||||||
|
$nd->disconnect();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$description = db_get_value('description', 'tgrupo', 'id_grupo', $group_id);
|
||||||
|
$icon_url = db_get_value('icon', 'tgrupo', 'id_grupo', $group_id);
|
||||||
|
$icon = html_print_image(
|
||||||
|
'images/'.$icon_url,
|
||||||
|
true,
|
||||||
|
[
|
||||||
|
'title' => $item['subtitle'],
|
||||||
|
'class' => 'main_menu_icon invert_filter',
|
||||||
|
]
|
||||||
|
);
|
||||||
|
|
||||||
|
$childrens = db_get_all_rows_sql('SELECT id_grupo FROM tgrupo WHERE parent = '.$group_id);
|
||||||
|
$total_agents = db_get_all_rows_sql('SELECT COUNT(id_agente) as total FROM tagente where id_grupo = '.$group_id);
|
||||||
|
|
||||||
|
if ($childrens !== false && (int) $total_agents[0]['total'] !== $item['data']['group_stats']['total_agents']) {
|
||||||
|
$array_group_id = [];
|
||||||
|
$array_group_id[] = $group_id;
|
||||||
|
foreach ($childrens as $group) {
|
||||||
|
$array_group_id[] = $group['id_grupo'];
|
||||||
|
}
|
||||||
|
|
||||||
|
$group_id = $array_group_id;
|
||||||
|
$explode_group_id = implode(',', $group_id);
|
||||||
|
} else {
|
||||||
|
$explode_group_id = $group_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
$group_id = $array_group_id;
|
$group_events = db_get_all_rows_sql(
|
||||||
$explode_group_id = implode(',', $group_id);
|
'SELECT COUNT(te.id_evento) as count_events, ta.alias
|
||||||
} else {
|
FROM tevento as te
|
||||||
$explode_group_id = $group_id;
|
INNER JOIN tagente as ta ON te.id_agente = ta.id_agente WHERE te.id_grupo IN ('.$explode_group_id.')
|
||||||
|
GROUP BY te.id_agente'
|
||||||
|
);
|
||||||
|
|
||||||
|
$group_os = db_get_all_rows_sql(
|
||||||
|
'SELECT COUNT(os.name) as count_os, os.name as name_os, ta.id_grupo
|
||||||
|
FROM tconfig_os as os
|
||||||
|
INNER JOIN tagente as ta ON ta.id_os = os.id_os
|
||||||
|
WHERE ta.id_grupo IN ('.$explode_group_id.') GROUP by os.name'
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
$group_events = db_get_all_rows_sql(
|
|
||||||
'SELECT COUNT(te.id_evento) as count_events, ta.alias
|
|
||||||
FROM tevento as te
|
|
||||||
INNER JOIN tagente as ta ON te.id_agente = ta.id_agente WHERE te.id_grupo IN ('.$explode_group_id.')
|
|
||||||
GROUP BY te.id_agente'
|
|
||||||
);
|
|
||||||
|
|
||||||
$group_os = db_get_all_rows_sql(
|
|
||||||
'SELECT COUNT(os.name) as count_os, os.name as name_os, ta.id_grupo
|
|
||||||
FROM tconfig_os as os
|
|
||||||
INNER JOIN tagente as ta ON ta.id_os = os.id_os
|
|
||||||
WHERE ta.id_grupo IN ('.$explode_group_id.') GROUP by os.name'
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($metaconsole_connected === true) {
|
if ($metaconsole_connected === true) {
|
||||||
@ -2764,8 +2867,10 @@ function reporting_html_group_report($table, $item, $pdf=0)
|
|||||||
$options = [];
|
$options = [];
|
||||||
$labels = [];
|
$labels = [];
|
||||||
foreach ($group_os as $value) {
|
foreach ($group_os as $value) {
|
||||||
$data[$value['name_os']] = $value['count_os'];
|
$data[$value['name_os']] += $value['count_os'];
|
||||||
$labels[] = io_safe_output($value['name_os']);
|
if (array_search($value['name_os'], $labels) === false) {
|
||||||
|
$labels[] = io_safe_output($value['name_os']);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$options = [
|
$options = [
|
||||||
|
Loading…
x
Reference in New Issue
Block a user