<?php declare(strict_types = 0);
class CSystemInfoHelper {
public static function getData(): array {
global $ZBX_SERVER, $ZBX_SERVER_PORT;
$data = [
'is_global_scripts_enabled' => CSettingsHelper::isGlobalScriptsEnabled(),
'is_software_update_check_enabled' => CSettingsHelper::isSoftwareUpdateCheckEnabled(),
'status' => static::getServerStatus($ZBX_SERVER, $ZBX_SERVER_PORT),
'server_details' => '',
'failover_delay' => 0
];
if ($data['is_software_update_check_enabled']) {
$data['software_update_check_data'] = static::getSoftwareUpdateCheckData();
}
$db_backend = DB::getDbBackend();
$data['encoding_warning'] = $db_backend->checkEncoding() ? '' : $db_backend->getWarning();
foreach (CSettingsHelper::getDbVersionStatus() as $dbversion) {
if (array_key_exists('history_pk', $dbversion)) {
$data['history_pk'] = ($dbversion['history_pk'] == 1);
break;
}
}
$housekeeper_warnings = CHousekeepingHelper::getWarnings();
if (array_key_exists(CHousekeepingHelper::OVERRIDE_NEEDED_HISTORY, $housekeeper_warnings)
&& CHousekeepingHelper::get(CHousekeepingHelper::HK_HISTORY_MODE) == 1
&& CHousekeepingHelper::get(CHousekeepingHelper::HK_HISTORY_GLOBAL) == 0) {
$data[CHousekeepingHelper::OVERRIDE_NEEDED_HISTORY] = true;
}
if (array_key_exists(CHousekeepingHelper::OVERRIDE_NEEDED_TRENDS, $housekeeper_warnings)
&& CHousekeepingHelper::get(CHousekeepingHelper::HK_TRENDS_MODE) == 1
&& CHousekeepingHelper::get(CHousekeepingHelper::HK_TRENDS_GLOBAL) == 0) {
$data[CHousekeepingHelper::OVERRIDE_NEEDED_TRENDS] = true;
}
$ha_cluster_enabled = false;
$ha_nodes = API::getApiService('hanode')->get([
'output' => ['name', 'address', 'port', 'lastaccess', 'status'],
'sortfield' => 'status',
'sortorder' => 'DESC'
], false);
foreach ($ha_nodes as $node) {
if ($node['name'] === '' && $node['status'] == ZBX_NODE_STATUS_ACTIVE) {
$ha_cluster_enabled = false;
$ha_nodes = [];
break;
}
elseif ($node['status'] == ZBX_NODE_STATUS_STANDBY || $node['status'] == ZBX_NODE_STATUS_ACTIVE) {
$ha_cluster_enabled = true;
}
}
$data['ha_cluster_enabled'] = $ha_cluster_enabled;
$data['ha_nodes'] = $ha_nodes;
if ($ha_cluster_enabled) {