diff --git a/app/Sensor/ClientVersion.php b/app/Sensor/ClientVersion.php index 3295f66cfa7b34c2cffcd61516c1dd232fc906bd..92f182e9959a0b7b60d850288b9e1de192a82f39 100644 --- a/app/Sensor/ClientVersion.php +++ b/app/Sensor/ClientVersion.php @@ -16,7 +16,7 @@ class ClientVersion extends \App\AbstractSensor const MANIFEST = "https://download.cylab.be/monitor-php-client/manifest.json"; private static $manifest = null; - public function manifest() + public static function manifest() { if (!is_null(self::$manifest)) { return self::$manifest; @@ -44,12 +44,12 @@ class ClientVersion extends \App\AbstractSensor */ public function latestVersion() : string { - return $this->manifest()["version"]; + return self::manifest()["version"]; } - public function latestUrl() : string + public static function latestUrl() : string { - return $this->manifest()["url"]; + return self::manifest()["url"]; } public function report(array $records) : string diff --git a/app/Sensor/Date.php b/app/Sensor/Date.php index 2c8f74ef019be073af04e0204d3037816e5d9832..ad6dbbf3731a25b2975bab811852e5db59aa2be0 100644 --- a/app/Sensor/Date.php +++ b/app/Sensor/Date.php @@ -3,6 +3,7 @@ namespace App\Sensor; use App\Record; +use App\Status; /** * Description of Reboot @@ -18,16 +19,20 @@ class Date extends \App\AbstractSensor public function status(array $records) : int { + if (count($records) == 0) { + return Status::UNKNOWN; + } + $delta = $this->delta(end($records)); if ($delta == null) { - return \App\Status::UNKNOWN; + return Status::UNKNOWN; } if (abs($delta) > 10) { - return \App\Status::WARNING; + return Status::WARNING; } - return \App\Status::OK; + return Status::OK; } public function delta(Record $record) diff --git a/app/ServerInfo.php b/app/ServerInfo.php index ae9a4a1fcde77cba85cc97d12f690e7155bb0db4..dd77ed6223ee9fd94bb13d3b5f3c87e414fe608f 100644 --- a/app/ServerInfo.php +++ b/app/ServerInfo.php @@ -13,6 +13,9 @@ class ServerInfo private $record; + /** + * @param Record $record + */ public function __construct(Record $record) { $this->record = $record; @@ -184,10 +187,4 @@ class ServerInfo // return $sensor->installedVersion([$this->record]); return ""; } - - public function lastClientUrl() - { - $client_sensor = new \App\Sensor\ClientVersion(); - return $client_sensor->latestUrl(); - } } diff --git a/composer.json b/composer.json index 130f9566f8b80af14925ca0464abbab9e52e5e9c..9ec9d7016843568f7973eae1f34b4417a85e2e0b 100644 --- a/composer.json +++ b/composer.json @@ -5,7 +5,7 @@ "license": "MIT", "type": "project", "require": { - "php": ">=7.1.3", + "php": ">=7.4", "doctrine/dbal": "^2.9", "fideloper/proxy": "~4.0", "guzzlehttp/guzzle": "~6.0", diff --git a/composer.lock b/composer.lock index 23b9682b0d081069a130cffc37241d8ba14908c2..300a5fee4b662ce6b98cb1a1452a78ebdf5415d8 100644 --- a/composer.lock +++ b/composer.lock @@ -1603,26 +1603,26 @@ }, { "name": "league/mime-type-detection", - "version": "1.12.0", + "version": "1.13.0", "source": { "type": "git", "url": "https://github.com/thephpleague/mime-type-detection.git", - "reference": "c7f2872fb273bf493811473dafc88d60ae829f48" + "reference": "a6dfb1194a2946fcdc1f38219445234f65b35c96" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/c7f2872fb273bf493811473dafc88d60ae829f48", - "reference": "c7f2872fb273bf493811473dafc88d60ae829f48", + "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/a6dfb1194a2946fcdc1f38219445234f65b35c96", + "reference": "a6dfb1194a2946fcdc1f38219445234f65b35c96", "shasum": "" }, "require": { "ext-fileinfo": "*", - "php": "^7.2 || ^8.0" + "php": "^7.4 || ^8.0" }, "require-dev": { "friendsofphp/php-cs-fixer": "^3.2", "phpstan/phpstan": "^0.12.68", - "phpunit/phpunit": "^8.5.8 || ^9.3" + "phpunit/phpunit": "^8.5.8 || ^9.3 || ^10.0" }, "type": "library", "autoload": { @@ -1643,7 +1643,7 @@ "description": "Mime-type detection for Flysystem", "support": { "issues": "https://github.com/thephpleague/mime-type-detection/issues", - "source": "https://github.com/thephpleague/mime-type-detection/tree/1.12.0" + "source": "https://github.com/thephpleague/mime-type-detection/tree/1.13.0" }, "funding": [ { @@ -1655,7 +1655,7 @@ "type": "tidelift" } ], - "time": "2023-08-03T07:14:11+00:00" + "time": "2023-08-05T12:09:49+00:00" }, { "name": "monolog/monolog", @@ -2166,20 +2166,20 @@ }, { "name": "psr/container", - "version": "1.1.1", + "version": "1.1.2", "source": { "type": "git", "url": "https://github.com/php-fig/container.git", - "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf" + "reference": "513e0666f7216c7459170d56df27dfcefe1689ea" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/container/zipball/8622567409010282b7aeebe4bb841fe98b58dcaf", - "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf", + "url": "https://api.github.com/repos/php-fig/container/zipball/513e0666f7216c7459170d56df27dfcefe1689ea", + "reference": "513e0666f7216c7459170d56df27dfcefe1689ea", "shasum": "" }, "require": { - "php": ">=7.2.0" + "php": ">=7.4.0" }, "type": "library", "autoload": { @@ -2208,9 +2208,9 @@ ], "support": { "issues": "https://github.com/php-fig/container/issues", - "source": "https://github.com/php-fig/container/tree/1.1.1" + "source": "https://github.com/php-fig/container/tree/1.1.2" }, - "time": "2021-03-05T17:36:06+00:00" + "time": "2021-11-05T16:50:12+00:00" }, { "name": "psr/http-message", @@ -6314,25 +6314,30 @@ }, { "name": "phpdocumentor/type-resolver", - "version": "1.6.1", + "version": "1.6.2", "source": { "type": "git", "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "77a32518733312af16a44300404e945338981de3" + "reference": "48f445a408c131e38cab1c235aa6d2bb7a0bb20d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/77a32518733312af16a44300404e945338981de3", - "reference": "77a32518733312af16a44300404e945338981de3", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/48f445a408c131e38cab1c235aa6d2bb7a0bb20d", + "reference": "48f445a408c131e38cab1c235aa6d2bb7a0bb20d", "shasum": "" }, "require": { - "php": "^7.2 || ^8.0", + "php": "^7.4 || ^8.0", "phpdocumentor/reflection-common": "^2.0" }, "require-dev": { "ext-tokenizer": "*", - "psalm/phar": "^4.8" + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-phpunit": "^1.1", + "phpunit/phpunit": "^9.5", + "rector/rector": "^0.13.9", + "vimeo/psalm": "^4.25" }, "type": "library", "extra": { @@ -6358,9 +6363,9 @@ "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", "support": { "issues": "https://github.com/phpDocumentor/TypeResolver/issues", - "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.6.1" + "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.6.2" }, - "time": "2022-03-15T21:29:03+00:00" + "time": "2022-10-14T12:47:21+00:00" }, { "name": "phpspec/prophecy", diff --git a/resources/views/server/show.blade.php b/resources/views/server/show.blade.php index e779c60ce3567073980ac3fac4a2917c39df227c..227e6fad76fbeecb67f38e21f70a5a9513444e0f 100644 --- a/resources/views/server/show.blade.php +++ b/resources/views/server/show.blade.php @@ -13,6 +13,7 @@ window.monitorServerToken = "{{ $server->read_token }}"; <div class="col-md-4"> <div class="card"> <div class="card-body"> + @if ($server->hasData()) <p>{!! $server->status()->badge() !!}</p> <p> @@ -24,17 +25,17 @@ window.monitorServerToken = "{{ $server->read_token }}"; <p>Client version: {{ $server->info()->clientVersion() }}</p> <p>Uptime: {{ $server->info()->uptime() }}</p> - </div> - </div> - - <div class="card"> - <div class="card-body"> + <p>{{ $server->info()->manufacturer() }} {{ $server->info()->productName() }}</p> <p><small>{{ $server->info()->uuid() }}</small></p> <p>{{ $server->info()->cpuinfo()["cpu"] }} ({{ $server->info()->cpuinfo()["threads"] }} threads)</p> <p>Memory: {{ $server->info()->meminfo() }}</p> <p>{{ $server->info()->lsb() }}</p> + + @else + <p>No information to show for now...</p> + @endif </div> </div> @@ -113,7 +114,7 @@ window.monitorServerToken = "{{ $server->read_token }}"; </div> <div class="card-body"> <p>Download client application:</p> - <pre style="font-size: 75%; overflow: hidden"><code>wget {{ $server->info()->lastClientUrl() }} + <pre style="font-size: 75%; overflow: hidden"><code>wget {{ \App\Sensor\ClientVersion::latestUrl() }} unzip monitor-*.zip </code></pre> <p>Move it to /usr/bin:</p>