false,
'company_name' => false,
'server_power_state' => false,
'server_os' => false,
'server_cpu' => false,
'server_memory' => false,
'server_memory_demand' => false,
'server_disks' => false,
'server_ipv4' => false,
'server_ipv6' => false,
'server_vm_snapshot' => false,
'server_vm_generation' => false,
'server_licenses' => false,
'server_backup' => false,
'server_description' => false,
);
public array $allBackupTypes = [];
public array $allLicenseTypes = [];
public bool $showDelBtn = true;
public bool $showServerOverviewTitle = true;
public bool $showCompanies = true;
public function processServerData()
{
foreach ($this->servers as $server) {
if (!empty($server['server_backup'])) {
$backups = json_decode($server['server_backup'], true);
if (is_array($backups)) {
foreach ($backups as $item) {
foreach ($item as $key => $value) {
$this->allBackupTypes[$key] = true;
}
}
}
}
if (!empty($server['server_licenses'])) {
$licenses = json_decode($server['server_licenses'], true);
if (is_array($licenses)) {
foreach ($licenses as $item) {
foreach ($item as $key => $value) {
$this->allLicenseTypes[$key] = true;
}
}
}
}
}
$this->allBackupTypes = array_keys($this->allBackupTypes);
sort($this->allBackupTypes);
$this->allLicenseTypes = array_keys($this->allLicenseTypes);
sort($this->allLicenseTypes);
if (isset($_COOKIE['serverTableColumns'])) {
$CheckedColumns = json_decode(htmlspecialchars(($_COOKIE['serverTableColumns']), true));
foreach ($CheckedColumns as $CheckedColumn) {
$this->showColumns[$CheckedColumn] = true;
}
} else {
$this->showColumns['server_hostname'] = true;
$this->showColumns['company_name'] = true;
$this->showColumns['server_os'] = true;
$this->showColumns['server_cpu'] = true;
$this->showColumns['server_memory'] = true;
$this->showColumns['server_memory_demand'] = true;
$this->showColumns['server_disks'] = true;
$this->showColumns['server_state'] = true;
}
}
private function cleanNumber($num)
{
// If integer value, return without formatting
if (floor($num) == $num) {
return (string)$num;
}
// Otherwise return trimmed float
return rtrim(rtrim(number_format($num, 10, '.', ''), '0'), '.');
}
public function serverOverviewOutPut()
{ ?>
|
|
showCompanies) { ?>
|
|
|
|
|
|
|
|
|
|
allLicenseTypes as $licenseType) { ?>
|
allBackupTypes as $backupType) { ?>
|
|
|
|
|
|
showCompanies) { ?>
|
|
|
|
|
|
|
|
|
|
allLicenseTypes as $licenseType) { ?>
|
allBackupTypes as $backupType) { ?>
|
|
|
|
servers as $server) {
$disks = json_decode($server['server_disks'], true);
$totalDiskSpace = 0;
if (is_array($disks)) {
foreach ($disks as $disk) {
$totalDiskSpace += $disk['disk_space'];
}
}
if (is_null($server['server_vm_host_name'])) {
$hostname = $server['server_hostname'];
} else {
$hostname = $server['server_vm_host_name'];
}
$mem = isset($server['server_memory']) ? (float)$server['server_memory'] : 0;
$demand = isset($server['server_memory_demand']) ? (float)$server['server_memory_demand'] : 0;
if ($mem == 0 && $demand == 0) {
$mem_assigned = 'N/A';
} else {
$mem_assigned = $this->cleanNumber($mem) . "M";
}
$mem_demand_text_color = '';
if ($mem > 0) {
$mem_percent = ($demand / $mem) * 100;
$mem_percent_numb = round($mem_percent, 1);
$mem_demand = round($mem_percent, 1) . "%"; // round to 1 decimal place
$mem_percent_sort = $mem_percent_numb;
if ($mem_percent_numb <= 89) {
$mem_demand_text_color = 'success';
}
if ($mem_percent_numb > 89) {
$mem_demand_text_color = 'secondary';
}
if ($mem_percent_numb > 99) {
$mem_demand_text_color = 'danger';
}
} else {
$mem_demand = "N/A";
$mem_percent_numb = 'N/A';
$mem_percent_sort = -1;
}
$ipv4_list = '';
if (!empty($server['server_ipv4'])) {
$ips = json_decode($server['server_ipv4'], true);
if (is_array($ips)) {
$ipv4_list = implode(', ', $ips);
}
}
$ipv6_list = '';
if (!empty($server['server_ipv6'])) {
$ips = json_decode($server['server_ipv6'], true);
if (is_array($ips)) {
$ipv6_list = implode(', ', $ips);
}
}
$thisServerLicenses = [];
foreach ($this->allLicenseTypes as $licenseType) {
$thisServerLicenses[$licenseType] = false;
}
if (!empty($server['server_licenses'])) {
$allLicenseTypesServer = json_decode($server['server_licenses'], true);
if (is_array($allLicenseTypesServer)) {
foreach ($allLicenseTypesServer as $licenseTypeServer) {
foreach ($licenseTypeServer as $licenseTypeServerKey => $licenseTypeServerValue) {
$thisServerLicenses[$licenseTypeServerKey] = true;
}
}
}
}
$thisServerBackup = [];
foreach ($this->allBackupTypes as $BackupType) {
$thisServerBackup[$BackupType] = false;
}
if (!empty($server['server_backup'])) {
$allBackupTypesServer = json_decode($server['server_backup'], true);
if (is_array($allBackupTypesServer)) {
foreach ($allBackupTypesServer as $BackupTypeServer) {
foreach ($BackupTypeServer as $BackupTypeServerKey => $BackupTypeServerValue) {
$thisServerBackup[$BackupTypeServerKey] = true;
}
}
}
}
if ($this->showCompanies) {
$company_name = '';
if (strlen($server['company_name']) > 0) {
$company_name = $server['company_name'];
}
}
$server_state_color = returnServerStateColor($server['server_state']);
?>
|
|
|
showCompanies) { ?>
|
|
|
|
|
0) {
$sizes = array_column($disks, 'disk_space');
$totalDiskSpace = array_sum($sizes);
if ($totalDiskSpace > 0) {
$sortValue = $totalDiskSpace;
$filterValue = $totalDiskSpace;
}
}
?>
data-sort="" data-filter="">
|
|
|
|
|
allLicenseTypes as $licenseType) { ?>
' : '' ?> |
allBackupTypes as $BackupType) { ?>
' : '' ?> |
';
} elseif ($server['server_power_state'] == 'Running') {
echo '';
} ?>
|
|
|