diff --git a/pandora_agents/unix/DEBIAN/control b/pandora_agents/unix/DEBIAN/control index 2f579d46f1..6a65e22674 100644 --- a/pandora_agents/unix/DEBIAN/control +++ b/pandora_agents/unix/DEBIAN/control @@ -1,5 +1,5 @@ package: pandorafms-agent-unix -Version: 7.0NG.740-191113 +Version: 7.0NG.740-191118 Architecture: all Priority: optional Section: admin diff --git a/pandora_agents/unix/DEBIAN/make_deb_package.sh b/pandora_agents/unix/DEBIAN/make_deb_package.sh index f28fdab114..a29952b257 100644 --- a/pandora_agents/unix/DEBIAN/make_deb_package.sh +++ b/pandora_agents/unix/DEBIAN/make_deb_package.sh @@ -14,7 +14,7 @@ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -pandora_version="7.0NG.740-191113" +pandora_version="7.0NG.740-191118" echo "Test if you has the tools for to make the packages." whereis dpkg-deb | cut -d":" -f2 | grep dpkg-deb > /dev/null diff --git a/pandora_agents/unix/pandora_agent b/pandora_agents/unix/pandora_agent index a3c40e50f0..b82e31559b 100755 --- a/pandora_agents/unix/pandora_agent +++ b/pandora_agents/unix/pandora_agent @@ -42,7 +42,7 @@ my $Sem = undef; my $ThreadSem = undef; use constant AGENT_VERSION => '7.0NG.740'; -use constant AGENT_BUILD => '191113'; +use constant AGENT_BUILD => '191118'; # Agent log default file size maximum and instances use constant DEFAULT_MAX_LOG_SIZE => 600000; diff --git a/pandora_agents/unix/pandora_agent.redhat.spec b/pandora_agents/unix/pandora_agent.redhat.spec index f5ed96e5d9..92f817efaa 100644 --- a/pandora_agents/unix/pandora_agent.redhat.spec +++ b/pandora_agents/unix/pandora_agent.redhat.spec @@ -3,7 +3,7 @@ # %define name pandorafms_agent_unix %define version 7.0NG.740 -%define release 191113 +%define release 191118 Summary: Pandora FMS Linux agent, PERL version Name: %{name} diff --git a/pandora_agents/unix/pandora_agent.spec b/pandora_agents/unix/pandora_agent.spec index ea8efb582c..ebd4df71c7 100644 --- a/pandora_agents/unix/pandora_agent.spec +++ b/pandora_agents/unix/pandora_agent.spec @@ -3,7 +3,7 @@ # %define name pandorafms_agent_unix %define version 7.0NG.740 -%define release 191113 +%define release 191118 Summary: Pandora FMS Linux agent, PERL version Name: %{name} diff --git a/pandora_agents/unix/pandora_agent_installer b/pandora_agents/unix/pandora_agent_installer index 316e2a03c2..936755316f 100755 --- a/pandora_agents/unix/pandora_agent_installer +++ b/pandora_agents/unix/pandora_agent_installer @@ -10,7 +10,7 @@ # ********************************************************************** PI_VERSION="7.0NG.740" -PI_BUILD="191113" +PI_BUILD="191118" OS_NAME=`uname -s` FORCE=0 diff --git a/pandora_agents/win32/installer/pandora.mpi b/pandora_agents/win32/installer/pandora.mpi index be5a498d11..04238d3924 100644 --- a/pandora_agents/win32/installer/pandora.mpi +++ b/pandora_agents/win32/installer/pandora.mpi @@ -186,7 +186,7 @@ UpgradeApplicationID {} Version -{191113} +{191118} ViewReadme {Yes} diff --git a/pandora_agents/win32/pandora.cc b/pandora_agents/win32/pandora.cc index b268f7f436..157d2ebe66 100644 --- a/pandora_agents/win32/pandora.cc +++ b/pandora_agents/win32/pandora.cc @@ -30,7 +30,7 @@ using namespace Pandora; using namespace Pandora_Strutils; #define PATH_SIZE _MAX_PATH+1 -#define PANDORA_VERSION ("7.0NG.740(Build 191113)") +#define PANDORA_VERSION ("7.0NG.740(Build 191118)") string pandora_path; string pandora_dir; diff --git a/pandora_agents/win32/versioninfo.rc b/pandora_agents/win32/versioninfo.rc index e2707bff53..de7973252d 100644 --- a/pandora_agents/win32/versioninfo.rc +++ b/pandora_agents/win32/versioninfo.rc @@ -11,7 +11,7 @@ BEGIN VALUE "LegalCopyright", "Artica ST" VALUE "OriginalFilename", "PandoraAgent.exe" VALUE "ProductName", "Pandora FMS Windows Agent" - VALUE "ProductVersion", "(7.0NG.740(Build 191113))" + VALUE "ProductVersion", "(7.0NG.740(Build 191118))" VALUE "FileVersion", "1.0.0.0" END END diff --git a/pandora_console/DEBIAN/control b/pandora_console/DEBIAN/control index 45e4ec20f1..6a00d319d9 100644 --- a/pandora_console/DEBIAN/control +++ b/pandora_console/DEBIAN/control @@ -1,5 +1,5 @@ package: pandorafms-console -Version: 7.0NG.740-191113 +Version: 7.0NG.740-191118 Architecture: all Priority: optional Section: admin diff --git a/pandora_console/DEBIAN/make_deb_package.sh b/pandora_console/DEBIAN/make_deb_package.sh index cf617bb4e3..aa35237934 100644 --- a/pandora_console/DEBIAN/make_deb_package.sh +++ b/pandora_console/DEBIAN/make_deb_package.sh @@ -14,7 +14,7 @@ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -pandora_version="7.0NG.740-191113" +pandora_version="7.0NG.740-191118" package_pear=0 package_pandora=1 diff --git a/pandora_console/extras/mr/33.sql b/pandora_console/extras/mr/33.sql index 143eecff22..f3168bf16e 100644 --- a/pandora_console/extras/mr/33.sql +++ b/pandora_console/extras/mr/33.sql @@ -8,6 +8,10 @@ INSERT INTO `ttipo_modulo` VALUES (36,'remote_cmd_string', 10, 'Remote execution, alphanumeric data', 'mod_remote_cmd_string.png'), (37,'remote_cmd_inc', 10, 'Remote execution, incremental data', 'mod_remote_cmd_inc.png'); +<<<<<<< HEAD ALTER TABLE `tcredential_store` MODIFY COLUMN `product` enum('CUSTOM', 'AWS', 'AZURE', 'GOOGLE', 'SAP') default 'CUSTOM'; +======= +INSERT INTO `tconfig`(`token`, `value`) VALUES ('welcome_state', -1); +>>>>>>> origin/develop COMMIT; diff --git a/pandora_console/general/header.php b/pandora_console/general/header.php index fbaeadd8f0..3a355a8f69 100644 --- a/pandora_console/general/header.php +++ b/pandora_console/general/header.php @@ -348,7 +348,7 @@ if ($config['menu_type'] == 'classic') { // Support. - if (defined('PANDORA_ENTERPRISE')) { + if (enterprise_installed()) { $header_support_link = $config['custom_support_url']; } else { $header_support_link = 'https://pandorafms.com/forums/'; @@ -635,12 +635,6 @@ if ($config['menu_type'] == 'classic') { * Loads modal from AJAX to add feedback. */ function show_feedback() { - var btn_ok_text = ''; var btn_cancel_text = ''; var title = ''; @@ -719,13 +713,15 @@ if ($config['menu_type'] == 'classic') { $("#agent_access").css("display",""); }); - // Feedback. - $("#feedback-header").click(function () { - // Clean DOM. - $("#feedback-header").empty(); - // Function charge Modal. - show_feedback(); - }); + + // Feedback. + $("#feedback-header").click(function () { + // Clean DOM. + $("#feedback-header").empty(); + // Function charge Modal. + show_feedback(); + }); + function blinkpubli(){ $(".publienterprise").delay(100).fadeTo(300,0.2).delay(100).fadeTo(300,1, blinkpubli); diff --git a/pandora_console/include/class/Diagnostics.class.php b/pandora_console/include/class/Diagnostics.class.php index af65aa8066..94acbc4ba2 100644 --- a/pandora_console/include/class/Diagnostics.class.php +++ b/pandora_console/include/class/Diagnostics.class.php @@ -70,6 +70,7 @@ class Diagnostics extends Wizard $this->ajaxController = $page; $this->pdf = $pdf; + $this->product_name = io_safe_output(get_product_name()); } @@ -126,7 +127,7 @@ class Diagnostics extends Wizard // Header. ui_print_page_header( - __('Pandora FMS Diagnostic tool'), + __('%s Diagnostic tool', $this->product_name), 'images/gm_massive_operations.png', false, 'diagnostic_tool_tab', @@ -190,7 +191,7 @@ class Diagnostics extends Wizard foreach ($infoMethods as $key => $method) { switch ($method) { case 'getStatusInfo': - $title = __('Info status pandoraFms'); + $title = __('Info status %s', $this->product_name); break; case 'getPHPSetup': @@ -219,16 +220,17 @@ class Diagnostics extends Wizard case 'getTablesFragmentation': $title = __( - 'Tables fragmentation in the Pandora FMS database' + 'Tables fragmentation in the %s database', + $this->product_name ); break; case 'getPandoraFMSLogsDates': - $title = __('Pandora FMS logs dates'); + $title = __('%s logs dates', $this->product_name); break; case 'getLicenceInformation': - $title = __('Pandora FMS Licence Information'); + $title = __('%s Licence Information', $this->product_name); break; case 'getAttachmentFolder': @@ -240,7 +242,7 @@ class Diagnostics extends Wizard break; case 'getServerThreads': - $title = __('Pandora FMS server threads'); + $title = __('%s server threads', $this->product_name); break; case 'getShowEngine': @@ -399,11 +401,11 @@ class Diagnostics extends Wizard 'error' => false, 'data' => [ 'buildVersion' => [ - 'name' => __('Pandora FMS Build'), + 'name' => __('%s Build', $this->product_name), 'value' => $build_version, ], 'version' => [ - 'name' => __('Pandora FMS Version'), + 'name' => __('%s Version', $this->product_name), 'value' => $pandora_version, ], 'mr' => [ @@ -512,7 +514,7 @@ class Diagnostics extends Wizard 'error' => false, 'data' => [ 'countAgents' => [ - 'name' => __('Total agentsy'), + 'name' => __('Total agents'), 'value' => $countAgents, ], 'countModules' => [ @@ -586,7 +588,10 @@ class Diagnostics extends Wizard $pandoraDbLastRun = __('Pandora DB has never been executed'); if ($dateDbMantenaince !== false) { $difference = ($currentTime - $dateDbMantenaince); - $pandoraDbLastRun = human_time_comparation($difference); + $pandoraDbLastRun = human_time_description_raw( + $difference, + true + ); $pandoraDbLastRun .= ' '.__('Ago'); } @@ -602,7 +607,7 @@ class Diagnostics extends Wizard 'value' => $notInitAgents, ], 'pandoraDbLastRun' => [ - 'name' => __('PandoraDB Last run'), + 'name' => __('Pandora DB Last run'), 'value' => $pandoraDbLastRun, ], ], @@ -671,17 +676,54 @@ class Diagnostics extends Wizard $cpuProcessor = 'cat /proc/cpuinfo | grep "processor" | wc -l'; $ramMemTotal = 'cat /proc/meminfo | grep "MemTotal"'; + exec( + "ifconfig | awk '{ print $2}' | grep -E -o '([0-9]{1,3}[\.]){3}[0-9]{1,3}'", + $output + ); + + $ips = implode(', ', $output); + $result = [ 'error' => false, 'data' => [ - 'cpuInfo' => [ + 'cpuInfo' => [ 'name' => __('CPU'), 'value' => exec($cpuModelName).' x '.exec($cpuProcessor), ], - 'ramInfo' => [ + 'ramInfo' => [ 'name' => __('RAM'), 'value' => exec($ramMemTotal), ], + 'osInfo' => [ + 'name' => __('Os'), + 'value' => exec('uname -a'), + ], + 'hostnameInfo' => [ + 'name' => __('Hostname'), + 'value' => exec('hostname'), + ], + 'ipInfo' => [ + 'name' => __('Ip'), + 'value' => $ips, + ], + ], + ]; + } else { + $result = [ + 'error' => false, + 'data' => [ + 'osInfo' => [ + 'name' => __('OS'), + 'value' => exec('ver'), + ], + 'hostnameInfo' => [ + 'name' => __('Hostname'), + 'value' => exec('hostname'), + ], + 'ipInfo' => [ + 'name' => __('Ip'), + 'value' => exec('ipconfig | findstr IPv4'), + ], ], ]; } @@ -706,18 +748,34 @@ class Diagnostics extends Wizard $bytes = 1048576; $mega = 1024; switch ($item['Variable_name']) { - case 'sql_mode': - $name = __('Sql mode'); - $value = ($item['Value']); - $status = (empty($item['Value']) === true) ? 1 : 0; - $message = __('Must be empty'); + case 'innodb_buffer_pool_size': + $name = __('InnoDB buffer pool size'); + $value = ($item['Value'] / $bytes); + $status = (($item['Value'] / $bytes) >= 250) ? 1 : 0; + $message = __( + 'It has to be 40% of the server memory not recommended to be greater or less' + ); break; - case 'innodb_log_file_size': - $name = __('InnoDB log file size'); - $value = ($item['Value'] / $bytes); - $status = (($item['Value'] / $bytes) >= 64) ? 1 : 0; - $message = __('Min. Recommended Value').' 64M'; + case 'innodb_file_per_table': + $name = __('InnoDB file per table'); + $value = $item['Value']; + $status = ($item['Value'] === 'ON') ? 1 : 0; + $message = __('Recommended ON'); + break; + + case 'innodb_flush_log_at_trx_commit': + $name = __('InnoDB flush log at trx-commit'); + $value = $item['Value']; + $status = ($item['Value'] == 2) ? 1 : 0; + $message = __('Recommended Value').' 2'; + break; + + case 'innodb_lock_wait_timeout': + $name = __('InnoDB lock wait timeout'); + $value = $item['Value']; + $status = ($item['Value'] >= 90) ? 1 : 0; + $message = __('Min. Recommended Value').' 90s'; break; case 'innodb_log_buffer_size': @@ -727,11 +785,11 @@ class Diagnostics extends Wizard $message = __('Min. Recommended Value').' 16M'; break; - case 'innodb_flush_log_at_trx_commit': - $name = __('InnoDB flush log at trx-commit'); - $value = $item['Value']; - $status = (($item['Value'] / $bytes) >= 0) ? 1 : 0; - $message = __('Min. Recommended Value').' 0'; + case 'innodb_log_file_size': + $name = __('InnoDB log file size'); + $value = ($item['Value'] / $bytes); + $status = (($item['Value'] / $bytes) >= 64) ? 1 : 0; + $message = __('Min. Recommended Value').' 64M'; break; case 'max_allowed_packet': @@ -741,27 +799,34 @@ class Diagnostics extends Wizard $message = __('Min. Recommended Value').' 32M'; break; - case 'innodb_buffer_pool_size': - $name = __('InnoDB buffer pool size'); - $value = ($item['Value'] / $mega); - $status = (($item['Value'] / $mega) >= 250) ? 1 : 0; - $message = __( - 'It has to be 40% of the server memory not recommended to be greater or less' - ); + case 'max_connections': + $name = __('Maximun connections'); + $value = $item['Value']; + $status = (($item['Value']) >= 90) ? 1 : 0; + $message = __('Min. Recommended Value'); + $message .= ' 90 '; + $message .= __('conections'); break; - case 'sort_buffer_size': - $name = __('Sort buffer size'); - $value = number_format(($item['Value'] / $mega), 2); + case 'query_cache_limit': + $name = __('Query cache limit'); + $value = ($item['Value'] / $bytes); + $status = (($item['Value'] / $bytes) >= 8) ? 1 : 0; + $message = __('Min. Recommended Value').' 8M'; + break; + + case 'query_cache_min_res_unit': + $name = __('Query cache min-res-unit'); + $value = ($item['Value'] / $mega); + $status = (($item['Value'] / $mega) >= 2) ? 1 : 0; + $message = __('Min. Recommended Value').' 2M'; + break; + + case 'query_cache_size': + $name = __('Query cache size'); + $value = ($item['Value'] / $bytes); $status = (($item['Value'] / $bytes) >= 32) ? 1 : 0; - $message = __('Min. Recommended Value').' 32'; - break; - - case 'join_buffer_size': - $name = __('Join buffer size'); - $value = ($item['Value'] / $mega); - $status = (($item['Value'] / $bytes) >= 265) ? 1 : 0; - $message = __('Min. Recommended Value 265'); + $message = __('Min. Recommended Value').' 32M'; break; case 'query_cache_type': @@ -771,83 +836,48 @@ class Diagnostics extends Wizard $message = __('Recommended ON'); break; - case 'query_cache_size': - $name = __('Query cache size'); - $value = ($item['Value'] / $bytes); - $status = (($item['Value'] / $bytes) >= 32) ? 1 : 0; - $message = __('Min. Recommended Value').' 32MB'; + case 'read_buffer_size': + $name = __('Read buffer size'); + $value = ($item['Value'] / $mega); + $status = (($item['Value'] / $mega) >= 32) ? 1 : 0; + $message = __('Min. Recommended Value').' 32K'; break; - case 'query_cache_limit': - $name = __('Query cache limit'); - $value = ($item['Value'] / $bytes); - $status = (($item['Value'] / $bytes) >= 256) ? 1 : 0; - $message = __('Min. Recommended Value').' 256K'; + case 'read_rnd_buffer_size': + $name = __('Read rnd-buffer size'); + $value = ($item['Value'] / $mega); + $status = (($item['Value'] / $mega) >= 32) ? 1 : 0; + $message = __('Min. Recommended Value').' 32K'; break; - case 'innodb_lock_wait_timeout': - $name = __('InnoDB lock wait timeout'); - $value = $item['Value']; - $status = (($item['Value'] / $bytes) >= 90) ? 1 : 0; - $message = __('Min. Recommended Value').' 90s'; + case 'sort_buffer_size': + $name = __('Sort buffer size'); + $value = ($item['Value'] / $mega); + $status = (($item['Value'] / $mega) >= 32) ? 1 : 0; + $message = __('Min. Recommended Value').' 32K'; + break; + + case 'sql_mode': + $name = __('Sql mode'); + $value = ($item['Value']); + $status = (empty($item['Value']) === true) ? 1 : 0; + $message = __('Must be empty'); break; case 'thread_cache_size': $name = __('Thread cache size'); $value = $item['Value']; - $status = (($item['Value'] / $bytes) >= 8) ? 1 : 0; + $status = ($item['Value'] >= 8) ? 1 : 0; $message = __('Min. Recommended Value').' 8'; break; case 'thread_stack': $name = __('Thread stack'); - $value = ($item['Value'] / $bytes); - $status = (($item['Value'] / $bytes) >= 256) ? 1 : 0; - $message = __('Min. Recommended Value').' 256K'; - break; - - case 'max_connections': - $name = __('Maximun connections'); - $value = $item['Value']; - $status = (($item['Value'] / $bytes) >= 90) ? 1 : 0; - $message = __('Min. Recommended Value').' 90'; - break; - - case 'key_buffer_size': - $name = __('Key buffer size'); - $value = ($item['Value'] / $bytes); - $status = (($item['Value'] / $bytes) >= 256) ? 1 : 0; + $value = ($item['Value'] / $mega); + $status = (($item['Value'] / $mega) >= 256) ? 1 : 0; $message = __('Min. Recommended Value').' 256'; break; - case 'read_buffer_size': - $name = __('Read buffer size'); - $value = ($item['Value'] / $bytes); - $status = (($item['Value'] / $bytes) >= 32) ? 1 : 0; - $message = __('Min. Recommended Value').' 32'; - break; - - case 'read_rnd_buffer_size': - $name = __('Read rnd-buffer size'); - $value = ($item['Value'] / $bytes); - $status = (($item['Value'] / $bytes) >= 32) ? 1 : 0; - $message = __('Min. Recommended Value').' 32'; - break; - - case 'query_cache_min_res_unit': - $name = __('Query cache min-res-unit'); - $value = ($item['Value'] / $bytes); - $status = (($item['Value'] / $bytes) >= 2) ? 1 : 0; - $message = __('Min. Recommended Value').' 2k'; - break; - - case 'innodb_file_per_table': - $name = __('InnoDB file per table'); - $value = $item['Value']; - $status = ($item['Value'] === 'ON') ? 1 : 0; - $message = __('Recommended ON'); - break; - default: $name = ''; $value = 0; @@ -949,10 +979,10 @@ class Diagnostics extends Wizard $unit = 'M'; - $pathServerLogs = 'var/log/pandora/pandora_server.log'; + $pathServerLogs = '/var/log/pandora/pandora_server.log'; $servers = $this->getLogInfo($pathServerLogs); - $pathErrLogs = 'var/log/pandora/pandora_server.error'; + $pathErrLogs = '/var/log/pandora/pandora_server.error'; $errors = $this->getLogInfo($pathErrLogs); $pathConsoleLogs = $config['homedir'].'/pandora_console.log'; @@ -1014,6 +1044,7 @@ class Diagnostics extends Wizard $customerKey = db_get_value_sql($sql); // Extract Info license. + enterprise_include_once('include/functions_license.php'); $license = enterprise_hook('license_get_info'); // Agent Capacity. @@ -1046,6 +1077,7 @@ class Diagnostics extends Wizard WHERE id_tipo_modulo BETWEEN 6 AND 18' ); + $totalModuleIntervalTime = db_get_value_sql( 'SELECT SUM(module_interval) FROM tagente_modulo @@ -1056,26 +1088,26 @@ class Diagnostics extends Wizard $averageTime = 0; if ($totalModuleIntervalTime !== false) { $averageTime = number_format( - ((int) $totalModuleIntervalTime / (int) $totalNetworkModules), + ((int) $totalNetworkModules / (int) $totalModuleIntervalTime), 3 ); } $moduleNetworkmsg = __( sprintf( - 'The system is not overloaded (average time %d)', - $average_time + 'The system is not overloaded (average time %f)', + $averageTime ) ); $moduleNetworkst = 1; - if ($average_time === 0) { + if ($averageTime === 0) { $moduleNetworkmsg = __('The system has no load'); $moduleNetworkst = 0; - } else if ($averageTime < 180) { + } else if ($averageTime > 180) { $moduleNetworkmsg = __( sprintf( - 'The system is overloaded (average time %d) and a very fine configuration is required', - $average_time + 'The system is overloaded (average time %f) and a very fine configuration is required', + $averageTime ) ); $moduleNetworkst = 0; @@ -1248,37 +1280,47 @@ class Diagnostics extends Wizard { global $config; - if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') { - return []; + $result = []; + $totalServerThreads = 0; + if (strtoupper(substr(PHP_OS, 0, 3)) !== 'WIN') { + $totalServerThreads = shell_exec( + 'ps -T aux | grep pandora_server | grep -v grep | wc -l' + ); } - $totalServerThreads = shell_exec( - 'ps -T aux | grep pandora_server | grep -v grep | wc -l' - ); - $percentageThreadsRam = shell_exec( - "ps axo pmem,cmd | grep pandora_server | awk '{sum+=$1} END {print sum}'" - ); - $percentageThreadsCpu = shell_exec( - "ps axo pcpu,cmd | grep pandora_server | awk '{sum+=$1} END {print sum}'" - ); + include_once $config['homedir'].'/include/functions_servers.php'; + $sql = 'SELECT `name`, server_type, threads FROM tserver'; + $servers = db_get_all_rows_sql($sql); - $result = [ - 'error' => false, - 'data' => [ - 'totalServerThreads' => [ - 'name' => __('Total server threads'), - 'value' => $totalServerThreads, - ], - 'percentageThreadsRam' => [ - 'name' => __('Percentage of threads used by the RAM'), - 'value' => $percentageThreadsRam.' %', - ], - 'percentageThreadsCpu' => [ - 'name' => __('Percentage of threads used by the CPU'), - 'value' => $percentageThreadsCpu.' %', - ], - ], - ]; + if (isset($servers) === true && is_array($servers) === true) { + $sum_threads = 0; + foreach ($servers as $key => $value) { + $result['data']['threads_server_'.$value['server_type']] = [ + 'name' => __('Threads').' '.\servers_get_server_string_name( + $value['server_type'] + ), + 'value' => $value['threads'], + ]; + + $sum_threads += $value['threads']; + } + + $result['data']['total_threads'] = [ + 'name' => __('Total threads'), + 'value' => $sum_threads, + 'status' => ($sum_threads < $totalServerThreads) ? 2 : 1, + ]; + + if ($sum_threads < $totalServerThreads) { + $result['data']['total_threads']['message'] = __( + 'Current pandora_server running threads' + ); + } else { + __( + 'There\'s more pandora_server threads than configured, are you running multiple servers simultaneusly?.' + ); + } + } return json_encode($result); } @@ -1311,8 +1353,8 @@ class Diagnostics extends Wizard $lenght = strlen($innodb[0]['Status']); $data = []; - for ($i = 0; $i < $lenght; $i = ($i + 500)) { - $str = substr($innodb[0]['Status'], $i, ($i + 500)); + for ($i = 0; $i < $lenght; $i = ($i + 300)) { + $str = substr($innodb[0]['Status'], $i, ($i + 300)); $data['showEngine-'.$i] = [ 'name' => '', 'value' => '
'.$str.'
', @@ -1669,7 +1711,7 @@ class Diagnostics extends Wizard 'status' => 0, ]; - if (is_file($path) === true) { + if (file_exists($path) === true) { $fileSize = filesize($path); $sizeServerLog = number_format($fileSize); $sizeServerLog = (0 + str_replace(',', '', $sizeServerLog)); @@ -1726,7 +1768,17 @@ class Diagnostics extends Wizard // of objects, making a post-process of certain fields. if (isset($items[$key]['status']) === true) { $acumValue = $items[$key]['value']; - if ($items[$key]['status'] === 1) { + + if ($items[$key]['status'] === 2) { + $items[$key]['value'] = html_print_image( + 'images/icono-warning.png', + true, + [ + 'title' => __('Warning'), + 'style' => 'width:15px;', + ] + ); + } else if ($items[$key]['status'] === 1) { $items[$key]['value'] = html_print_image( 'images/exito.png', true, @@ -1868,7 +1920,7 @@ class Diagnostics extends Wizard $mail_feedback = 'feedback@artica.es'; $email = $mail_feedback; - $subject = 'PandoraFMS Report '.$config['pandora_uid']; + $subject = $this->product_name.' Report '.$config['pandora_uid']; $text = get_parameter('what-happened', ''); $attachment = get_parameter_switch('include_installation_data', 0); $email_from = get_parameter_switch('email', ''); diff --git a/pandora_console/include/class/WelcomeWindow.class.php b/pandora_console/include/class/WelcomeWindow.class.php index a2a2b156f3..c69fbe40d9 100644 --- a/pandora_console/include/class/WelcomeWindow.class.php +++ b/pandora_console/include/class/WelcomeWindow.class.php @@ -342,11 +342,11 @@ class WelcomeWindow extends Wizard $btn_create_alert_class = ''; $btn_create_discovery_class = 'pending'; - $li_configure_mail_class = 'green'; - $li_create_agent_class = 'green'; - $li_create_module_class = 'grey'; - $li_create_alert_class = 'grey'; - $li_create_discovery_class = 'green'; + $li_configure_mail_class = 'row_green'; + $li_create_agent_class = 'row_green'; + $li_create_module_class = 'row_grey'; + $li_create_alert_class = 'row_grey'; + $li_create_discovery_class = 'row_green'; if (empty($config['welcome_mail_configured']) === false) { $btn_configure_mail_class = ' completed'; @@ -355,18 +355,18 @@ class WelcomeWindow extends Wizard if (empty($config['welcome_id_agent']) === false) { $btn_create_agent_class = ' completed'; $btn_create_module_class = ' pending'; - $li_create_module_class = 'green'; + $li_create_module_class = 'row_green'; } if (empty($config['welcome_module']) === false) { $btn_create_module_class = ' completed'; $btn_create_alert_class = ' pending'; - $li_create_module_class = 'green'; + $li_create_module_class = 'row_green'; } if (empty($config['welcome_alert']) === false) { $btn_create_alert_class = ' completed'; - $li_create_alert_class = 'green'; + $li_create_alert_class = 'row_green'; } if (empty($config['welcome_task']) === false) { @@ -380,8 +380,8 @@ class WelcomeWindow extends Wizard $btn_create_module_class = ' completed'; $btn_create_alert_class = ' completed'; $btn_create_discovery_class = ' completed'; - $li_create_module_class = 'green'; - $li_create_alert_class = 'green'; + $li_create_module_class = 'row_green'; + $li_create_alert_class = 'row_green'; } $form = [ @@ -547,7 +547,10 @@ class WelcomeWindow extends Wizard ], ], ], - [ + ]; + + if (enterprise_installed()) { + $inputs[] = [ 'wrapper' => 'div', 'block_id' => 'div_not_working', 'class' => 'hole flex-row w100p', @@ -573,8 +576,8 @@ class WelcomeWindow extends Wizard ], ], - ], - ]; + ]; + } $output = $this->printForm( [ diff --git a/pandora_console/include/config_process.php b/pandora_console/include/config_process.php index ff5f365d5e..82515500d2 100644 --- a/pandora_console/include/config_process.php +++ b/pandora_console/include/config_process.php @@ -20,7 +20,7 @@ /** * Pandora build version and version */ -$build_version = 'PC191113'; +$build_version = 'PC191118'; $pandora_version = 'v7.0NG.740'; // Do not overwrite default timezone set if defined. diff --git a/pandora_console/include/functions_events.php b/pandora_console/include/functions_events.php index 9563732c68..5fd0ae3481 100644 --- a/pandora_console/include/functions_events.php +++ b/pandora_console/include/functions_events.php @@ -4580,7 +4580,7 @@ function events_page_comments($event, $ajax=false) continue; } - $comments_array[] = json_decode(io_safe_output($comm), true); + $comments_array[] = io_safe_output(json_decode($comm, true)); } } else { // If comments are not stored in json, the format is old. diff --git a/pandora_console/include/functions_ui.php b/pandora_console/include/functions_ui.php index c486cf567a..096ca43c46 100755 --- a/pandora_console/include/functions_ui.php +++ b/pandora_console/include/functions_ui.php @@ -3169,6 +3169,9 @@ function ui_print_datatable(array $parameters) ); } + // Languages. + $processing = __('Processing'); + // Extra html. $extra = ''; if (isset($parameters['extra_html']) && !empty($parameters['extra_html'])) { @@ -3233,6 +3236,9 @@ function ui_print_datatable(array $parameters) searching: false, responsive: true, dom: "plfrtiBp", + language: { + processing:"'.$processing.'" + }, buttons: [ { extend: "csv", @@ -5738,7 +5744,7 @@ function ui_print_comments($comments) continue; } - $comments_array[] = json_decode(io_safe_output($comm), true); + $comments_array[] = io_safe_output(json_decode($comm, true)); } } diff --git a/pandora_console/include/styles/diagnostics.css b/pandora_console/include/styles/diagnostics.css index 8de918e308..17109ed57f 100644 --- a/pandora_console/include/styles/diagnostics.css +++ b/pandora_console/include/styles/diagnostics.css @@ -17,6 +17,10 @@ text-align: justify; } +.dataTables_wrapper { + min-height: 150px; +} + .datatables-td-title { width: 25% !important; font-weight: bolder; diff --git a/pandora_console/include/styles/new_installation_welcome_window.css b/pandora_console/include/styles/new_installation_welcome_window.css index ab245f034d..33903494ce 100644 --- a/pandora_console/include/styles/new_installation_welcome_window.css +++ b/pandora_console/include/styles/new_installation_welcome_window.css @@ -6,15 +6,8 @@ overflow: hidden; } -#welcome_modal_window { - /* - max-height: 100%; - height: 100%; - border-left: 1em solid #82b92f; - margin-bottom: -59px; - padding-bottom: 100px; - margin-left: -1px; - */ +#welcome_modal_window * { + font-size: 10pt; } #welcome_form ul.wizard > li { @@ -86,7 +79,7 @@ border-left: 4px solid #79a930; } -#welcome_form li:not(.centered_full):not(.white_box).grey { +#welcome_form li:not(.centered_full):not(.white_box).row_grey { border-left: 4px solid #d6d6d6; } diff --git a/pandora_console/include/styles/pandora.css b/pandora_console/include/styles/pandora.css index 2ee4bedb61..ef1d250759 100644 --- a/pandora_console/include/styles/pandora.css +++ b/pandora_console/include/styles/pandora.css @@ -5917,6 +5917,47 @@ table.table_modal_alternate tr td:first-child { width: 101%; } +/*Font header feedback*/ +form#modal_form_feedback { + padding: 10px; +} + +form#modal_form_feedback label { + margin-bottom: 10px; + color: #343434; + font-weight: bold; + font-size: 10pt; +} + +form#modal_form_feedback input[type="email"] { + background-color: transparent; + border: none; + border-radius: 0; + border-bottom: 1px solid #ccc; + font-family: "lato-bolder", "Open Sans", sans-serif; + font-weight: lighter; + padding: 0px 0px 2px 0px; + box-sizing: border-box; + margin-bottom: 4px; +} + +form#modal_form_feedback ul.wizard li { + padding-bottom: 10px; + padding-top: 10px; +} + +form#modal_form_feedback ul.wizard li > label:not(.p-switch) { + width: 250px; + vertical-align: top; + display: inline-block; +} + +form#modal_form_feedback ul.wizard li > textarea { + width: 600px; + height: 15em; + display: inline-block; + font-family: monospace; +} /* * --------------------------------------------------------------------- * - FONT SIZES IN AGENT VIEW. This changes the font size of the agent diff --git a/pandora_console/install.php b/pandora_console/install.php index 094f4b3393..4478f8e75a 100644 --- a/pandora_console/install.php +++ b/pandora_console/install.php @@ -129,7 +129,7 @@
[ qw() ] ); diff --git a/pandora_server/pandora_server.redhat.spec b/pandora_server/pandora_server.redhat.spec index 05fed4153c..69183db7ca 100644 --- a/pandora_server/pandora_server.redhat.spec +++ b/pandora_server/pandora_server.redhat.spec @@ -3,7 +3,7 @@ # %define name pandorafms_server %define version 7.0NG.740 -%define release 191113 +%define release 191118 Summary: Pandora FMS Server Name: %{name} diff --git a/pandora_server/pandora_server.spec b/pandora_server/pandora_server.spec index ca4e1b49d5..226e5ec8cd 100644 --- a/pandora_server/pandora_server.spec +++ b/pandora_server/pandora_server.spec @@ -3,7 +3,7 @@ # %define name pandorafms_server %define version 7.0NG.740 -%define release 191113 +%define release 191118 Summary: Pandora FMS Server Name: %{name} diff --git a/pandora_server/pandora_server_installer b/pandora_server/pandora_server_installer index 17381fad66..d52c1a1e7d 100755 --- a/pandora_server/pandora_server_installer +++ b/pandora_server/pandora_server_installer @@ -9,7 +9,7 @@ # ********************************************************************** PI_VERSION="7.0NG.740" -PI_BUILD="191113" +PI_BUILD="191118" MODE=$1 if [ $# -gt 1 ]; then diff --git a/pandora_server/util/pandora_db.pl b/pandora_server/util/pandora_db.pl index 7ae1717f78..76b393698b 100644 --- a/pandora_server/util/pandora_db.pl +++ b/pandora_server/util/pandora_db.pl @@ -34,7 +34,7 @@ use PandoraFMS::Config; use PandoraFMS::DB; # version: define current version -my $version = "7.0NG.740 PS191113"; +my $version = "7.0NG.740 PS191118"; # Pandora server configuration my %conf; diff --git a/pandora_server/util/pandora_manage.pl b/pandora_server/util/pandora_manage.pl index f45897efe6..76e267b8ac 100755 --- a/pandora_server/util/pandora_manage.pl +++ b/pandora_server/util/pandora_manage.pl @@ -36,7 +36,7 @@ use Encode::Locale; Encode::Locale::decode_argv; # version: define current version -my $version = "7.0NG.740 PS191113"; +my $version = "7.0NG.740 PS191118"; # save program name for logging my $progname = basename($0);