From 92527b0b2d8a76ee8ae368541c60d0a07c889dbc Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Wed, 26 Feb 2020 15:19:34 +0100 Subject: [backup/systemstatus] Show up/downloads in backup page Add AJAX API to dozmod module to query the fileserver status of dmsd. --- modules-available/dozmod/page.inc.php | 59 ++--------------------------------- 1 file changed, 2 insertions(+), 57 deletions(-) (limited to 'modules-available/dozmod/page.inc.php') diff --git a/modules-available/dozmod/page.inc.php b/modules-available/dozmod/page.inc.php index 67b791d1..57e5ca4c 100644 --- a/modules-available/dozmod/page.inc.php +++ b/modules-available/dozmod/page.inc.php @@ -5,7 +5,8 @@ class Page_DozMod extends Page /** @var bool true if we have a proper subpage */ private $haveSubPage = false; - private $validSections = ['expiredimages', 'mailconfig', 'templates', 'runtimeconfig', 'users', 'actionlog', 'networkshares', 'ldapfilters', 'runscripts', 'networkrules']; + private $validSections = ['expiredimages', 'mailconfig', 'templates', 'runtimeconfig', 'users', 'actionlog', + 'networkshares', 'ldapfilters', 'runscripts', 'networkrules', 'special']; private $section; @@ -15,8 +16,6 @@ class Page_DozMod extends Page return; /* different pages for different sections */ $this->section = Request::any('section', false, 'string'); - if ($this->section === 'blockstats') // HACK HACK - return; if ($this->section === false) { foreach ($this->validSections as $this->section) { if (User::hasPermission($this->section . '.*')) @@ -82,26 +81,6 @@ class Page_DozMod extends Page return; } - if ($this->section === 'blockstats') { - $this->showBlockStats(); - } - - } - - private function showBlockStats() - { - $res = Database::simpleQuery("SELECT blocksha1, blocksize, Count(*) AS blockcount FROM sat.imageblock" - . " GROUP BY blocksha1, blocksize HAVING blockcount > 1 ORDER BY blockcount DESC, blocksha1 ASC"); - $data = array('hashes' => array()); - $spaceWasted = 0; - while ($row = $res->fetch(PDO::FETCH_ASSOC)) { - $row['hash_hex'] = bin2hex($row['blocksha1']); - $row['blocksize_s'] = Util::readableFileSize($row['blocksize']); - $data['hashes'][] = $row; - $spaceWasted += $row['blocksize'] * ($row['blockcount'] - 1); - } - $data['spacewasted'] = Util::readableFileSize($spaceWasted); - Render::addTemplate('blockstats', $data); } protected function doAjax() @@ -114,40 +93,6 @@ class Page_DozMod extends Page return; } - $action = Request::post('action'); - - if ($action === 'getblockinfo') { - $this->ajaxGetBlockInfo(); - } - } - - private function ajaxGetBlockInfo() - { - $hash = Request::any('hash', false, 'string'); - $size = Request::any('size', false, 'string'); - if ($hash === false || $size === false) { - die('Missing parameter'); - } - if (!is_numeric($size) || strlen($hash) !== 40 || !preg_match('/^[a-f0-9]+$/i', $hash)) { - die('Malformed parameter'); - } - $res = Database::simpleQuery("SELECT i.displayname, v.createtime, v.filesize, Count(*) AS blockcount FROM sat.imageblock ib" - . " INNER JOIN sat.imageversion v USING (imageversionid)" - . " INNER JOIN sat.imagebase i USING (imagebaseid)" - . " WHERE ib.blocksha1 = :hash AND ib.blocksize = :size" - . " GROUP BY ib.imageversionid" - . " ORDER BY i.displayname ASC, v.createtime ASC", - array('hash' => hex2bin($hash), 'size' => $size), true); - if ($res === false) { - die('Database error: ' . Database::lastError()); - } - $data = array('rows' => array()); - while ($row = $res->fetch(PDO::FETCH_ASSOC)) { - $row['createtime_s'] = date('d.m.Y H:i', $row['createtime']); - $row['filesize_s'] = Util::readableFileSize($row['filesize']); - $data['rows'][] = $row; - } - die(Render::parse('blockstats-details', $data)); } } -- cgit v1.2.3-55-g7522