diff --git a/pandora_console/godmode/servers/plugin.php b/pandora_console/godmode/servers/plugin.php
index 75db97e1e7..eba56e34c6 100644
--- a/pandora_console/godmode/servers/plugin.php
+++ b/pandora_console/godmode/servers/plugin.php
@@ -57,21 +57,9 @@ if (is_ajax()) {
$network_components = [];
}
- $modules = db_get_all_rows_filter(
- 'tagente_modulo',
- [
- 'delete_pending' => 0,
- 'id_plugin' => $id_plugin,
- ]
- );
- if (empty($modules)) {
- $modules = [];
- }
-
$table = new stdClass();
$table->width = '100%';
$table->head[0] = __('Network Components');
- // $table->data = [];
foreach ($network_components as $net_comp) {
$table->data[] = [$net_comp['name']];
}
@@ -80,24 +68,86 @@ if (is_ajax()) {
html_print_table($table);
}
- $table = new stdClass();
- $table->width = '100%';
- $table->head[0] = __('Agent');
- $table->head[1] = __('Module');
- foreach ($modules as $mod) {
- $agent_name = ''.modules_get_agentmodule_agent_alias(
- $mod['id_agente_modulo']
- ).'';
+ if (is_metaconsole() === true) {
+ $connection_names = metaconsole_get_connection_names();
+ $modules = [];
+ foreach ($connection_names as $connection_name) {
+ $connected = metaconsole_connect(metaconsole_get_connection($connection_name));
+ if ($connected != NOERR) {
+ continue;
+ }
+ $modules_node = db_get_all_rows_filter(
+ 'tagente_modulo',
+ [
+ 'delete_pending' => 0,
+ 'id_plugin' => $id_plugin,
+ ]
+ );
+ if (empty($modules_node) === false) {
+ foreach ($modules_node as $key => $mod) {
+ $modules_node[$key]['name_agent'] = modules_get_agentmodule_agent_alias($mod['id_agente_modulo']);
+ }
- $table->data[] = [
- $agent_name,
- $mod['nombre'],
- ];
+ $modules[$connection_name] = $modules_node;
+ }
+
+ metaconsole_restore_db();
+ }
+ } else {
+ $modules = db_get_all_rows_filter(
+ 'tagente_modulo',
+ [
+ 'delete_pending' => 0,
+ 'id_plugin' => $id_plugin,
+ ]
+ );
}
- if (!empty($table->data)) {
- html_print_table($table);
+ if (empty($modules)) {
+ $modules = [];
+ }
+
+ if (is_metaconsole() === true) {
+ foreach ($modules as $name_server => $modules_node) {
+ $table = new stdClass();
+ $table->width = '100%';
+ $table->head[0] = $name_server.' - '.__('Agent');
+ $table->head[1] = $name_server.' - '.__('Module');
+ foreach ($modules_node as $mod) {
+ $server = metaconsole_get_servers(metaconsole_get_id_server($name_server));
+ $agent_name = ''.$mod['name_agent'].'';
+
+ $table->data[] = [
+ $agent_name,
+ $mod['nombre'],
+ ];
+ }
+
+ if (!empty($table->data)) {
+ html_print_table($table);
+ }
+ }
+ } else {
+ $table = new stdClass();
+ $table->width = '100%';
+ $table->head[0] = __('Agent');
+ $table->head[1] = __('Module');
+ foreach ($modules as $mod) {
+ $agent_name = ''.modules_get_agentmodule_agent_alias(
+ $mod['id_agente_modulo']
+ ).'';
+
+
+ $table->data[] = [
+ $agent_name,
+ $mod['nombre'],
+ ];
+ }
+
+ if (!empty($table->data)) {
+ html_print_table($table);
+ }
}
return;
@@ -991,8 +1041,39 @@ if (empty($create) === false || empty($view) === false) {
$pluginTable->data = [];
foreach ($rows as $k => $row) {
+ $tableActionButtons = [];
+ // Show it is locket.
+ $modules_using_plugin = db_get_value_filter(
+ 'count(*)',
+ 'tagente_modulo',
+ [
+ 'delete_pending' => 0,
+ 'id_plugin' => $row['id'],
+ ]
+ );
+ $components_using_plugin = db_get_value_filter(
+ 'count(*)',
+ 'tnetwork_component',
+ ['id_plugin' => $row['id']]
+ );
+ if (($components_using_plugin + $modules_using_plugin) > 0) {
+ $tableActionButtons[] = html_print_anchor(
+ [
+ 'href' => 'javascript: show_locked_dialog('.$row['id'].', \''.$row['name'].'\');',
+ 'content' => html_print_image(
+ 'images/policy@svg.svg',
+ true,
+ [
+ 'title' => __('Lock'),
+ 'class' => 'invert_filter main_menu_icon',
+ ]
+ ),
+ ],
+ true
+ );
+ }
+
if ($management_allowed === true) {
- $tableActionButtons = [];
$pluginNameContent = html_print_anchor(
[
'href' => 'index.php?sec=$sec&sec2=godmode/servers/plugin&view='.$row['id'].'&tab=plugins&pure='.$config['pure'],
@@ -1001,37 +1082,6 @@ if (empty($create) === false || empty($view) === false) {
true
);
- // Show it is locket.
- $modules_using_plugin = db_get_value_filter(
- 'count(*)',
- 'tagente_modulo',
- [
- 'delete_pending' => 0,
- 'id_plugin' => $row['id'],
- ]
- );
- $components_using_plugin = db_get_value_filter(
- 'count(*)',
- 'tnetwork_component',
- ['id_plugin' => $row['id']]
- );
- if (($components_using_plugin + $modules_using_plugin) > 0) {
- $tableActionButtons[] = html_print_anchor(
- [
- 'href' => 'javascript: show_locked_dialog('.$row['id'].', \''.$row['name'].'\');',
- 'content' => html_print_image(
- 'images/policy@svg.svg',
- true,
- [
- 'title' => __('Lock'),
- 'class' => 'invert_filter main_menu_icon',
- ]
- ),
- ],
- true
- );
- }
-
$tableActionButtons[] = html_print_anchor(
[
'href' => 'index.php?sec=$sec&sec2=godmode/servers/plugin&tab=$tab&view='.$row['id'].'&tab=plugins&pure='.$config['pure'],
@@ -1072,15 +1122,13 @@ if (empty($create) === false || empty($view) === false) {
$pluginTable->data[$k][1] = ((int) $row['plugin_type'] === 0) ? __('Standard') : __('Nagios');
$pluginTable->data[$k][2] = $row['execute'];
- if ($management_allowed === true) {
- $pluginTable->data[$k][3] = html_print_div(
- [
- 'class' => 'table_action_buttons',
- 'content' => implode('', $tableActionButtons),
- ],
- true
- );
- }
+ $pluginTable->data[$k][3] = html_print_div(
+ [
+ 'class' => 'table_action_buttons',
+ 'content' => implode('', $tableActionButtons),
+ ],
+ true
+ );
}
html_print_table($pluginTable);