feat: cleanup sentinel on server deletion
fix: Sentinel should not be enabled on build servers
This commit is contained in:
17
app/Actions/Server/RemoveServer.php
Normal file
17
app/Actions/Server/RemoveServer.php
Normal file
@@ -0,0 +1,17 @@
|
||||
<?php
|
||||
|
||||
namespace App\Actions\Server;
|
||||
|
||||
use App\Models\Server;
|
||||
use Lorisleiva\Actions\Concerns\AsAction;
|
||||
|
||||
class RemoveServer
|
||||
{
|
||||
use AsAction;
|
||||
|
||||
public function handle(Server $server)
|
||||
{
|
||||
StopSentinel::run($server);
|
||||
$server->delete();
|
||||
}
|
||||
}
|
||||
@@ -52,6 +52,6 @@ class StartSentinel
|
||||
|
||||
$server->settings->is_sentinel_enabled = true;
|
||||
$server->settings->save();
|
||||
$server->sentinelUpdateAt();
|
||||
$server->sentinelHeartbeat();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,6 +13,6 @@ class StopSentinel
|
||||
public function handle(Server $server)
|
||||
{
|
||||
instant_remote_process(['docker rm -f coolify-sentinel'], $server, false);
|
||||
$server->sentinelUpdateAt(isReset: true);
|
||||
$server->sentinelHeartbeat(isReset: true);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Http\Controllers\Api;
|
||||
|
||||
use App\Actions\Server\RemoveServer;
|
||||
use App\Actions\Server\ValidateServer;
|
||||
use App\Enums\ProxyStatus;
|
||||
use App\Enums\ProxyTypes;
|
||||
@@ -725,7 +726,7 @@ class ServersController extends Controller
|
||||
if ($server->definedResources()->count() > 0) {
|
||||
return response()->json(['message' => 'Server has resources, so you need to delete them before.'], 400);
|
||||
}
|
||||
$server->delete();
|
||||
RemoveServer::dispatch($server);
|
||||
|
||||
return response()->json(['message' => 'Server deleted.']);
|
||||
}
|
||||
|
||||
@@ -96,7 +96,7 @@ class PushServerUpdateJob implements ShouldQueue
|
||||
|
||||
$this->serverStatus();
|
||||
|
||||
$this->server->sentinelUpdateAt();
|
||||
$this->server->sentinelHeartbeat();
|
||||
|
||||
$this->containers = collect(data_get($data, 'containers'));
|
||||
if ($this->containers->isEmpty()) {
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Livewire\Server;
|
||||
|
||||
use App\Actions\Server\RemoveServer;
|
||||
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
@@ -27,7 +28,7 @@ class Delete extends Component
|
||||
|
||||
return;
|
||||
}
|
||||
$this->server->delete();
|
||||
RemoveServer::run($this->server);
|
||||
|
||||
return redirect()->route('server.index');
|
||||
} catch (\Throwable $e) {
|
||||
|
||||
@@ -157,7 +157,7 @@ class Form extends Component
|
||||
StopSentinel::dispatch($this->server);
|
||||
$this->server->settings->is_metrics_enabled = false;
|
||||
$this->server->settings->save();
|
||||
$this->server->sentinelUpdateAt(isReset: true);
|
||||
$this->server->sentinelHeartbeat(isReset: true);
|
||||
} else {
|
||||
StartSentinel::run($this->server);
|
||||
}
|
||||
|
||||
@@ -556,7 +556,7 @@ $schema://$host {
|
||||
return $encrypted;
|
||||
}
|
||||
|
||||
public function sentinelUpdateAt(bool $isReset = false)
|
||||
public function sentinelHeartbeat(bool $isReset = false)
|
||||
{
|
||||
$this->sentinel_updated_at = $isReset ? now()->subMinutes(6000) : now();
|
||||
$this->save();
|
||||
@@ -568,7 +568,7 @@ $schema://$host {
|
||||
|
||||
public function isSentinelEnabled()
|
||||
{
|
||||
return $this->isMetricsEnabled() || $this->isServerApiEnabled();
|
||||
return $this->isMetricsEnabled() || $this->isServerApiEnabled() || !$this->isBuildServer();
|
||||
}
|
||||
|
||||
public function isMetricsEnabled()
|
||||
|
||||
Reference in New Issue
Block a user