mirror of
https://github.com/vitodeploy/vito.git
synced 2025-04-19 09:51:37 +00:00
32 lines
796 B
PHP
32 lines
796 B
PHP
<?php
|
|
|
|
namespace App\Actions\Server;
|
|
|
|
use App\Enums\ServerStatus;
|
|
use App\Facades\Notifier;
|
|
use App\Models\Server;
|
|
use App\Notifications\ServerDisconnected;
|
|
use Throwable;
|
|
|
|
class CheckConnection
|
|
{
|
|
public function check(Server $server): Server
|
|
{
|
|
$status = $server->status;
|
|
try {
|
|
$server->ssh()->connect();
|
|
$server->refresh();
|
|
if (in_array($status, [ServerStatus::DISCONNECTED, ServerStatus::UPDATING])) {
|
|
$server->status = ServerStatus::READY;
|
|
$server->save();
|
|
}
|
|
} catch (Throwable) {
|
|
$server->status = ServerStatus::DISCONNECTED;
|
|
$server->save();
|
|
Notifier::send($server, new ServerDisconnected($server));
|
|
}
|
|
|
|
return $server;
|
|
}
|
|
}
|