From 2b86d1dde730cdc19bf05adaa012ba6b9d767b85 Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Thu, 11 May 2023 10:03:10 +0200 Subject: [statistics] Add filter for HDD rpm --- .../statistics/inc/hardwareparser.inc.php | 2 +- .../statistics/inc/statisticsfilter.inc.php | 21 +++++++++++++++++++++ modules-available/statistics/lang/de/filters.json | 2 +- modules-available/statistics/lang/en/filters.json | 2 +- 4 files changed, 24 insertions(+), 3 deletions(-) (limited to 'modules-available') diff --git a/modules-available/statistics/inc/hardwareparser.inc.php b/modules-available/statistics/inc/hardwareparser.inc.php index f7a6545b..83a0d752 100644 --- a/modules-available/statistics/inc/hardwareparser.inc.php +++ b/modules-available/statistics/inc/hardwareparser.inc.php @@ -109,7 +109,7 @@ class HardwareParser } // Count, size (unitless) if (is_numeric($val) && preg_match('/^-?[0-9]+$/', $val) - && preg_match('/used|occupied|count|number|speed|width|size|capacity|temperature|_start|_value|_thresh|_worst|_time/', $key)) { + && preg_match('/used|occupied|count|number|speed|width|size|capacity|temperature|_start|_value|_thresh|_worst|_time|_rate/', $key)) { return (int)$val; } // Date diff --git a/modules-available/statistics/inc/statisticsfilter.inc.php b/modules-available/statistics/inc/statisticsfilter.inc.php index 55e88880..7b00fb12 100644 --- a/modules-available/statistics/inc/statisticsfilter.inc.php +++ b/modules-available/statistics/inc/statisticsfilter.inc.php @@ -278,6 +278,7 @@ abstract class StatisticsFilter 'standbycrash' => new StandbyCrashStatisticsFilter(), 'pcidev' => new PciDeviceStatisticsFilter(), 'nicspeed' => new NicSpeedStatisticsFilter(), + 'hddrpm' => new HddRpmStatisticsFilter(), //'anydev' => new AnyHardwarePropStatisticsFilter(), ]; if (Module::isAvailable('locations')) { @@ -731,6 +732,26 @@ class NicSpeedStatisticsFilter extends StatisticsFilter } +class HddRpmStatisticsFilter extends StatisticsFilter +{ + + public function __construct() + { + parent::__construct(null, StatisticsFilter::OP_ORDINAL, '7200'); + } + + public function whereClause(string $operator, $argument, array &$args, array &$joins): string + { + $shw = StatisticsFilter::addHardwareJoin($args, $joins, HardwareInfo::HDD); + $_ = []; + $c = new HardwareQueryColumn(true, 'rotation_rate'); + $c->addCondition($operator, $argument); + $c->generate($joins, $_, $args, [], $shw); + return '1'; + } + +} + class SystemModelStatisticsFilter extends StatisticsFilter { diff --git a/modules-available/statistics/lang/de/filters.json b/modules-available/statistics/lang/de/filters.json index b5c9a4cf..ef423daa 100644 --- a/modules-available/statistics/lang/de/filters.json +++ b/modules-available/statistics/lang/de/filters.json @@ -6,6 +6,7 @@ "firstseen": "Erster Boot", "gbram": "RAM (GB)", "hddgb": "ID44 (GB)", + "hddrpm": "HDD U\/min", "hostname": "Hostname", "kvmstate": "Virtualisierung", "lastboot": "Letzter Boot", @@ -15,7 +16,6 @@ "live_swapfree": "swap frei (MB)", "live_tmpfree": "ID44 frei (MB)", "location": "Raum\/Ort", - "logintime": "Letzter Login", "macaddr": "MAC-Adresse", "machineuuid": "System-UUID", "nicspeed": "NIC-Geschwindigkeit", diff --git a/modules-available/statistics/lang/en/filters.json b/modules-available/statistics/lang/en/filters.json index 713fdcfa..79372115 100644 --- a/modules-available/statistics/lang/en/filters.json +++ b/modules-available/statistics/lang/en/filters.json @@ -6,6 +6,7 @@ "firstseen": "First boot", "gbram": "RAM (GB)", "hddgb": "ID44 (GB)", + "hddrpm": "HDD rpm", "hostname": "Host name", "kvmstate": "Virtualization", "lastboot": "Last boot", @@ -15,7 +16,6 @@ "live_swapfree": "swap free (MB)", "live_tmpfree": "ID44 free (MB)", "location": "Room\/Location", - "logintime": "Last login", "macaddr": "MAC address", "machineuuid": "System UUID", "nicspeed": "NIC speed", -- cgit v1.2.3-55-g7522