summaryrefslogtreecommitdiffstats
path: root/modules-available/dnbd3/page.inc.php
diff options
context:
space:
mode:
authorSimon Rettberg2018-03-20 11:30:53 +0100
committerSimon Rettberg2018-03-20 11:30:53 +0100
commit02111ed9a4935baf6c1f2968e50daf1b663702fe (patch)
tree44330c1b93538967d77eb9332ba1e8562c94835d /modules-available/dnbd3/page.inc.php
parentDelete old unused lang files (diff)
downloadslx-admin-02111ed9a4935baf6c1f2968e50daf1b663702fe.tar.gz
slx-admin-02111ed9a4935baf6c1f2968e50daf1b663702fe.tar.xz
slx-admin-02111ed9a4935baf6c1f2968e50daf1b663702fe.zip
[dnbd3] Redesign proxy detail view, add image list
Diffstat (limited to 'modules-available/dnbd3/page.inc.php')
-rw-r--r--modules-available/dnbd3/page.inc.php33
1 files changed, 22 insertions, 11 deletions
diff --git a/modules-available/dnbd3/page.inc.php b/modules-available/dnbd3/page.inc.php
index afcb9b2c..8a9abdc1 100644
--- a/modules-available/dnbd3/page.inc.php
+++ b/modules-available/dnbd3/page.inc.php
@@ -264,26 +264,31 @@ class Page_Dnbd3 extends Page
User::assertPermission('view.details');
$server = $this->getServerById();
Render::addTemplate('page-proxy-header', $server);
- $stats = Dnbd3Rpc::query($server['ip'], 5003, true, true, false, true);
+ $stats = Dnbd3Rpc::query($server['ip'], 5003, true, true, true, true);
if (!is_array($stats) || !isset($stats['runId'])) {
Message::addError('server-unreachable');
return;
}
- $stats['bytesSent_s'] = Util::readableFileSize($stats['bytesSent']);
- $stats['bytesReceived_s'] = Util::readableFileSize($stats['bytesReceived']);
+ foreach (['bytesSent', 'bytesReceived', 'spaceTotal', 'spaceFree'] as $key) {
+ $stats[$key . '_s'] = Util::readableFileSize($stats[$key]);
+ }
+ if ($stats['spaceTotal'] > 0) {
+ $stats['percentFree'] = ($stats['spaceFree'] / $stats['spaceTotal']) * 100;
+ $stats['percentFree'] = round($stats['percentFree'], $stats['percentFree'] < 10 ? 1 : 0);
+ }
$stats['uptime_s'] = floor($stats['uptime'] / 86400) . 'd ' . gmdate('H:i:s', $stats['uptime']);
Render::addTemplate('page-proxy-stats', $stats);
- // TODO $images = Dnbd3Rpc::query($server['ip'], 5003, false, false, true);
+ Render::openTag('div', ['class' => 'tab-content']);
$confAlts = Dnbd3Rpc::query($server['ip'], 5003, false, false, false, false, true, true);
$ips = array();
$sort = array();
foreach ($stats['clients'] as &$c) {
$c['bytesSent_s'] = Util::readableFileSize($c['bytesSent']);
$sort[] = $c['bytesSent'];
- $ips[] = preg_replace('/:\d+$/', '', $c['address']);
+ $ips[preg_replace('/:\d+$/', '', $c['address'])] = true;
}
+ $ips = array_keys($ips);
array_multisort($sort, SORT_DESC, $stats['clients']);
- Render::openTag('div', ['class' => 'row']);
// Config
if (is_string($confAlts['config'])) {
Render::addTemplate('page-proxy-config', $confAlts);
@@ -295,10 +300,9 @@ class Page_Dnbd3 extends Page
unset($as);
Render::addTemplate('page-proxy-altservers', $confAlts);
}
- Render::closeTag('div');
- Render::openTag('div', ['class' => 'row']);
// Count locations
- $res = Database::simpleQuery('SELECT locationid, Count(*) AS cnt FROM machine WHERE clientip IN (:ips) GROUP BY locationid', compact('ips'));
+ $res = Database::simpleQuery("SELECT locationid, Count(*) AS cnt FROM machine
+ WHERE clientip IN (:ips) AND state IN ('IDLE', 'OCCUPIED') GROUP BY locationid", compact('ips'));
$locCount = Location::getLocationsAssoc();
$locCount[0] = array(
'locationname' => '/',
@@ -326,10 +330,17 @@ class Page_Dnbd3 extends Page
}
}
if ($showLocs) {
- $locCount = array_filter($locCount, function ($v) { return isset($v['keep']); });
- Render::addTemplate('page-proxy-loclist', array('list' => array_values($locCount)));
+ $stats['loclist'] = array_values(array_filter($locCount, function ($v) { return isset($v['keep']); }));
}
Render::addTemplate('page-proxy-clients', $stats);
+ $sort1 = $sort2 = [];
+ foreach ($stats['images'] as &$image) {
+ $image['size_s'] = Util::readableFileSize($image['size']);
+ $sort1[] = $image['users'];
+ $sort2[] = $image['name'];
+ }
+ array_multisort($sort1, SORT_NUMERIC | SORT_DESC, $sort2, SORT_ASC, $stats['images']);
+ Render::addTemplate('page-proxy-images', $stats);
Render::closeTag('div');
}