From 67e6b6c9981207d7d658f2ad2bf1c39b75c099c7 Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Tue, 21 Sep 2021 16:52:06 +0200 Subject: [passthrough] New module for managing hardware passthrough for QEMU --- modules-available/statistics/pages/hints.inc.php | 77 ++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 modules-available/statistics/pages/hints.inc.php (limited to 'modules-available/statistics/pages') diff --git a/modules-available/statistics/pages/hints.inc.php b/modules-available/statistics/pages/hints.inc.php new file mode 100644 index 00000000..5c6acfbb --- /dev/null +++ b/modules-available/statistics/pages/hints.inc.php @@ -0,0 +1,77 @@ +addLocalColumn('Memory Slot Occupied'); + $q->addGlobalColumn('Memory Slot Count'); + $q->addGlobalColumn('Memory Maximum Capacity'); + $q->addMachineColumn('clientip'); + $q->addMachineColumn('hostname'); + $q->addWhere(false, 'Memory Installed Capacity', '<', 8 * 1024 * 1024 * 1024); + $list = []; + foreach ($q->query() as $row) { + if (HardwareParser::convertSize($row['Memory Installed Capacity'], 'M', false) + >= HardwareParser::convertSize($row['Memory Maximum Capacity'], 'M', false)) { + $row['size_class'] = 'danger'; + $list[] = $row; + } elseif ($row['Memory Slot Occupied'] < $row['Memory Slot Count']) { + $row['count_class'] = 'success'; + array_unshift($list, $row); + } else { + $list[] = $row; + } + } + Render::addTemplate('hints-ram-upgrade', ['list' => $list]); + } + + private static function showMemorySlow() + { + $q = new HardwareQuery(HardwareInfo::RAM_MODULE); + $q->addLocalColumn('Locator'); + $q->addLocalColumn('Bank Locator'); + $q->addGlobalColumn('Form Factor'); + $q->addGlobalColumn('Type'); + $q->addGlobalColumn('Size'); + $q->addGlobalColumn('Manufacturer'); + $q->addLocalColumn('Serial Number'); + $q->addMachineColumn('clientip'); + $q->addMachineColumn('hostname'); + $q->addCompare(true, 'Speed', '>', false, 'Configured Memory Speed'); + $list = $q->query()->fetchAll(); + Render::addTemplate('hints-ram-underclocked', ['list' => $list]); + } + + private static function showUnusedSpace() + { + $q = new HardwareQuery(HardwareInfo::HDD); + $q->addWhere(false, 'unused', '>', 2000000000); // 2 GB + $q->addMachineWhere('id44mb', '<', 20000); // 20 GB + $id44 = $q->query()->fetchAll(); + $q = new HardwareQuery(HardwareInfo::HDD); + $q->addWhere(false, 'unused', '>', 25000000000); // 25 GB + $q->addMachineWhere('id44mb', '>', 20000); // 20 GB + $q->addMachineWhere('id45mb', '<', 20000); // 20 GB + $id45 = $q->query()->fetchAll(); + Render::addTemplate('hints-hdd-grow', [ + 'id44' => $id44, + 'id45' => $id45, + ]); + } + +} \ No newline at end of file -- cgit v1.2.3-55-g7522