diff --git a/app/AbstractSensor.php b/app/AbstractSensor.php deleted file mode 100644 index db74caf9aad5e542220a7a5ed7072e9807b7917f..0000000000000000000000000000000000000000 --- a/app/AbstractSensor.php +++ /dev/null @@ -1,43 +0,0 @@ -<?php - -namespace App; - -/** - * Description of AbstractSensor - * - * @author tibo - */ -abstract class AbstractSensor implements Sensor -{ - - private $server; - - public function __construct(?Server $server = null) - { - $this->server = $server; - } - - protected function server() : Server - { - return $this->server; - } - - public function name() : string - { - return (new \ReflectionClass($this))->getShortName(); - } - - public static function getColorForStatus(int $status) : string - { - switch ($status) { - case 0: - return 'success'; - case 10: - return 'warning'; - case 20: - return 'danger'; - default: - return 'secondary'; - } - } -} diff --git a/app/Sensor.php b/app/Sensor.php index 154cbaa3ba3d7f11dc93397474a253b580675ed1..e60166e7c2d50f69fcc085c254792e0516ef57b2 100644 --- a/app/Sensor.php +++ b/app/Sensor.php @@ -2,14 +2,44 @@ namespace App; -interface Sensor +/** + * Base (abstract) class for sensors. + * + * @author tibo + */ +abstract class Sensor { - public function status(array $records) : int; - public function report(array $records) : string; + + private $server; + + public function __construct(?Server $server = null) + { + $this->server = $server; + } + + protected function server() : Server + { + return $this->server; + } /** - * Get the name of this sensor (e.g meminfo, cpuload, heartbeat) + * Get the name of the sensor. Can be overridden by sub-classes to provide + * a more meaningful name. + * * @return string */ - public function name() : string; + public function name() : string + { + return (new \ReflectionClass($this))->getShortName(); + } + + /** + * Compute the status code from an array of Record. + */ + abstract public function status(array $records) : int; + + /** + * Create the HTML report describing the result of this sensor's analysis. + */ + abstract public function report(array $records) : string; } diff --git a/app/Sensor/CPUtemperature.php b/app/Sensor/CPUtemperature.php index c615e815abb2d4b56c94497522c39ee552105cff..d22b89c045f75d74f066e46163f2ef9b568d12b0 100644 --- a/app/Sensor/CPUtemperature.php +++ b/app/Sensor/CPUtemperature.php @@ -2,12 +2,14 @@ namespace App\Sensor; +use \App\Sensor; + /** * Description of Update * * @author helha */ -class CPUtemperature extends \App\AbstractSensor +class CPUtemperature extends Sensor { const REGEXP = "/^(Core \d+):\s+\+(\d+\.\d+)/m"; diff --git a/app/Sensor/ClientVersion.php b/app/Sensor/ClientVersion.php index d860aa8b16c306c7d4da6549c4b16ff8c5b94585..6b629d155d4da67b5bf060c60560d47d723bc07a 100644 --- a/app/Sensor/ClientVersion.php +++ b/app/Sensor/ClientVersion.php @@ -2,6 +2,8 @@ namespace App\Sensor; +use \App\Sensor; + use GuzzleHttp\Client; use GuzzleHttp\Exception\RequestException; @@ -10,7 +12,7 @@ use GuzzleHttp\Exception\RequestException; * * @author tibo */ -class ClientVersion extends \App\AbstractSensor +class ClientVersion extends Sensor { const MANIFEST = "https://download.cylab.be/monitor-php-client/manifest.json"; diff --git a/app/Sensor/Date.php b/app/Sensor/Date.php index ad6dbbf3731a25b2975bab811852e5db59aa2be0..bc78b4f49589c42d92bb7afb1442fdf7054ab6d4 100644 --- a/app/Sensor/Date.php +++ b/app/Sensor/Date.php @@ -2,6 +2,7 @@ namespace App\Sensor; +use \App\Sensor; use App\Record; use App\Status; @@ -10,7 +11,7 @@ use App\Status; * * @author tibo */ -class Date extends \App\AbstractSensor +class Date extends Sensor { public function report(array $records) : string { diff --git a/app/Sensor/DiskEvolution.php b/app/Sensor/DiskEvolution.php index 0429065be3161ab665698c2b5b1257f242c6dcbc..28663a4bb8f55fabfcd5dab39ed240dff034726e 100644 --- a/app/Sensor/DiskEvolution.php +++ b/app/Sensor/DiskEvolution.php @@ -2,7 +2,9 @@ namespace App\Sensor; -class DiskEvolution extends \App\AbstractSensor +use \App\Sensor; + +class DiskEvolution extends Sensor { public function report(array $records) : string { diff --git a/app/Sensor/Disks.php b/app/Sensor/Disks.php index c812fccf081a2e3bb0b2a1f4584ad92fc19eef90..9030a9df4995df936198d656e5541746ebd5b61d 100644 --- a/app/Sensor/Disks.php +++ b/app/Sensor/Disks.php @@ -2,12 +2,14 @@ namespace App\Sensor; +use \App\Sensor; + /** * Description of Update * * @author tibo */ -class Disks extends \App\AbstractSensor +class Disks extends Sensor { const REGEXP = "/\\n([A-z\/0-9:\\-\\.]+)\s*([0-9]+)\s*([0-9]+)\s*([0-9]+)\s*([0-9]+)%\s*([A-z\/0-9]+)/"; diff --git a/app/Sensor/Heartbeat.php b/app/Sensor/Heartbeat.php index bfff411fcc27f05cb053bf9cbeab286d3de01ea3..bf25216faf96706d4d368d33c7b0369ffb3e755c 100644 --- a/app/Sensor/Heartbeat.php +++ b/app/Sensor/Heartbeat.php @@ -2,12 +2,14 @@ namespace App\Sensor; +use \App\Sensor; + /** * Description of Reboot * * @author tibo */ -class Heartbeat extends \App\AbstractSensor +class Heartbeat extends Sensor { //put your code here public function report(array $records) : string diff --git a/app/Sensor/Ifconfig.php b/app/Sensor/Ifconfig.php index 3f6266ab133f0bd843954d3486d6da6f8c887a7a..fc0ef923c9a85e01a2de9aab287dbee2fb3d713a 100644 --- a/app/Sensor/Ifconfig.php +++ b/app/Sensor/Ifconfig.php @@ -2,7 +2,7 @@ namespace App\Sensor; -use \App\AbstractSensor; +use \App\Sensor; use \App\Record; /** @@ -10,7 +10,7 @@ use \App\Record; * * @author tibo */ -class Ifconfig extends AbstractSensor +class Ifconfig extends Sensor { public function report(array $records) : string diff --git a/app/Sensor/Inodes.php b/app/Sensor/Inodes.php index 250dc98c95f5cbb9c855131390440c52a1398255..44e3017c5816f101011e331906ea492ea6a47e81 100644 --- a/app/Sensor/Inodes.php +++ b/app/Sensor/Inodes.php @@ -7,7 +7,7 @@ namespace App\Sensor; * * @author tibo */ -class Inodes extends \App\AbstractSensor +class Inodes extends \App\Sensor { const REGEXP = "/\\n([A-z\/0-9:\\-\\.]+)\s*([0-9]+)\s*([0-9]+)\s*([0-9]+)\s*([0-9]+)%\s*([A-z\/0-9]+)/"; diff --git a/app/Sensor/ListeningPorts.php b/app/Sensor/ListeningPorts.php index 0ab1b8811b71a1954cf4fde8723c033c866ee1e6..ada94ecc0affa34221a8e8d88c9e46d32ff81bcb 100644 --- a/app/Sensor/ListeningPorts.php +++ b/app/Sensor/ListeningPorts.php @@ -7,7 +7,7 @@ namespace App\Sensor; * * @author tibo */ -class ListeningPorts extends \App\AbstractSensor +class ListeningPorts extends \App\Sensor { const REGEXP = "/(tcp6|tcp|udp6|udp)\s*\d\s*\d\s*(\S*):(\d*).*LISTEN\s*(\S*)/m"; diff --git a/app/Sensor/LoadAvg.php b/app/Sensor/LoadAvg.php index 78b6f1522e3dbb8334b0fc82d21d40043d4585f9..17ca99abd649d538621d4b9cee9ee9bcc5d34ac9 100644 --- a/app/Sensor/LoadAvg.php +++ b/app/Sensor/LoadAvg.php @@ -2,7 +2,7 @@ namespace App\Sensor; -use \App\AbstractSensor; +use \App\Sensor; use \App\Status; /** @@ -10,7 +10,7 @@ use \App\Status; * * @author tibo */ -class LoadAvg extends AbstractSensor +class LoadAvg extends Sensor { /** diff --git a/app/Sensor/MemInfo.php b/app/Sensor/MemInfo.php index d64062e2fa0a0801af2e8fd3b6db82a6c36e7ff1..5ea0f8e5c67149f6cb4e5e4545eca9c725f68309 100644 --- a/app/Sensor/MemInfo.php +++ b/app/Sensor/MemInfo.php @@ -2,14 +2,14 @@ namespace App\Sensor; -use \App\AbstractSensor; +use \App\Sensor; /** * Description of MemInfo * * @author tibo */ -class MemInfo extends AbstractSensor +class MemInfo extends Sensor { public function report(array $records) : string diff --git a/app/Sensor/Netstat.php b/app/Sensor/Netstat.php index a059dcdc261ae985b9f386a5ef72d7d92efd864a..9c7513b6330bd072388efc994e44b7e21da4e24f 100644 --- a/app/Sensor/Netstat.php +++ b/app/Sensor/Netstat.php @@ -2,14 +2,14 @@ namespace App\Sensor; -use \App\AbstractSensor; +use \App\Sensor; /** * Parse netstat * * @author tibo */ -class Netstat extends AbstractSensor +class Netstat extends Sensor { public function report(array $records) : string diff --git a/app/Sensor/Perccli.php b/app/Sensor/Perccli.php index 752ffe270d0879672c4a15c52d4dda1c1d36979d..70a3bf1f78f02e2f50ea44d1780906f65003b490 100644 --- a/app/Sensor/Perccli.php +++ b/app/Sensor/Perccli.php @@ -7,7 +7,7 @@ namespace App\Sensor; * * @author tibo */ -class Perccli extends \App\AbstractSensor +class Perccli extends \App\Sensor { const REGEXP = "/(\d+:\d+)\s+\d+\s+(\w+)\s+\d+\s+(.*(GB|TB))\s+\w+\s+(\w+)/"; diff --git a/app/Sensor/Reboot.php b/app/Sensor/Reboot.php index 5b131fa5c79adb64101519611e55c6f0df2bdd2e..1053b320e2a13e95a8e490b287e9d9df52dbf5ae 100644 --- a/app/Sensor/Reboot.php +++ b/app/Sensor/Reboot.php @@ -7,7 +7,7 @@ namespace App\Sensor; * * @author tibo */ -class Reboot extends \App\AbstractSensor +class Reboot extends \App\Sensor { public function report(array $records) : string diff --git a/app/Sensor/Ssacli.php b/app/Sensor/Ssacli.php index 949c7329cacb8bd1177de54f28a723198fefcb9b..3c0ea91f82b0e4daabf6b504355c348541745f8d 100644 --- a/app/Sensor/Ssacli.php +++ b/app/Sensor/Ssacli.php @@ -1,11 +1,5 @@ <?php -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ - namespace App\Sensor; /** @@ -13,7 +7,7 @@ namespace App\Sensor; * * @author tibo */ -class Ssacli extends \App\AbstractSensor +class Ssacli extends \App\Sensor { const REGEXP = "/\s*physicaldrive .*\(port (.*):box (\d*):bay (\d*), (.*), (.*), (\w*)\)/"; diff --git a/app/Sensor/USBtemperature.php b/app/Sensor/USBtemperature.php index af00f8605aa7d3933b504c738ecced1b50e150cf..acf6a2f7df2947680af3c1e53b89962f13657c88 100644 --- a/app/Sensor/USBtemperature.php +++ b/app/Sensor/USBtemperature.php @@ -7,7 +7,7 @@ namespace App\Sensor; * * @author helha */ -class USBtemperature extends \App\AbstractSensor +class USBtemperature extends \App\Sensor { //get device responce (8 bytes) : const REGEXP = "/^(80 80)\s*([A-z\/0-9]+) \s*([A-z\/0-9]+)/m"; diff --git a/app/Sensor/Updates.php b/app/Sensor/Updates.php index 54b06d00b1c8425ecc59c86e85f5d80d31b80211..43ed148c5f07effd356ed8498f3797c8cd25ebf9 100644 --- a/app/Sensor/Updates.php +++ b/app/Sensor/Updates.php @@ -7,7 +7,7 @@ namespace App\Sensor; * * @author tibo */ -class Updates extends \App\AbstractSensor +class Updates extends \App\Sensor { const REGEXP = "/(\d+)\spackages? can be updated\.\n(\d+)\supdates? (is a|are) security updates?./";