67 lines
3.0 KiB
PHP
67 lines
3.0 KiB
PHP
<?php
|
|
|
|
// Pandora FMS - http://pandorafms.com
|
|
// ==================================================
|
|
// Copyright (c) 2005-2021 Artica Soluciones Tecnologicas
|
|
// Please see http://pandorafms.org for full contribution list
|
|
// This program is free software; you can redistribute it and/or
|
|
// modify it under the terms of the GNU General Public License
|
|
// as published by the Free Software Foundation; version 2
|
|
// This program is distributed in the hope that it will be useful,
|
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
// GNU General Public License for more details.
|
|
require_once __DIR__.'/../include/config.php';
|
|
require_once __DIR__.'/../include/auth/mysql.php';
|
|
require_once __DIR__.'/../include/functions.php';
|
|
require_once __DIR__.'/../include/functions_db.php';
|
|
/*
|
|
* Review if sample agent is active and deploys configuration for
|
|
* visual consoles if necessary
|
|
*/
|
|
global $config;
|
|
|
|
// Deployment of sample agent for visual consoles.
|
|
if ($config['sample_agent'] == 1 && !isset($config['sample_agent_deployed'])) {
|
|
$id_agente = db_get_sql('SELECT id_agente FROM tagente WHERE nombre = "Sample_Agent";');
|
|
$modules = db_get_all_rows_filter('tagente_modulo', ['id_agente' => $id_agente], 'id_agente_modulo');
|
|
$count_modules = count($modules);
|
|
|
|
// Update of layout 1 (Rack sample).
|
|
$images_rack_server = [
|
|
'rack_server_rack',
|
|
'rack_server',
|
|
'rack_switch',
|
|
'rack_firewall',
|
|
'rack_double_server',
|
|
'rack_frame',
|
|
'rack_pdu',
|
|
];
|
|
$query = 'UPDATE `tlayout_data` SET `id_agent` = '.$id_agente.', `id_agente_modulo` = CASE ';
|
|
for ($i = 0; $i < $count_modules; $i++) {
|
|
$query .= 'WHEN `image` = "'.$images_rack_server[$i].'" THEN '.$modules[$i]['id_agente_modulo'].' ';
|
|
}
|
|
|
|
$query .= 'END WHERE `id_layout` = 1 AND `image` IN ("'.implode('","', $images_rack_server).'");';
|
|
|
|
db_process_sql($query);
|
|
// Update of layout 2 (Dashboard).
|
|
$query = 'UPDATE `tlayout_data` SET `id_agent`= '.$id_agente.', `id_agente_modulo` = CASE ';
|
|
$query .= 'WHEN `id` = 107 THEN '.$modules[0]['id_agente_modulo'].' ';
|
|
$query .= 'WHEN `id` = 108 THEN '.$modules[1]['id_agente_modulo'].' ';
|
|
$query .= 'WHEN `id` = 109 THEN '.$modules[2]['id_agente_modulo'].' ';
|
|
$query .= 'WHEN `id` = 110 THEN '.$modules[2]['id_agente_modulo'].' ';
|
|
$query .= 'WHEN `id` = 111 THEN '.$modules[3]['id_agente_modulo'].' ';
|
|
$query .= 'WHEN `id` = 112 THEN '.$modules[4]['id_agente_modulo'].' ';
|
|
$query .= 'WHEN `id` = 113 THEN '.$modules[5]['id_agente_modulo'].' ';
|
|
$query .= 'WHEN `id` = 114 THEN '.$modules[6]['id_agente_modulo'].' ';
|
|
$query .= 'END WHERE `id_layout` = 2 AND `id` IN (107,108,109,110,111,112,113,114);';
|
|
|
|
db_process_sql($query);
|
|
|
|
// This setting will avoid regenerate all the times the visual consoles.
|
|
config_update_value('sample_agent_deployed', 1);
|
|
}
|
|
|
|
extensions_add_main_function('sample_agent_deployment');
|