Merge remote-tracking branch 'origin/develop' into ent-3178-integrar-terminal-web-en-la-consola-de-pandora-y-explorar-otras-utilidades-anyterm-replace

Conflicts:
	pandora_console/extensions/quick_shell.php
This commit is contained in:
fbsanchez 2019-11-12 13:25:30 +01:00
commit 0022408538
51 changed files with 490 additions and 152 deletions

View File

@ -1,5 +1,5 @@
package: pandorafms-agent-unix package: pandorafms-agent-unix
Version: 7.0NG.740-191029 Version: 7.0NG.740-191112
Architecture: all Architecture: all
Priority: optional Priority: optional
Section: admin Section: admin

View File

@ -14,7 +14,7 @@
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details. # GNU General Public License for more details.
pandora_version="7.0NG.740-191029" pandora_version="7.0NG.740-191112"
echo "Test if you has the tools for to make the packages." echo "Test if you has the tools for to make the packages."
whereis dpkg-deb | cut -d":" -f2 | grep dpkg-deb > /dev/null whereis dpkg-deb | cut -d":" -f2 | grep dpkg-deb > /dev/null

View File

@ -42,7 +42,7 @@ my $Sem = undef;
my $ThreadSem = undef; my $ThreadSem = undef;
use constant AGENT_VERSION => '7.0NG.740'; use constant AGENT_VERSION => '7.0NG.740';
use constant AGENT_BUILD => '191029'; use constant AGENT_BUILD => '191112';
# Agent log default file size maximum and instances # Agent log default file size maximum and instances
use constant DEFAULT_MAX_LOG_SIZE => 600000; use constant DEFAULT_MAX_LOG_SIZE => 600000;

View File

@ -3,7 +3,7 @@
# #
%define name pandorafms_agent_unix %define name pandorafms_agent_unix
%define version 7.0NG.740 %define version 7.0NG.740
%define release 191029 %define release 191112
Summary: Pandora FMS Linux agent, PERL version Summary: Pandora FMS Linux agent, PERL version
Name: %{name} Name: %{name}

View File

@ -3,7 +3,7 @@
# #
%define name pandorafms_agent_unix %define name pandorafms_agent_unix
%define version 7.0NG.740 %define version 7.0NG.740
%define release 191029 %define release 191112
Summary: Pandora FMS Linux agent, PERL version Summary: Pandora FMS Linux agent, PERL version
Name: %{name} Name: %{name}

View File

@ -10,7 +10,7 @@
# ********************************************************************** # **********************************************************************
PI_VERSION="7.0NG.740" PI_VERSION="7.0NG.740"
PI_BUILD="191029" PI_BUILD="191112"
OS_NAME=`uname -s` OS_NAME=`uname -s`
FORCE=0 FORCE=0

View File

@ -186,7 +186,7 @@ UpgradeApplicationID
{} {}
Version Version
{191029} {191112}
ViewReadme ViewReadme
{Yes} {Yes}

View File

@ -30,7 +30,7 @@ using namespace Pandora;
using namespace Pandora_Strutils; using namespace Pandora_Strutils;
#define PATH_SIZE _MAX_PATH+1 #define PATH_SIZE _MAX_PATH+1
#define PANDORA_VERSION ("7.0NG.740(Build 191029)") #define PANDORA_VERSION ("7.0NG.740(Build 191112)")
string pandora_path; string pandora_path;
string pandora_dir; string pandora_dir;

View File

@ -11,7 +11,7 @@ BEGIN
VALUE "LegalCopyright", "Artica ST" VALUE "LegalCopyright", "Artica ST"
VALUE "OriginalFilename", "PandoraAgent.exe" VALUE "OriginalFilename", "PandoraAgent.exe"
VALUE "ProductName", "Pandora FMS Windows Agent" VALUE "ProductName", "Pandora FMS Windows Agent"
VALUE "ProductVersion", "(7.0NG.740(Build 191029))" VALUE "ProductVersion", "(7.0NG.740(Build 191112))"
VALUE "FileVersion", "1.0.0.0" VALUE "FileVersion", "1.0.0.0"
END END
END END

View File

@ -1,5 +1,5 @@
package: pandorafms-console package: pandorafms-console
Version: 7.0NG.740-191029 Version: 7.0NG.740-191112
Architecture: all Architecture: all
Priority: optional Priority: optional
Section: admin Section: admin

View File

@ -14,7 +14,7 @@
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details. # GNU General Public License for more details.
pandora_version="7.0NG.740-191029" pandora_version="7.0NG.740-191112"
package_pear=0 package_pear=0
package_pandora=1 package_pandora=1

View File

@ -13,6 +13,7 @@ fi
# Install pandora_websocket_engine service. # Install pandora_websocket_engine service.
cp -pf %{prefix}/pandora_console/pandora_websocket_engine /etc/init.d/ cp -pf %{prefix}/pandora_console/pandora_websocket_engine /etc/init.d/
chmod +x /etc/init.d/pandora_websocket_engine
echo "You can now start the Pandora FMS Websocket service by executing" echo "You can now start the Pandora FMS Websocket service by executing"
echo " /etc/init.d/pandora_websocket_engine start" echo " /etc/init.d/pandora_websocket_engine start"

View File

@ -331,19 +331,19 @@ if ($config['menu_type'] == 'classic') {
// Support. // Support.
if (defined('PANDORA_ENTERPRISE')) { if (defined('PANDORA_ENTERPRISE')) {
$header_support_link = 'https://support.artica.es/'; $header_support_link = $config['custom_support_url'];
} else { } else {
$header_support_link = 'https://pandorafms.com/forums/'; $header_support_link = 'https://pandorafms.com/forums/';
} }
$header_support = '<div id="header_support">'; $header_support = '<div id="header_support">';
$header_support .= '<a href="'.$header_support_link.'" target="_blank">'; $header_support .= '<a href="'.ui_get_full_external_url($header_support_link).'" target="_blank">';
$header_support .= html_print_image('/images/header_support.png', true, ['title' => __('Go to support'), 'class' => 'bot', 'alt' => 'user']); $header_support .= html_print_image('/images/header_support.png', true, ['title' => __('Go to support'), 'class' => 'bot', 'alt' => 'user']);
$header_support .= '</a></div>'; $header_support .= '</a></div>';
// Documentation. // Documentation.
$header_docu = '<div id="header_docu">'; $header_docu = '<div id="header_docu">';
$header_docu .= '<a href="https://wiki.pandorafms.com/index.php?title=Main_Page" target="_blank">'; $header_docu .= '<a href="'.ui_get_full_external_url($config['custom_docs_url']).'" target="_blank">';
$header_docu .= html_print_image('/images/header_docu.png', true, ['title' => __('Go to documentation'), 'class' => 'bot', 'alt' => 'user']); $header_docu .= html_print_image('/images/header_docu.png', true, ['title' => __('Go to documentation'), 'class' => 'bot', 'alt' => 'user']);
$header_docu .= '</a></div>'; $header_docu .= '</a></div>';

View File

@ -87,7 +87,7 @@ echo '<div id="login_help_dialog" title="'.__('Welcome to %s', get_product_name(
echo '</td>'; echo '</td>';
echo '<td style="border:1px solid #FFF; text-align:center;">'; echo '<td style="border:1px solid #FFF; text-align:center;">';
echo '<a href="'.$config['custom_docs_url'].'" target="_blank" style="text-decoration:none;">'.html_print_image( echo '<a href="'.ui_get_full_external_url($config['custom_docs_url']).'" target="_blank" style="text-decoration:none;">'.html_print_image(
'images/documentation.png', 'images/documentation.png',
true, true,
[ [
@ -96,7 +96,7 @@ echo '<div id="login_help_dialog" title="'.__('Welcome to %s', get_product_name(
] ]
).'</a>'; ).'</a>';
echo '<br style="margin-bottom: 40px;" />'; echo '<br style="margin-bottom: 40px;" />';
echo '<a style="font-size: 9pt;" href="'.$config['custom_docs_url'].'" target="_blank">'.__('Documentation').'</span></a>'; echo '<a style="font-size: 9pt;"href="'.ui_get_full_external_url($config['custom_docs_url']).'" target="_blank">'.__('Documentation').'</span></a>';
echo '</td>'; echo '</td>';
echo '</tr>'; echo '</tr>';
echo '</table>'; echo '</table>';

View File

@ -88,6 +88,24 @@ if (!empty($config['login_background'])) {
$login_body_style = "style=\"background:linear-gradient(74deg, #02020255 36%, transparent 36%), url('".$background_url."');\""; $login_body_style = "style=\"background:linear-gradient(74deg, #02020255 36%, transparent 36%), url('".$background_url."');\"";
} }
// Get alternative custom in case of db fail.
$custom_fields = [
'custom_logo_login',
'custom_splash_login',
'custom_title1_login',
'custom_title2_login',
'rb_product_name',
];
foreach ($custom_fields as $field) {
if (!isset($config[$field])) {
if (isset($config[$field.'_alt'])) {
$config[$field] = $config[$field.'_alt'];
$custom_conf_enabled = true;
}
}
}
// Get the custom icons. // Get the custom icons.
$docs_logo = ui_get_docs_logo(); $docs_logo = ui_get_docs_logo();
$support_logo = ui_get_support_logo(); $support_logo = ui_get_support_logo();
@ -102,7 +120,7 @@ if ($docs_logo !== false) {
echo '<li><a href="'.$config['custom_docs_url'].'" target="_blank">'.__('Docs').'</li>'; echo '<li><a href="'.$config['custom_docs_url'].'" target="_blank">'.__('Docs').'</li>';
if (file_exists(ENTERPRISE_DIR.'/load_enterprise.php')) { if (file_exists(ENTERPRISE_DIR.'/load_enterprise.php')) {
if ($support_logo !== false) { if ($support_logo !== false) {
echo '<li id="li_margin_left"><a href="'.$config['custom_support_url'].'" target="_blank"><img src="'.$support_logo.'" alt="support"></a></li>'; echo '<li id="li_margin_left"><a href="'.$config['custom_docs_url'].'" target="_blank"><img src="'.$support_logo.'" alt="support"></a></li>';
} }
echo '<li><a href="'.$config['custom_support_url'].'" target="_blank">'.__('Support').'</li>'; echo '<li><a href="'.$config['custom_support_url'].'" target="_blank">'.__('Support').'</li>';
@ -133,7 +151,7 @@ if (defined('METACONSOLE')) {
html_print_image('enterprise/images/custom_logo_login/'.$config['custom_logo_login'], false, ['class' => 'login_logo', 'alt' => 'logo', 'border' => 0, 'title' => $logo_title], false, true); html_print_image('enterprise/images/custom_logo_login/'.$config['custom_logo_login'], false, ['class' => 'login_logo', 'alt' => 'logo', 'border' => 0, 'title' => $logo_title], false, true);
} }
} else { } else {
if (!isset($config['custom_logo_login']) || $config['custom_logo_login'] == 0) { if (!isset($config['custom_logo_login']) || $config['custom_logo_login'] === 0) {
html_print_image('images/custom_logo_login/pandora_logo.png', false, ['class' => 'login_logo', 'alt' => 'logo', 'border' => 0, 'title' => $logo_title], false, true); html_print_image('images/custom_logo_login/pandora_logo.png', false, ['class' => 'login_logo', 'alt' => 'logo', 'border' => 0, 'title' => $logo_title], false, true);
} else { } else {
html_print_image('images/custom_logo_login/'.$config['custom_logo_login'], false, ['class' => 'login_logo', 'alt' => 'logo', 'border' => 0, 'title' => $logo_title], false, true); html_print_image('images/custom_logo_login/'.$config['custom_logo_login'], false, ['class' => 'login_logo', 'alt' => 'logo', 'border' => 0, 'title' => $logo_title], false, true);
@ -423,9 +441,14 @@ if ($login_screen == 'logout') {
} }
switch ($login_screen) { switch ($login_screen) {
case 'error_authconfig':
case 'error_dbconfig': case 'error_dbconfig':
$title = __('Problem with %s database', get_product_name()); case 'error_authconfig':
if (!isset($config['rb_product_name_alt'])) {
$title = __('Problem with %s database', get_product_name());
} else {
$title = __('Problem with %s database', $config['rb_product_name_alt']);
}
$message = __( $message = __(
'Cannot connect to the database, please check your database setup in the <b>include/config.php</b> file.<i><br/><br/> 'Cannot connect to the database, please check your database setup in the <b>include/config.php</b> file.<i><br/><br/>
Probably your database, hostname, user or password values are incorrect or Probably your database, hostname, user or password values are incorrect or

View File

@ -83,7 +83,6 @@ background:black;opacity:0.1;left:0px;top:0px;width:100%;height:100%;
</style> </style>
</head> </head>
<body> <body>
<div id="alert_messages_na"> <div id="alert_messages_na">
<div class='modalheade'> <div class='modalheade'>
@ -100,10 +99,29 @@ background:black;opacity:0.1;left:0px;top:0px;width:100%;height:100%;
?> ?>
</div> </div>
</div> </div>
<a href='https://wiki.pandorafms.com/index.php?title=Pandora:Documentation_en:Configuration' target='_blank'> <?php
<div class='modalwikibutto cerrar'> $custom_conf_enabled = false;
<span class='modalwikibuttontex'> <?php echo __('Documentation'); ?></span> foreach ($config as $key => $value) {
</div> if (preg_match('/._alt/i', $key)) {
$custom_conf_enabled = true;
break;
}
}
if (!$custom_conf_enabled) {
echo '
<a href="https://wiki.pandorafms.com/index.php?title=Pandora:Documentation_en:Configuration" target="_blank">
<div class="modalwikibutto cerrar">
<span class="modalwikibuttontex">'.__('Documentation').'
</span>
</div>
</a>
';
}
?>
</a> </a>
</div> </div>

View File

@ -14,7 +14,7 @@
// Load global vars // Load global vars
check_login(); check_login();
// Take some parameters (GET) // Take some parameters (GET).
$offset = (int) get_parameter('offset'); $offset = (int) get_parameter('offset');
$group_id = (int) get_parameter('group_id'); $group_id = (int) get_parameter('group_id');
$ag_group = get_parameter('ag_group_refresh', -1); $ag_group = get_parameter('ag_group_refresh', -1);
@ -47,10 +47,10 @@ require_once 'include/functions_users.php';
$search = get_parameter('search', ''); $search = get_parameter('search', '');
// Prepare the tab system to the future // Prepare the tab system to the future.
$tab = 'view'; $tab = 'view';
// Setup tab // Setup tab.
$viewtab['text'] = '<a href="index.php?sec=estado&sec2=operation/agentes/estado_agente">'.html_print_image('images/operation.png', true, ['title' => __('View')]).'</a>'; $viewtab['text'] = '<a href="index.php?sec=estado&sec2=operation/agentes/estado_agente">'.html_print_image('images/operation.png', true, ['title' => __('View')]).'</a>';
$viewtab['operation'] = true; $viewtab['operation'] = true;
@ -59,10 +59,10 @@ $viewtab['active'] = false;
$onheader = ['view' => $viewtab]; $onheader = ['view' => $viewtab];
// Header // Header.
ui_print_page_header(__('Agents defined in %s', get_product_name()), 'images/agent_mc.png', false, '', true, $onheader); ui_print_page_header(__('Agents defined in %s', get_product_name()), 'images/agent_mc.png', false, '', true, $onheader);
// Perform actions // Perform actions.
$agent_to_delete = (int) get_parameter('borrar_agente'); $agent_to_delete = (int) get_parameter('borrar_agente');
$enable_agent = (int) get_parameter('enable_agent'); $enable_agent = (int) get_parameter('enable_agent');
$disable_agent = (int) get_parameter('disable_agent'); $disable_agent = (int) get_parameter('disable_agent');
@ -99,7 +99,7 @@ if ($agent_to_delete) {
ui_print_result_message($result, __('Success deleted agent.'), __('Could not be deleted.')); ui_print_result_message($result, __('Success deleted agent.'), __('Could not be deleted.'));
if (enterprise_installed()) { if (enterprise_installed()) {
// Check if the remote config file still exist // Check if the remote config file still exist.
if (isset($config['remote_config'])) { if (isset($config['remote_config'])) {
enterprise_include_once('include/functions_config_agents.php'); enterprise_include_once('include/functions_config_agents.php');
if (enterprise_hook('config_agents_has_remote_configuration', [$id_agente])) { if (enterprise_hook('config_agents_has_remote_configuration', [$id_agente])) {
@ -114,7 +114,7 @@ if ($enable_agent) {
$alias = agents_get_alias($enable_agent); $alias = agents_get_alias($enable_agent);
if ($result) { if ($result) {
// Update the agent from the metaconsole cache // Update the agent from the metaconsole cache.
enterprise_include_once('include/functions_agents.php'); enterprise_include_once('include/functions_agents.php');
$values = ['disabled' => 0]; $values = ['disabled' => 0];
enterprise_hook('agent_update_from_cache', [$enable_agent, $values, $server_name]); enterprise_hook('agent_update_from_cache', [$enable_agent, $values, $server_name]);
@ -136,7 +136,7 @@ if ($disable_agent) {
$alias = agents_get_alias($disable_agent); $alias = agents_get_alias($disable_agent);
if ($result) { if ($result) {
// Update the agent from the metaconsole cache // Update the agent from the metaconsole cache.
enterprise_include_once('include/functions_agents.php'); enterprise_include_once('include/functions_agents.php');
$values = ['disabled' => 1]; $values = ['disabled' => 1];
enterprise_hook('agent_update_from_cache', [$disable_agent, $values, $server_name]); enterprise_hook('agent_update_from_cache', [$disable_agent, $values, $server_name]);
@ -223,6 +223,10 @@ switch ($config['dbtype']) {
case 'oracle': case 'oracle':
$order_collation = ''; $order_collation = '';
break; break;
default:
// Default.
break;
} }
$selected = true; $selected = true;
@ -252,6 +256,10 @@ switch ($sortField) {
'order' => 'DESC', 'order' => 'DESC',
]; ];
break; break;
default:
// Default.
break;
} }
break; break;
@ -274,6 +282,10 @@ switch ($sortField) {
'order' => 'DESC', 'order' => 'DESC',
]; ];
break; break;
default:
// Default.
break;
} }
break; break;
@ -296,6 +308,10 @@ switch ($sortField) {
'order' => 'DESC', 'order' => 'DESC',
]; ];
break; break;
default:
// Default.
break;
} }
break; break;
@ -318,6 +334,10 @@ switch ($sortField) {
'order' => 'DESC', 'order' => 'DESC',
]; ];
break; break;
default:
// Default.
break;
} }
break; break;
@ -378,7 +398,7 @@ if ($os != 0) {
} }
$user_groups_to_sql = ''; $user_groups_to_sql = '';
// Show only selected groups // Show only selected groups.
if ($ag_group > 0) { if ($ag_group > 0) {
$ag_groups = []; $ag_groups = [];
$ag_groups = (array) $ag_group; $ag_groups = (array) $ag_group;
@ -388,7 +408,7 @@ if ($ag_group > 0) {
$user_groups_to_sql = implode(',', $ag_groups); $user_groups_to_sql = implode(',', $ag_groups);
} else { } else {
// Concatenate AW and AD permisions to get all the possible groups where the user can manage // Concatenate AW and AD permisions to get all the possible groups where the user can manage.
$user_groupsAW = users_get_groups($config['id_user'], 'AW'); $user_groupsAW = users_get_groups($config['id_user'], 'AW');
$user_groupsAD = users_get_groups($config['id_user'], 'AD'); $user_groupsAD = users_get_groups($config['id_user'], 'AD');
@ -431,24 +451,25 @@ $sql = sprintf(
$agents = db_get_all_rows_sql($sql); $agents = db_get_all_rows_sql($sql);
// Delete rnum row generated by oracle_recode_query() function // Delete rnum row generated by oracle_recode_query() function.
if (($config['dbtype'] == 'oracle') && ($agents !== false)) { if (($config['dbtype'] == 'oracle') && ($agents !== false)) {
for ($i = 0; $i < count($agents); $i++) { for ($i = 0; $i < count($agents); $i++) {
unset($agents[$i]['rnum']); unset($agents[$i]['rnum']);
} }
} }
// Prepare pagination // Prepare pagination.
ui_pagination($total_agents, "index.php?sec=gagente&sec2=godmode/agentes/modificar_agente&group_id=$ag_group&recursion=$recursion&search=$search&sort_field=$sortField&sort=$sort&disabled=$disabled&os=$os", $offset); ui_pagination($total_agents, "index.php?sec=gagente&sec2=godmode/agentes/modificar_agente&group_id=$ag_group&recursion=$recursion&search=$search&sort_field=$sortField&sort=$sort&disabled=$disabled&os=$os", $offset);
if ($agents !== false) { if ($agents !== false) {
// Urls to sort the table. // Urls to sort the table.
// Agent name size and description for Chinese and Japanese languages are adjusted if ($config['language'] == 'ja'
$agent_font_size = '7'; || $config['language'] == 'zh_CN'
$description_font_size = '6.5'; || $own_info['language'] == 'ja'
if ($config['language'] == 'ja' || $config['language'] == 'zh_CN' || $own_info['language'] == 'ja' || $own_info['language'] == 'zh_CN') { || $own_info['language'] == 'zh_CN'
$agent_font_size = '15'; ) {
$description_font_size = '11'; // Adds a custom font size for Japanese and Chinese language.
$custom_font_size = 'custom_font_size';
} }
$url_up_agente = 'index.php?sec=gagente&sec2=godmode/agentes/modificar_agente&group_id='.$ag_group.'&recursion='.$recursion.'&search='.$search.'&os='.$os.'&offset='.$offset.'&sort_field=name&sort=up&disabled=$disabled'; $url_up_agente = 'index.php?sec=gagente&sec2=godmode/agentes/modificar_agente&group_id='.$ag_group.'&recursion='.$recursion.'&search='.$search.'&os='.$os.'&offset='.$offset.'&sort_field=name&sort=up&disabled=$disabled';
@ -476,21 +497,21 @@ if ($agents !== false) {
$rowPair = true; $rowPair = true;
$iterator = 0; $iterator = 0;
foreach ($agents as $agent) { foreach ($agents as $agent) {
// Begin Update tagente.remote 0/1 with remote agent function return // Begin Update tagente.remote 0/1 with remote agent function return.
if (enterprise_hook('config_agents_has_remote_configuration', [$agent['id_agente']])) { if (enterprise_hook('config_agents_has_remote_configuration', [$agent['id_agente']])) {
db_process_sql_update('tagente', ['remote' => 1], 'id_agente = '.$agent['id_agente'].''); db_process_sql_update('tagente', ['remote' => 1], 'id_agente = '.$agent['id_agente'].'');
} else { } else {
db_process_sql_update('tagente', ['remote' => 0], 'id_agente = '.$agent['id_agente'].''); db_process_sql_update('tagente', ['remote' => 0], 'id_agente = '.$agent['id_agente'].'');
} }
// End Update tagente.remote 0/1 with remote agent function return // End Update tagente.remote 0/1 with remote agent function return.
$all_groups = agents_get_all_groups_agent($agent['id_agente'], $agent['id_grupo']); $all_groups = agents_get_all_groups_agent($agent['id_agente'], $agent['id_grupo']);
$check_aw = check_acl_one_of_groups($config['id_user'], $all_groups, 'AW'); $check_aw = check_acl_one_of_groups($config['id_user'], $all_groups, 'AW');
$check_ad = check_acl_one_of_groups($config['id_user'], $all_groups, 'AD'); $check_ad = check_acl_one_of_groups($config['id_user'], $all_groups, 'AD');
$cluster = db_get_row_sql('select id from tcluster where id_agent = '.$agent['id_agente']); $cluster = db_get_row_sql('select id from tcluster where id_agent = '.$agent['id_agente']);
// Do not show the agent if there is not enough permissions // Do not show the agent if there is not enough permissions.
if (!$check_aw && !$check_ad) { if (!$check_aw && !$check_ad) {
continue; continue;
} }
@ -512,7 +533,7 @@ if ($agents !== false) {
$rowPair = !$rowPair; $rowPair = !$rowPair;
$iterator++; $iterator++;
// Agent name // Agent name.
echo "<tr class='$rowclass'><td class='$tdcolor' width='40%'>"; echo "<tr class='$rowclass'><td class='$tdcolor' width='40%'>";
if ($agent['disabled']) { if ($agent['disabled']) {
echo '<em>'; echo '<em>';
@ -537,7 +558,7 @@ if ($agents !== false) {
} else { } else {
echo '<a alt ='.$agent['nombre']." href='index.php?sec=gagente& echo '<a alt ='.$agent['nombre']." href='index.php?sec=gagente&
sec2=godmode/agentes/configurar_agente&tab=$main_tab& sec2=godmode/agentes/configurar_agente&tab=$main_tab&
id_agente=".$agent['id_agente']."'>".'<span style="font-size: '.$agent_font_size.'pt" title="'.$agent['nombre'].'">'.$agent['alias'].'</span>'.'</a>'; id_agente=".$agent['id_agente']."'>".'<span class="'.$custom_font_size.' title ="'.$agent['nombre'].'">'.$agent['alias'].'</span>'.'</a>';
} }
echo '</strong>'; echo '</strong>';
@ -617,12 +638,12 @@ if ($agents !== false) {
echo '</td>'; echo '</td>';
// Operating System icon // Operating System icon.
echo "<td class='$tdcolor' align='left' valign='middle'>"; echo "<td class='$tdcolor' align='left' valign='middle'>";
ui_print_os_icon($agent['id_os'], false); ui_print_os_icon($agent['id_os'], false);
echo '</td>'; echo '</td>';
// Type agent (Networt, Software or Satellite) // Type agent (Networt, Software or Satellite).
echo "<td class='$tdcolor' align='left' valign='middle'>"; echo "<td class='$tdcolor' align='left' valign='middle'>";
echo ui_print_type_agent_icon( echo ui_print_type_agent_icon(
$agent['id_os'], $agent['id_os'],
@ -634,10 +655,12 @@ if ($agents !== false) {
echo '</td>'; echo '</td>';
// Group icon and name // Group icon and name.
echo "<td class='$tdcolor' align='left' valign='middle'>".ui_print_group_icon($agent['id_grupo'], true).'</td>'; echo "<td class='$tdcolor' align='left' valign='middle'>".ui_print_group_icon($agent['id_grupo'], true).'</td>';
// Description
echo "<td class='".$tdcolor."f9'>".ui_print_truncate_text($agent['comentarios'], 'description', true, true, true, '[&hellip;]', 'font-size: '.$description_font_size.'pt;').'</td>'; // Description.
echo "<td class='".$tdcolor."f9'><span class='".$custom_font_size."'>".ui_print_truncate_text($agent['comentarios'], 'description', true, true, true, '[&hellip;]').'</span></td>';
// Action // Action
// When there is only one element in page it's necesary go back page. // When there is only one element in page it's necesary go back page.
if ((count($agents) == 1) && ($offset >= $config['block_size'])) { if ((count($agents) == 1) && ($offset >= $config['block_size'])) {
@ -695,7 +718,7 @@ if ($agents !== false) {
} }
if (check_acl($config['id_user'], 0, 'AW')) { if (check_acl($config['id_user'], 0, 'AW')) {
// Create agent button // Create agent button.
echo '<div style="text-align: right;">'; echo '<div style="text-align: right;">';
echo '<form method="post" action="index.php?sec=gagente&amp;sec2=godmode/agentes/configurar_agente">'; echo '<form method="post" action="index.php?sec=gagente&amp;sec2=godmode/agentes/configurar_agente">';
html_print_input_hidden('new_agent', 1); html_print_input_hidden('new_agent', 1);

View File

@ -3777,11 +3777,14 @@ $(document).ready (function () {
}); });
$("#checkbox-checkbox_show_resume").change(function(){ $("#checkbox-checkbox_show_resume").change(function(){
if($(this).is(":checked")){ type = $("#type").val();
if($(this).is(":checked") && type !== 'general'){
$("#row_select_fields2").show(); $("#row_select_fields2").show();
$("#row_select_fields3").show();
} }
else{ else{
$("#row_select_fields2").hide(); $("#row_select_fields2").hide();
$("#row_select_fields3").hide();
} }
}); });

View File

@ -418,7 +418,7 @@ if ($own_info['is_admin']) {
else { else {
foreach ($info1 as $key => $usr) { foreach ($info1 as $key => $usr) {
$u = get_user_info($key); $u = get_user_info($key);
$g = users_get_groups($key, 'AR', $u['is_admin']); $g = users_get_groups($key, false, $u['is_admin']);
$result = array_intersect($g, $own_groups); $result = array_intersect($g, $own_groups);
// Show users without profile too. // Show users without profile too.

View File

@ -20,7 +20,7 @@
/** /**
* Pandora build version and version * Pandora build version and version
*/ */
$build_version = 'PC191029'; $build_version = 'PC191112';
$pandora_version = 'v7.0NG.740'; $pandora_version = 'v7.0NG.740';
// Do not overwrite default timezone set if defined. // Do not overwrite default timezone set if defined.
@ -148,8 +148,6 @@ if (!isset($config['homeurl_static'])) {
} }
} }
db_select_engine();
$config['dbconnection'] = db_connect();
if (! defined('EXTENSIONS_DIR')) { if (! defined('EXTENSIONS_DIR')) {
@ -160,6 +158,9 @@ if (! defined('ENTERPRISE_DIR')) {
define('ENTERPRISE_DIR', 'enterprise'); define('ENTERPRISE_DIR', 'enterprise');
} }
db_select_engine();
$config['dbconnection'] = db_connect();
require_once $ownDir.'functions_config.php'; require_once $ownDir.'functions_config.php';
date_default_timezone_set('Europe/Madrid'); date_default_timezone_set('Europe/Madrid');

View File

@ -147,7 +147,7 @@ define('COL_UNKNOWN', '#B2B2B2');
define('COL_DOWNTIME', '#976DB1'); define('COL_DOWNTIME', '#976DB1');
define('COL_IGNORED', '#DDD'); define('COL_IGNORED', '#DDD');
define('COL_ALERTFIRED', '#F36201'); define('COL_ALERTFIRED', '#F36201');
define('COL_MINOR', '#B2B2B2'); define('COL_MINOR', '#F099A2');
define('COL_MAJOR', '#C97A4A'); define('COL_MAJOR', '#C97A4A');
define('COL_INFORMATIONAL', '#E4E4E4'); define('COL_INFORMATIONAL', '#E4E4E4');
define('COL_MAINTENANCE', '#4a83f3'); define('COL_MAINTENANCE', '#4a83f3');

View File

@ -4092,6 +4092,18 @@ function mask2cidr($mask)
} }
/**
* convert the cidr prefix to subnet mask
*
* @param int cidr prefix
* @return string subnet mask
*/
function cidr2mask($int)
{
return long2ip(-1 << (32 - (int) $int));
}
function get_help_info($section_name) function get_help_info($section_name)
{ {
global $config; global $config;

View File

@ -1905,7 +1905,7 @@ function api_set_delete_agent($id, $thrash1, $other, $thrash3)
* *
* @param $thrash1 Don't use. * @param $thrash1 Don't use.
* @param $thrash2 Don't use. * @param $thrash2 Don't use.
* @param array $other it's array, $other as param are the filters available <filter_so>;<filter_group>;<filter_modules_states>;<filter_name>;<filter_policy>;<csv_separator> in this order * @param array $other it's array, $other as param are the filters available <filter_so>;<filter_group>;<filter_modules_states>;<filter_name>;<filter_policy>;<csv_separator><recursion> in this order
* and separator char (after text ; ) and separator (pass in param othermode as othermode=url_encode_separator_<separator>) * and separator char (after text ; ) and separator (pass in param othermode as othermode=url_encode_separator_<separator>)
* example for CSV: * example for CSV:
* *
@ -1934,17 +1934,25 @@ function api_get_all_agents($thrash1, $thrash2, $other, $returnType)
} }
if (isset($other['data'][0])) { if (isset($other['data'][0])) {
// Filter by SO // Filter by SO.
if ($other['data'][0] != '') { if ($other['data'][0] != '') {
$where .= ' AND tconfig_os.id_os = '.$other['data'][0]; $where .= ' AND tconfig_os.id_os = '.$other['data'][0];
} }
} }
if (isset($other['data'][1])) { if (isset($other['data'][1])) {
// Filter by group // Filter by group.
if ($other['data'][1] != '') { if ($other['data'][1] != '') {
$where .= ' AND id_grupo = '.$other['data'][1]; $ag_groups = $other['data'][1];
// Recursion.
if ($other['data'][6] === '1') {
$ag_groups = groups_get_id_recursive($ag_groups, true);
}
$ag_groups = implode(',', (array) $ag_groups);
} }
$where .= ' AND (id_grupo IN ('.$ag_groups.') OR id_group IN ('.$ag_groups.'))';
} }
if (isset($other['data'][3])) { if (isset($other['data'][3])) {
@ -1974,24 +1982,27 @@ function api_get_all_agents($thrash1, $thrash2, $other, $returnType)
// Initialization of array // Initialization of array
$result_agents = []; $result_agents = [];
// Filter by state // Filter by state
if (defined('METACONSOLE')) { if (is_metaconsole()) {
$sql = "SELECT id_agente, alias, direccion, comentarios, $sql = 'SELECT id_agente, alias, direccion, comentarios,
tconfig_os.name, url_address, nombre tconfig_os.name, url_address, nombre
FROM tconfig_os, tmetaconsole_agent FROM tconfig_os, tmetaconsole_agent
LEFT JOIN tagent_secondary_group LEFT JOIN tmetaconsole_agent_secondary_group
ON tmetaconsole_agent.id_agente = tagent_secondary_group.id_agent ON tmetaconsole_agent.id_agente = tmetaconsole_agent_secondary_group.id_agent
WHERE tmetaconsole_agent.id_os = tconfig_os.id_os WHERE tmetaconsole_agent.id_os = tconfig_os.id_os
AND disabled = 0 $where AND $groups"; AND disabled = 0 '.$where.' AND '.$groups;
} else { } else {
$sql = "SELECT id_agente, alias, direccion, comentarios, $sql = 'SELECT id_agente, alias, direccion, comentarios,
tconfig_os.name, url_address, nombre tconfig_os.name, url_address, nombre
FROM tconfig_os, tagente FROM tconfig_os, tagente
LEFT JOIN tagent_secondary_group LEFT JOIN tagent_secondary_group
ON tagente.id_agente = tagent_secondary_group.id_agent ON tagente.id_agente = tagent_secondary_group.id_agent
WHERE tagente.id_os = tconfig_os.id_os WHERE tagente.id_os = tconfig_os.id_os
AND disabled = 0 $where AND $groups"; AND disabled = 0 '.$where.' AND '.$groups;
} }
// Group by agent
$sql .= ' GROUP BY id_agente';
$all_agents = db_get_all_rows_sql($sql); $all_agents = db_get_all_rows_sql($sql);
// Filter by status: unknown, warning, critical, without modules // Filter by status: unknown, warning, critical, without modules
@ -9080,7 +9091,9 @@ function api_set_delete_module($id, $id2, $other, $trash1)
function api_set_module_data($id, $thrash2, $other, $trash1) function api_set_module_data($id, $thrash2, $other, $trash1)
{ {
if (defined('METACONSOLE')) { global $config;
if (is_metaconsole()) {
return; return;
} }
@ -9129,8 +9142,9 @@ function api_set_module_data($id, $thrash2, $other, $trash1)
); );
if (false === @file_put_contents($config['remote_config'].'/'.io_safe_output($agent['nombre']).'.'.$time.'.data', $xml)) { if (false === @file_put_contents($config['remote_config'].'/'.io_safe_output($agent['nombre']).'.'.$time.'.data', $xml)) {
returnError('error_file', 'Can save agent data xml.'); returnError('error_file', 'XML file could not be generated in path: '.$config['remote_config']);
} else { } else {
echo __('XML file was generated successfully in path: ').$config['remote_config'];
returnData('string', ['type' => 'string', 'data' => $xml]); returnData('string', ['type' => 'string', 'data' => $xml]);
return; return;
} }
@ -14226,6 +14240,46 @@ function api_get_agents_id_name_by_cluster_name($cluster_name, $trash1, $trash2,
} }
/**
* Get agents alias, id and server id (if Metaconsole) given agent alias
* matching part of it.
*
* @param string $alias
* @param $trash1
* @param $trash2
* @param string $returnType
* Example:
* api.php?op=get&op2=agents_id_name_by_alias&return_type=json&apipass=1234&user=admin&pass=pandora&id=pandrora&id2=strict
*/
function api_get_agents_id_name_by_alias($alias, $strict, $trash2, $returnType)
{
global $config;
if ($strict == 'strict') {
$where_clause = " alias = '$alias'";
} else {
$where_clause = " upper(alias) LIKE upper('%$alias%')";
}
if (is_metaconsole()) {
$all_agents = db_get_all_rows_sql("SELECT alias, id_agente, id_tagente,id_tmetaconsole_setup as 'id_server', server_name FROM tmetaconsole_agent WHERE $where_clause");
} else {
$all_agents = db_get_all_rows_sql("SELECT alias, id_agente from tagente WHERE $where_clause");
}
if ($all_agents !== false) {
$data = [
'type' => 'json',
'data' => $all_agents,
];
returnData('json', $data, JSON_FORCE_OBJECT);
} else {
returnError('error_agents', 'Alias did not match any agent.');
}
}
function api_get_modules_id_name_by_cluster_id($cluster_id) function api_get_modules_id_name_by_cluster_id($cluster_id)
{ {
global $config; global $config;

View File

@ -179,6 +179,10 @@ function reporting_make_reporting_data(
$report['group_name'] = groups_get_name($report['id_group']); $report['group_name'] = groups_get_name($report['id_group']);
$report['contents'] = []; $report['contents'] = [];
if (empty($report['period'])) {
$report['period'] = $period;
}
if (empty($contents)) { if (empty($contents)) {
return reporting_check_structure_report($report); return reporting_check_structure_report($report);
} }
@ -224,7 +228,12 @@ function reporting_make_reporting_data(
// General reports with 0 period means last value // General reports with 0 period means last value
// Avoid to overwrite it by template value. // Avoid to overwrite it by template value.
if (!empty($period) && ($content['type'] !== 'general' && $content['period'] != 0)) { $general_last_value = false;
if ($content['type'] === 'general' && $content['period'] == 0) {
$general_last_value = true;
}
if (!empty($period) && $general_last_value === false) {
$content['period'] = $period; $content['period'] = $period;
} }

View File

@ -121,12 +121,9 @@ function html_do_report_info($report)
</tr> </tr>
<tr> <tr>
<td><b>'.__('Report date').': </b></td>'; <td><b>'.__('Report date').': </b></td>';
if (isset($report['period'])) { if (is_numeric($report['datetime']) && is_numeric($report['period']) && ($report['period'] != 0)) {
if (is_numeric($report['datetime']) && is_numeric($report['period'])) { $html .= '<td>'.__('From').' <b>'.date($config['date_format'], ($report['datetime'] - $report['period'])).'</b></td>';
$html .= '<td>'.date($config['date_format'], ($report['datetime'] - $report['period'])).'</td>'; $html .= '<td>'.__('to').' <b>'.date($config['date_format'], $report['datetime']).'</b></td>';
}
$html .= '<td></td>';
} else { } else {
$html .= '<td>'.__('Items period before').' <b>'.date($config['date_format'], $report['datetime']).'</b></td>'; $html .= '<td>'.__('Items period before').' <b>'.date($config['date_format'], $report['datetime']).'</b></td>';
} }
@ -3583,10 +3580,10 @@ function reporting_html_general($table, $item, $pdf=0)
} }
$table1->head[3] = __('Value'); $table1->head[3] = __('Value');
$table1->style[0] = 'text-align: left'; $table1->style[0] = 'text-align: center';
$table1->style[1] = 'text-align: left'; $table1->style[1] = 'text-align: center';
$table1->style[2] = 'text-align: left'; $table1->style[2] = 'text-align: center';
$table1->style[3] = 'text-align: left'; $table1->style[3] = 'text-align: center';
// Begin - Order by agent. // Begin - Order by agent.
foreach ($item['data'] as $key => $row) { foreach ($item['data'] as $key => $row) {
@ -3717,12 +3714,16 @@ function reporting_html_general($table, $item, $pdf=0)
$table_summary->head = []; $table_summary->head = [];
$table_summary->head_colspan = []; $table_summary->head_colspan = [];
$table_summary->align = []; $table_summary->align = [];
$table_summary->headstyle = [];
$table_summary->headstyle[0] = 'text-align: center;';
$table_summary->headstyle[1] = 'text-align: center;';
$table_summary->headstyle[2] = 'text-align: center;';
$table_summary->align[0] = 'left'; $table_summary->align[0] = 'center';
$table_summary->align[1] = 'right'; $table_summary->align[1] = 'center';
$table_summary->align[2] = 'right'; $table_summary->align[2] = 'center';
$table_summary->align[3] = 'left'; $table_summary->align[3] = 'center';
$table_summary->align[4] = 'right'; $table_summary->align[4] = 'center';
$table_summary->head_colspan[0] = 2; $table_summary->head_colspan[0] = 2;
$table_summary->head[0] = __('Min Value'); $table_summary->head[0] = __('Min Value');
@ -3730,11 +3731,11 @@ function reporting_html_general($table, $item, $pdf=0)
$table_summary->head_colspan[2] = 2; $table_summary->head_colspan[2] = 2;
$table_summary->head[2] = __('Max Value'); $table_summary->head[2] = __('Max Value');
$table_summary->data[0][0] = $item['min']['agent'].' - '.$item['min']['module']; $table_summary->data[0][0] = $item['min']['agent'].' - '.$item['min']['module'].str_repeat('&nbsp;', 20).$item['min']['formated_value'];
$table_summary->data[0][1] = $item['min']['formated_value']; $table_summary->data[0][1] = '';
$table_summary->data[0][2] = format_for_graph($item['avg_value'], 2); $table_summary->data[0][2] = format_for_graph($item['avg_value'], 2);
$table_summary->data[0][3] = $item['max']['agent'].' - '.$item['max']['module']; $table_summary->data[0][3] = $item['max']['agent'].' - '.$item['max']['module'].str_repeat('&nbsp;', 20).$item['max']['formated_value'];
$table_summary->data[0][4] = $item['max']['formated_value']; $table_summary->data[0][4] = '';
if ($pdf !== 0) { if ($pdf !== 0) {
$return_pdf .= html_print_table($table_summary, true); $return_pdf .= html_print_table($table_summary, true);

View File

@ -3233,6 +3233,8 @@ function ui_print_datatable(array $parameters)
{ {
extend: "csv", extend: "csv",
text : "'.__('Export current page to CSV').'", text : "'.__('Export current page to CSV').'",
title: "export_'.$parameters['id'].'_current_page_'.date('Y-m-d').'",
fieldSeparator: "'.$config['csv_divider'].'",
exportOptions : { exportOptions : {
modifier : { modifier : {
// DataTables core // DataTables core
@ -5733,3 +5735,23 @@ function ui_print_comments($comments)
return io_safe_output($comentario); return io_safe_output($comentario);
} }
/**
* Get complete external pandora url.
*
* @param string $url Url to be parsed.
*
* @return string Full url.
*/
function ui_get_full_external_url(string $url)
{
$url_parsed = parse_url($url);
if ($url_parsed) {
if (!isset($url_parsed['scheme'])) {
$url = 'http://'.$url;
}
}
return $url;
}

View File

@ -77,6 +77,7 @@ Besides the defined module macros, the following macros are available:
<li>_policy_: Name of the policy that the module belongs to (if applies).</li> <li>_policy_: Name of the policy that the module belongs to (if applies).</li>
<li>_prevdata_: Module previous data before the alert has been triggered.</li> <li>_prevdata_: Module previous data before the alert has been triggered.</li>
<li>_rca_: Root cause analysis chain (only for services).</li> <li>_rca_: Root cause analysis chain (only for services).</li>
<li>_secondarygroups_: List of all secondary groups of the agent.</li>
<li>_server_ip_: Ip of server assigned to agent. </li> <li>_server_ip_: Ip of server assigned to agent. </li>
<li>_server_name_: Name of server assigned to agent. </li> <li>_server_name_: Name of server assigned to agent. </li>
<li>_target_ip_: IP address for the modules target.</li> <li>_target_ip_: IP address for the modules target.</li>

View File

@ -77,6 +77,7 @@ Además de las macros de módulo definidas, las siguientes macros están disponi
<li>_policy_: Nombre de la política a la que pertenece el módulo (si aplica).</li> <li>_policy_: Nombre de la política a la que pertenece el módulo (si aplica).</li>
<li>_prevdata_: Dato previo antes de disparase la alerta.</li> <li>_prevdata_: Dato previo antes de disparase la alerta.</li>
<li>_rca_: Cadena de análasis de causa raíz (sólo para servicios).</li> <li>_rca_: Cadena de análasis de causa raíz (sólo para servicios).</li>
<li>_secondarygroups_: Lista de todos los grupos secundarios del agente.</li>
<li>_server_ip_: Ip del servidor al que el agente está asignado. </li> <li>_server_ip_: Ip del servidor al que el agente está asignado. </li>
<li>_server_name_: Nombre del servidor al que el agente está asignado. </li> <li>_server_name_: Nombre del servidor al que el agente está asignado. </li>
<li>_target_ip_: Dirección IP del objetivo del módulo.</li> <li>_target_ip_: Dirección IP del objetivo del módulo.</li>

View File

@ -77,6 +77,7 @@
<li>_policy_ : モジュールが属するポリシー名 (存在する場合)</li> <li>_policy_ : モジュールが属するポリシー名 (存在する場合)</li>
<li>_prevdata_ : アラートを発報する前のモジュールデータ</li> <li>_prevdata_ : アラートを発報する前のモジュールデータ</li>
<li>_rca_: Root cause analysis chain (only for services).</li> <li>_rca_: Root cause analysis chain (only for services).</li>
<li>_secondarygroups_: エージェントのすべてのセカンダリグループのリスト</li>
<li>_server_ip_ : エージェントが割り当てられているサーバ IP。</li> <li>_server_ip_ : エージェントが割り当てられているサーバ IP。</li>
<li>_server_name_ : エージェントが割り当てられているサーバ名。 </li> <li>_server_name_ : エージェントが割り当てられているサーバ名。 </li>
<li>_target_ip_ : モジュールの対象IPアドレス</li> <li>_target_ip_ : モジュールの対象IPアドレス</li>

View File

@ -5889,6 +5889,12 @@ table.table_modal_alternate tr td:first-child {
width: 100%; width: 100%;
} }
/*
* ---------------------------------------------------------------------
* - VISUAL STYLES FOR HISTOGRAM GRAPHS
* ---------------------------------------------------------------------
*/
.slicebar-box-hover-styles { .slicebar-box-hover-styles {
position: absolute; position: absolute;
background-color: #fff; background-color: #fff;
@ -5903,3 +5909,15 @@ table.table_modal_alternate tr td:first-child {
.flot-text { .flot-text {
width: 101%; width: 101%;
} }
/*
* ---------------------------------------------------------------------
* - FONT SIZES IN AGENT VIEW. This changes the font size of the agent
* name and the description when the language is Japanese or Chinese
* ---------------------------------------------------------------------
*/
.custom_font_size {
font-size: 14px;
font-weight: bold;
}

View File

@ -129,7 +129,7 @@
<div style='height: 10px'> <div style='height: 10px'>
<?php <?php
$version = '7.0NG.740'; $version = '7.0NG.740';
$build = '191029'; $build = '191112';
$banner = "v$version Build $build"; $banner = "v$version Build $build";
error_reporting(0); error_reporting(0);
@ -872,7 +872,16 @@ function install_step4()
$config["dbuser"]="pandora"; // DB User $config["dbuser"]="pandora"; // DB User
$config["dbpass"]="'.$random_password.'"; // DB Password $config["dbpass"]="'.$random_password.'"; // DB Password
$config["dbhost"]="'.$dbhost.'"; // DB Host $config["dbhost"]="'.$dbhost.'"; // DB Host
$config["homedir"]="'.$path.'"; // Config homedir $config["homedir"]="'.$path.'"; // Config homedir
// ----------Rebranding--------------------
// Uncomment this lines and add your customs text and paths.
// $config["custom_logo_login_alt"] ="login_logo.png";
// $config["custom_splash_login_alt"] = "splash_image_default.png";
// $config["custom_title1_login_alt"] = "WELCOME TO Pandora FMS";
// $config["custom_title2_login_alt"] = "NEXT GENERATION";
// $config["rb_product_name_alt"] = "Pandora FMS";
/* /*
----------Attention-------------------- ----------Attention--------------------
Please note that in certain installations: Please note that in certain installations:
@ -974,7 +983,15 @@ function install_step4()
$config["dbuser"]="pandora"; // DB User $config["dbuser"]="pandora"; // DB User
$config["dbpass"]="'.$random_password.'"; // DB Password $config["dbpass"]="'.$random_password.'"; // DB Password
$config["dbhost"]="'.$dbhost.'"; // DB Host $config["dbhost"]="'.$dbhost.'"; // DB Host
$config["homedir"]="'.$path.'"; // Config homedir $config["homedir"]="'.$path.'"; // Config homedir
// ----------Rebranding--------------------
// Uncomment this lines and add your customs text and paths.
// $config["custom_logo_login_alt"] ="login_logo.png";
// $config["custom_splash_login_alt"] = "splash_image_default.png";
// $config["custom_title1_login_alt"] = "WELCOME TO Pandora FMS";
// $config["custom_title2_login_alt"] = "NEXT GENERATION";
// $config["rb_product_name_alt"] = "Pandora FMS";
/* /*
----------Attention-------------------- ----------Attention--------------------
Please note that in certain installations: Please note that in certain installations:

View File

@ -155,7 +155,7 @@ if (is_ajax()) {
ob_end_clean(); ob_end_clean();
// Take some parameters (GET) // Take some parameters (GET).
$group_id = (int) get_parameter('group_id', 0); $group_id = (int) get_parameter('group_id', 0);
$search = trim(get_parameter('search', '')); $search = trim(get_parameter('search', ''));
$search_custom = trim(get_parameter('search_custom', '')); $search_custom = trim(get_parameter('search_custom', ''));
@ -172,10 +172,10 @@ $access = ($agent_a === true) ? 'AR' : (($agent_w === true) ? 'AW' : 'AR');
$onheader = []; $onheader = [];
if (check_acl($config['id_user'], 0, 'AW')) { if (check_acl($config['id_user'], 0, 'AW')) {
// Prepare the tab system to the future // Prepare the tab system to the future.
$tab = 'setup'; $tab = 'setup';
// Setup tab // Setup tab.
$setuptab['text'] = '<a href="index.php?sec=gagente&sec2=godmode/agentes/modificar_agente">'.html_print_image('images/setup.png', true, ['title' => __('Setup')]).'</a>'; $setuptab['text'] = '<a href="index.php?sec=gagente&sec2=godmode/agentes/modificar_agente">'.html_print_image('images/setup.png', true, ['title' => __('Setup')]).'</a>';
$setuptab['godmode'] = true; $setuptab['godmode'] = true;
@ -193,7 +193,7 @@ if (!$strict_user) {
} }
} }
// User is deleting agent // User is deleting agent.
if (isset($result_delete)) { if (isset($result_delete)) {
if ($result_delete) { if ($result_delete) {
ui_print_success_message(__('Sucessfully deleted agent')); ui_print_success_message(__('Sucessfully deleted agent'));
@ -283,7 +283,7 @@ $order = null;
$order_collation = ''; $order_collation = '';
switch ($config['dbtype']) { switch ($config['dbtype']) {
case 'mysql': case 'mysql':
// $order_collation = " COLLATE utf8_general_ci"; // $order_collation = " COLLATE utf8_general_ci";.
$order_collation = ''; $order_collation = '';
break; break;
@ -314,6 +314,10 @@ switch ($sortField) {
'order' => 'DESC', 'order' => 'DESC',
]; ];
break; break;
default:
// Default.
break;
} }
break; break;
@ -336,6 +340,10 @@ switch ($sortField) {
'order' => 'DESC', 'order' => 'DESC',
]; ];
break; break;
default:
// Default.
break;
} }
break; break;
@ -358,6 +366,10 @@ switch ($sortField) {
'order' => 'DESC', 'order' => 'DESC',
]; ];
break; break;
default:
// Default.
break;
} }
break; break;
@ -380,6 +392,10 @@ switch ($sortField) {
'order' => 'DESC', 'order' => 'DESC',
]; ];
break; break;
default:
// Default.
break;
} }
break; break;
@ -402,6 +418,10 @@ switch ($sortField) {
'order' => 'DESC', 'order' => 'DESC',
]; ];
break; break;
default:
// Default.
break;
} }
break; break;
@ -424,6 +444,10 @@ switch ($sortField) {
'order' => 'ASC', 'order' => 'ASC',
]; ];
break; break;
default:
// Default.
break;
} }
break; break;
@ -446,6 +470,10 @@ switch ($sortField) {
'order' => 'ASC', 'order' => 'ASC',
]; ];
break; break;
default:
// Default.
break;
} }
break; break;
@ -505,7 +533,7 @@ if (!empty($search_custom)) {
$search_sql_custom = ''; $search_sql_custom = '';
} }
// Show only selected groups // Show only selected groups.
if ($group_id > 0) { if ($group_id > 0) {
$groups = [$group_id]; $groups = [$group_id];
if ($recursion) { if ($recursion) {
@ -624,11 +652,13 @@ if (empty($agents)) {
$agents = []; $agents = [];
} }
$agent_font_size = 'font-size: 7px'; if ($config['language'] == 'ja'
$description_font_size = 'font-size: 6.5px'; || $config['language'] == 'zh_CN'
if ($config['language'] == 'ja' || $config['language'] == 'zh_CN' || $own_info['language'] == 'ja' || $own_info['language'] == 'zh_CN') { || $own_info['language'] == 'ja'
$agent_font_size = 'font-size: 15px'; || $own_info['language'] == 'zh_CN'
$description_font_size = 'font-size: 11px'; ) {
// Adds a custom font size for Japanese and Chinese language.
$custom_font_size = 'custom_font_size';
} }
// Urls to sort the table. // Urls to sort the table.
@ -648,7 +678,7 @@ $url_up_last = 'index.php?sec=view&amp;sec2=operation/agentes/estado_agente&amp;
$url_down_last = 'index.php?sec=view&amp;sec2=operation/agentes/estado_agente&amp;refr='.$refr.'&amp;offset='.$offset.'&amp;group_id='.$group_id.'&amp;recursion='.$recursion.'&amp;search='.$search.'&amp;status='.$status.'&amp;sort_field=last_contact&amp;sort=down'; $url_down_last = 'index.php?sec=view&amp;sec2=operation/agentes/estado_agente&amp;refr='.$refr.'&amp;offset='.$offset.'&amp;group_id='.$group_id.'&amp;recursion='.$recursion.'&amp;search='.$search.'&amp;status='.$status.'&amp;sort_field=last_contact&amp;sort=down';
// Prepare pagination // Prepare pagination.
ui_pagination( ui_pagination(
$total_agents, $total_agents,
ui_get_url_refresh(['group_id' => $group_id, 'recursion' => $recursion, 'search' => $search, 'sort_field' => $sortField, 'sort' => $sort, 'status' => $status]) ui_get_url_refresh(['group_id' => $group_id, 'recursion' => $recursion, 'search' => $search, 'sort_field' => $sortField, 'sort' => $sort, 'status' => $status])
@ -744,10 +774,8 @@ foreach ($agents as $agent) {
$data = []; $data = [];
$data[0] = '<div class="left_'.$agent['id_agente'].'">'; $data[0] = '<div class="left_'.$agent['id_agente'].'">';
$data[0] .= '<span>';
$data[0] .= '<a href="index.php?sec=estado&sec2=operation/agentes/ver_agente&id_agente='.$agent['id_agente'].'"> <span style="'.$agent_font_size.';font-weight:bold" title ="'.$agent['nombre'].'">'.$agent['alias'].'</span></a>'; $data[0] .= '<a href="index.php?sec=estado&sec2=operation/agentes/ver_agente&id_agente='.$agent['id_agente'].'"><b><span class="'.$custom_font_size.' title ="'.$agent['nombre'].'">'.$agent['alias'].'</span></b></a>';
$data[0] .= '</span>';
if ($agent['quiet']) { if ($agent['quiet']) {
$data[0] .= '&nbsp;'; $data[0] .= '&nbsp;';
@ -779,7 +807,7 @@ foreach ($agents as $agent) {
$data[0] .= '</div></div>'; $data[0] .= '</div></div>';
$data[1] = ui_print_truncate_text($agent['description'], 'description', false, true, true, '[&hellip;]', $description_font_size); $data[1] = '<span class="'.$custom_font_size.'">'.ui_print_truncate_text($agent['description'], 'description', false, true, true, '[&hellip;]').'</span>';
$data[10] = ''; $data[10] = '';

View File

@ -825,7 +825,15 @@ $table_events = '<div class="white_table_graph" id="table_events">
$agent_contact = html_print_table($table_contact, true); $agent_contact = html_print_table($table_contact, true);
$agent_info = empty($table_data->data) ? '' : html_print_table($table_data, true); if (empty($table_data->data)) {
$agent_info = '';
} else {
if (count($table_data->data) === 1 && $config['activate_gis'] && $dataPositionAgent === false) {
$agent_info = '';
} else {
$agent_info = html_print_table($table_data, true);
}
}
$agent_incidents = !isset($table_incident) ? '' : html_print_table($table_incident, true); $agent_incidents = !isset($table_incident) ? '' : html_print_table($table_incident, true);

View File

@ -1018,7 +1018,7 @@ $adv_inputs[] = $in;
$user_users = users_get_user_users( $user_users = users_get_user_users(
$config['id_user'], $config['id_user'],
$access, $access,
users_can_manage_group_all() true
); );
$data = html_print_select( $data = html_print_select(
@ -1539,7 +1539,7 @@ function process_datatables_callback(table, settings) {
// Agent id. // Agent id.
target = i; target = i;
} }
if(label == '<?php echo __('Agent name'); ?>') { if(label == '<?php echo addslashes(__('Agent name')); ?>') {
// Agent id. // Agent id.
target = i; target = i;
break; break;
@ -1619,15 +1619,13 @@ function process_datatables_item(item) {
// Show comments events. // Show comments events.
item.user_comment = item.comments item.user_comment = item.comments
if(item.comments.length > 80){
item.user_comment += '&nbsp;&nbsp;<a id="show_comments" href="javascript:" onclick="show_event_dialog(\''; if(typeof item.comments !== 'undefined' && item.comments.length > 80) {
item.user_comment += item.b64+"','comments'," + $("#group_rep").val()+');">'; item.user_comment += '&nbsp;&nbsp;<a id="show_comments" href="javascript:" onclick="show_event_dialog(\'';
item.user_comment += '<?php echo html_print_image('images/eye.png', true, ['title' => __('Show more')]); ?></a>'; item.user_comment += item.b64+"','comments'," + $("#group_rep").val()+');">';
item.user_comment += '<?php echo html_print_image('images/eye.png', true, ['title' => __('Show more')]); ?></a>';
} }
// Grouped events. // Grouped events.
if(item.max_id_evento) { if(item.max_id_evento) {
item.id_evento = item.max_id_evento item.id_evento = item.max_id_evento

View File

@ -767,7 +767,7 @@ $data[0] = __('User ack.').$jump;
$user_users = users_get_user_users( $user_users = users_get_user_users(
$config['id_user'], $config['id_user'],
$access, $access,
users_can_manage_group_all() users_can_manage_group_all($access)
); );
$data[0] .= html_print_select( $data[0] .= html_print_select(

View File

@ -118,7 +118,7 @@ $now = date('Y-m-d');
// Download header. // Download header.
header('Content-type: text/txt'); header('Content-type: text/txt');
header('Content-Disposition: attachment; filename="pandora_export_event'.$now.'.csv"'); header('Content-Disposition: attachment; filename="export_events_'.$now.'.csv"');
try { try {
$fb64 = get_parameter('fb64', null); $fb64 = get_parameter('fb64', null);

View File

@ -91,10 +91,6 @@ check_login();
$id_report = (int) get_parameter('id'); $id_report = (int) get_parameter('id');
$filename = (string) get_parameter('filename'); $filename = (string) get_parameter('filename');
if (empty($filename)) {
$filename = 'pandorafms_report_'.date('Y-m-d_His');
}
$date_mode = get_parameter('date_mode', 'none'); $date_mode = get_parameter('date_mode', 'none');
$period = null; $period = null;
@ -132,6 +128,10 @@ $report = reporting_make_reporting_data(
'static' 'static'
); );
if (empty($filename)) {
$filename = $report['name'].'_report_'.date('Y-m-d_His');
}
reporting_xml_get_report($report, $filename); reporting_xml_get_report($report, $filename);
exit; exit;

View File

@ -430,15 +430,38 @@ if ($date_to_trap != '') {
} }
if ($filter_severity != -1) { if ($filter_severity != -1) {
// Test if install the enterprise to search oid in text or oid field in ttrap. // There are two special severity values aimed to match two different trap standard severities in database: warning/critical and critical/normal.
if ($config['enterprise_installed']) { if ($filter_severity != EVENT_CRIT_OR_NORMAL && $filter_severity != EVENT_CRIT_WARNING_OR_CRITICAL) {
$whereSubquery .= ' AND ( // Test if enterprise is installed to search oid in text or oid field in ttrap.
(alerted = 0 AND severity = '.$filter_severity.') OR if ($config['enterprise_installed']) {
(alerted = 1 AND priority = '.$filter_severity.'))'; $whereSubquery .= ' AND (
} else { (alerted = 0 AND severity = '.$filter_severity.') OR
$whereSubquery .= ' AND ( (alerted = 1 AND priority = '.$filter_severity.'))';
(alerted = 0 AND 1 = '.$filter_severity.') OR } else {
(alerted = 1 AND priority = '.$filter_severity.'))'; $whereSubquery .= ' AND (
(alerted = 0 AND 1 = '.$filter_severity.') OR
(alerted = 1 AND priority = '.$filter_severity.'))';
}
} else if ($filter_severity === EVENT_CRIT_WARNING_OR_CRITICAL) {
// Test if enterprise is installed to search oid in text or oid field in ttrap.
if ($config['enterprise_installed']) {
$whereSubquery .= ' AND (
(alerted = 0 AND (severity = '.EVENT_CRIT_WARNING.' OR severity = '.EVENT_CRIT_CRITICAL.')) OR
(alerted = 1 AND (priority = '.EVENT_CRIT_WARNING.' OR priority = '.EVENT_CRIT_CRITICAL.')))';
} else {
$whereSubquery .= ' AND (
(alerted = 1 AND (priority = '.EVENT_CRIT_WARNING.' OR priority = '.EVENT_CRIT_CRITICAL.')))';
}
} else if ($filter_severity === EVENT_CRIT_OR_NORMAL) {
// Test if enterprise is installed to search oid in text or oid field in ttrap.
if ($config['enterprise_installed']) {
$whereSubquery .= ' AND (
(alerted = 0 AND (severity = '.EVENT_CRIT_NORMAL.' OR severity = '.EVENT_CRIT_CRITICAL.')) OR
(alerted = 1 AND (priority = '.EVENT_CRIT_NORMAL.' OR priority = '.EVENT_CRIT_CRITICAL.')))';
} else {
$whereSubquery .= ' AND (
(alerted = 1 AND (priority = '.EVENT_CRIT_NORMAL.' OR priority = '.EVENT_CRIT_CRITICAL.')))';
}
} }
} }

View File

@ -3,7 +3,7 @@
# #
%define name pandorafms_console %define name pandorafms_console
%define version 7.0NG.740 %define version 7.0NG.740
%define release 191029 %define release 191112
# User and Group under which Apache is running # User and Group under which Apache is running
%define httpd_name httpd %define httpd_name httpd
@ -57,6 +57,13 @@ install -m 0644 pandora_console_logrotate_centos $RPM_BUILD_ROOT%{_sysconfdir}/l
rm -rf $RPM_BUILD_ROOT rm -rf $RPM_BUILD_ROOT
%post %post
# Install pandora_websocket_engine service.
cp -pf %{prefix}/pandora_console/pandora_websocket_engine /etc/init.d/
chmod +x /etc/init.d/pandora_websocket_engine
echo "You can now start the Pandora FMS Websocket service by executing"
echo " /etc/init.d/pandora_websocket_engine start"
# Has an install already been done, if so we only want to update the files # Has an install already been done, if so we only want to update the files
# push install.php aside so that the console works immediately using existing # push install.php aside so that the console works immediately using existing
# configuration. # configuration.

View File

@ -3,7 +3,7 @@
# #
%define name pandorafms_console %define name pandorafms_console
%define version 7.0NG.740 %define version 7.0NG.740
%define release 191029 %define release 191112
# User and Group under which Apache is running # User and Group under which Apache is running
%define httpd_name httpd %define httpd_name httpd
@ -59,6 +59,7 @@ rm -rf $RPM_BUILD_ROOT
%post %post
# Install pandora_websocket_engine service. # Install pandora_websocket_engine service.
cp -pf %{prefix}/pandora_console/pandora_websocket_engine /etc/init.d/ cp -pf %{prefix}/pandora_console/pandora_websocket_engine /etc/init.d/
chmod +x /etc/init.d/pandora_websocket_engine
echo "You can now start the Pandora FMS Websocket service by executing" echo "You can now start the Pandora FMS Websocket service by executing"
echo " /etc/init.d/pandora_websocket_engine start" echo " /etc/init.d/pandora_websocket_engine start"

View File

@ -3,7 +3,7 @@
# #
%define name pandorafms_console %define name pandorafms_console
%define version 7.0NG.740 %define version 7.0NG.740
%define release 191029 %define release 191112
%define httpd_name httpd %define httpd_name httpd
# User and Group under which Apache is running # User and Group under which Apache is running
%define httpd_name apache2 %define httpd_name apache2
@ -60,6 +60,7 @@ rm -rf $RPM_BUILD_ROOT
%post %post
# Install pandora_websocket_engine service. # Install pandora_websocket_engine service.
cp -pf %{prefix}/pandora_console/pandora_websocket_engine /etc/init.d/ cp -pf %{prefix}/pandora_console/pandora_websocket_engine /etc/init.d/
chmod +x /etc/init.d/pandora_websocket_engine
echo "You can now start the Pandora FMS Websocket service by executing" echo "You can now start the Pandora FMS Websocket service by executing"
echo " /etc/init.d/pandora_websocket_engine start" echo " /etc/init.d/pandora_websocket_engine start"

View File

@ -1,5 +1,5 @@
package: pandorafms-server package: pandorafms-server
Version: 7.0NG.740-191029 Version: 7.0NG.740-191112
Architecture: all Architecture: all
Priority: optional Priority: optional
Section: admin Section: admin

View File

@ -14,7 +14,7 @@
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details. # GNU General Public License for more details.
pandora_version="7.0NG.740-191029" pandora_version="7.0NG.740-191112"
package_cpan=0 package_cpan=0
package_pandora=1 package_pandora=1

View File

@ -45,7 +45,7 @@ our @EXPORT = qw(
# version: Defines actual version of Pandora Server for this module only # version: Defines actual version of Pandora Server for this module only
my $pandora_version = "7.0NG.740"; my $pandora_version = "7.0NG.740";
my $pandora_build = "191029"; my $pandora_build = "191112";
our $VERSION = $pandora_version." ".$pandora_build; our $VERSION = $pandora_version." ".$pandora_build;
# Setup hash # Setup hash

View File

@ -1129,6 +1129,7 @@ sub pandora_execute_action ($$$$$$$$$;$) {
_name_tag_ => undef, _name_tag_ => undef,
_all_address_ => undef, _all_address_ => undef,
'_address_\d+_' => undef, '_address_\d+_' => undef,
_secondarygroups_ => undef,
); );
if ((defined ($extra_macros)) && (ref($extra_macros) eq "HASH")) { if ((defined ($extra_macros)) && (ref($extra_macros) eq "HASH")) {
@ -4117,6 +4118,15 @@ sub on_demand_macro($$$$$$;$) {
} }
return(defined($field_value)) ? $field_value : ''; return(defined($field_value)) ? $field_value : '';
} elsif ($macro eq '_secondarygroups_') {
my $field_value = '';
my @groups = get_db_rows ($dbh, 'SELECT tg.nombre from tagent_secondary_group as tsg INNER JOIN tgrupo tg ON tsg.id_group = tg.id_grupo WHERE tsg.id_agent = ?', $module->{'id_agente'});
foreach my $element (@groups) {
$field_value .= $element->{'nombre'} .",";
}
chop($field_value);
return(defined($field_value)) ? '('.$field_value.')' : '';
} }
} }

View File

@ -32,7 +32,7 @@ our @ISA = qw(Exporter);
# version: Defines actual version of Pandora Server for this module only # version: Defines actual version of Pandora Server for this module only
my $pandora_version = "7.0NG.740"; my $pandora_version = "7.0NG.740";
my $pandora_build = "191029"; my $pandora_build = "191112";
our $VERSION = $pandora_version." ".$pandora_build; our $VERSION = $pandora_version." ".$pandora_build;
our %EXPORT_TAGS = ( 'all' => [ qw() ] ); our %EXPORT_TAGS = ( 'all' => [ qw() ] );

View File

@ -3,7 +3,7 @@
# #
%define name pandorafms_server %define name pandorafms_server
%define version 7.0NG.740 %define version 7.0NG.740
%define release 191029 %define release 191112
Summary: Pandora FMS Server Summary: Pandora FMS Server
Name: %{name} Name: %{name}

View File

@ -3,7 +3,7 @@
# #
%define name pandorafms_server %define name pandorafms_server
%define version 7.0NG.740 %define version 7.0NG.740
%define release 191029 %define release 191112
Summary: Pandora FMS Server Summary: Pandora FMS Server
Name: %{name} Name: %{name}

View File

@ -9,7 +9,7 @@
# ********************************************************************** # **********************************************************************
PI_VERSION="7.0NG.740" PI_VERSION="7.0NG.740"
PI_BUILD="191029" PI_BUILD="191112"
MODE=$1 MODE=$1
if [ $# -gt 1 ]; then if [ $# -gt 1 ]; then

View File

@ -34,7 +34,7 @@ use PandoraFMS::Config;
use PandoraFMS::DB; use PandoraFMS::DB;
# version: define current version # version: define current version
my $version = "7.0NG.740 PS191029"; my $version = "7.0NG.740 PS191112";
# Pandora server configuration # Pandora server configuration
my %conf; my %conf;

View File

@ -36,7 +36,7 @@ use Encode::Locale;
Encode::Locale::decode_argv; Encode::Locale::decode_argv;
# version: define current version # version: define current version
my $version = "7.0NG.740 PS191029"; my $version = "7.0NG.740 PS191112";
# save program name for logging # save program name for logging
my $progname = basename($0); my $progname = basename($0);
@ -118,12 +118,22 @@ sub help_screen{
help_screen_line('--get_planned_downtimes_items', '<name> [<id_group> <type_downtime> <type_execution> <type_periodicity>]', 'Get all items of planned downtimes'); help_screen_line('--get_planned_downtimes_items', '<name> [<id_group> <type_downtime> <type_execution> <type_periodicity>]', 'Get all items of planned downtimes');
help_screen_line('--set_planned_downtimes_deleted', '<name> ', 'Deleted a planned downtime'); help_screen_line('--set_planned_downtimes_deleted', '<name> ', 'Deleted a planned downtime');
help_screen_line('--get_module_id', '<agent_id> <module_name>', 'Get the id of an module'); help_screen_line('--get_module_id', '<agent_id> <module_name>', 'Get the id of an module');
<<<<<<< HEAD
help_screen_line('--get_agent_group', '<agent_name>', 'Get the group name of an agent');
help_screen_line('--get_agent_group_id', '<agent_name>', 'Get the group ID of an agent');
help_screen_line('--get_agent_modules', '<agent_name>', 'Get the modules of an agent');
help_screen_line('--get_agents_id_name_by_alias', '<agent_alias>', '[<strict>]', 'List id and alias of agents mathing given alias');
help_screen_line('--get_agents', '[<group_name> <os_name> <status> <max_modules> <filter_substring> <policy_name>]', "Get \n\t list of agents with optative filter parameters");
help_screen_line('--delete_conf_file', '<agent_name>', 'Delete a local conf of a given agent');
help_screen_line('--clean_conf_file', '<agent_name>', "Clean a local conf of a given agent deleting all modules, \n\t policies, file collections and comments");
=======
help_screen_line('--get_agent_group', '<agent_name> [<use_alias>]', 'Get the group name of an agent'); help_screen_line('--get_agent_group', '<agent_name> [<use_alias>]', 'Get the group name of an agent');
help_screen_line('--get_agent_group_id', '<agent_name> [<use_alias>]', 'Get the group ID of an agent'); help_screen_line('--get_agent_group_id', '<agent_name> [<use_alias>]', 'Get the group ID of an agent');
help_screen_line('--get_agent_modules', '<agent_name> [<use_alias>]', 'Get the modules of an agent'); help_screen_line('--get_agent_modules', '<agent_name> [<use_alias>]', 'Get the modules of an agent');
help_screen_line('--get_agents', '[<group_name> <os_name> <status> <max_modules> <filter_substring> <policy_name> <use_alias>]', "Get \n\t list of agents with optative filter parameters"); help_screen_line('--get_agents', '[<group_name> <os_name> <status> <max_modules> <filter_substring> <policy_name> <use_alias>]', "Get \n\t list of agents with optative filter parameters");
help_screen_line('--delete_conf_file', '<agent_name> [<use_alias>]', 'Delete a local conf of a given agent'); help_screen_line('--delete_conf_file', '<agent_name> [<use_alias>]', 'Delete a local conf of a given agent');
help_screen_line('--clean_conf_file', '<agent_name> [<use_alias>]', "Clean a local conf of a given agent deleting all modules, \n\t policies, file collections and comments"); help_screen_line('--clean_conf_file', '<agent_name> [<use_alias>]', "Clean a local conf of a given agent deleting all modules, \n\t policies, file collections and comments");
>>>>>>> origin/develop
help_screen_line('--get_bad_conf_files', '', 'Get the files bad configured (without essential tokens)'); help_screen_line('--get_bad_conf_files', '', 'Get the files bad configured (without essential tokens)');
help_screen_line('--locate_agent', '<agent_name> [<use_alias>]', 'Search a agent into of nodes of metaconsole. Only Enterprise.'); help_screen_line('--locate_agent', '<agent_name> [<use_alias>]', 'Search a agent into of nodes of metaconsole. Only Enterprise.');
help_screen_line('--migration_agent_queue', '<id_node> <source_node_name> <target_node_name> [<db_only>]', 'Migrate agent only metaconsole'); help_screen_line('--migration_agent_queue', '<id_node> <source_node_name> <target_node_name> [<db_only>]', 'Migrate agent only metaconsole');
@ -4849,6 +4859,49 @@ sub cli_get_agent_modules() {
} }
} }
##############################################################################
# Show id, name and id_server of an agent given alias
# Related option: --get_agents_id_name_by_alias
##############################################################################
sub cli_get_agents_id_name_by_alias() {
my $agent_alias = @ARGV[2];
my $strict = @ARGV[3];
my @agents;
my $where_value;
if($strict eq 'strict') {
$where_value = $agent_alias;
} else {
$where_value = "%".$agent_alias."%";
}
if(is_metaconsole($conf) == 1) {
@agents = get_db_rows($dbh,"SELECT alias, id_agente, id_tagente, id_tmetaconsole_setup as 'id_server', server_name FROM tmetaconsole_agent WHERE UPPER(alias) LIKE UPPER(?)", $where_value);
} else {
@agents = get_db_rows($dbh,"SELECT alias, id_agente FROM tagente WHERE UPPER(alias) LIKE UPPER(?)", $where_value);
}
if(scalar(@agents) == 0) {
print "[ERROR] No agents retrieved.\n\n";
} else {
if(is_metaconsole($conf) == 1) {
print "alias, id_agente, id_tagente, id_server, server_name\n";
foreach my $agent (@agents) {
print safe_output($agent->{'alias'}).", ".$agent->{'id_agente'}.", ".$agent->{'id_tagente'}.", ".$agent->{'id_server'}.", ".$agent->{'server_name'}."\n";
}
} else {
print "alias, id_agente\n";
foreach my $agent (@agents) {
print $agent->{'id_agente'}.",".safe_output($agent->{'alias'})."\n";
}
}
}
}
sub cli_create_synthetic() { sub cli_create_synthetic() {
my $name_module = @ARGV[2]; my $name_module = @ARGV[2];
my $synthetic_type = @ARGV[3]; my $synthetic_type = @ARGV[3];
@ -7426,6 +7479,10 @@ sub pandora_manage_main ($$$) {
param_check($ltotal, 2, 1); param_check($ltotal, 2, 1);
cli_get_agent_modules(); cli_get_agent_modules();
} }
elsif ($param eq '--get_agents_id_name_by_alias') {
param_check($ltotal, 2,1);
cli_get_agents_id_name_by_alias();
}
elsif ($param eq '--get_policy_modules') { elsif ($param eq '--get_policy_modules') {
param_check($ltotal, 1); param_check($ltotal, 1);
cli_get_policy_modules(); cli_get_policy_modules();