fix: sentinel config changes restarts sentinel
This commit is contained in:
@@ -9,8 +9,9 @@ class StartSentinel
|
|||||||
{
|
{
|
||||||
use AsAction;
|
use AsAction;
|
||||||
|
|
||||||
public function handle(Server $server, $version = 'next', bool $restart = false)
|
public function handle(Server $server, bool $restart = false)
|
||||||
{
|
{
|
||||||
|
$version = get_latest_sentinel_version();
|
||||||
if ($server->isSwarm() || $server->isBuildServer()) {
|
if ($server->isSwarm() || $server->isBuildServer()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ class PullSentinelImageJob implements ShouldBeEncrypted, ShouldQueue
|
|||||||
$local_version = '0.0.0';
|
$local_version = '0.0.0';
|
||||||
}
|
}
|
||||||
if (version_compare($local_version, $version, '<')) {
|
if (version_compare($local_version, $version, '<')) {
|
||||||
StartSentinel::run($this->server, $version, true);
|
StartSentinel::run($this->server, true);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -97,7 +97,7 @@ class Form extends Component
|
|||||||
try {
|
try {
|
||||||
$this->server->settings->generateSentinelToken();
|
$this->server->settings->generateSentinelToken();
|
||||||
$this->server->settings->refresh();
|
$this->server->settings->refresh();
|
||||||
$this->restartSentinel(notification: false);
|
// $this->restartSentinel(notification: false);
|
||||||
$this->dispatch('success', 'Token regenerated & Sentinel restarted.');
|
$this->dispatch('success', 'Token regenerated & Sentinel restarted.');
|
||||||
} catch (\Throwable $e) {
|
} catch (\Throwable $e) {
|
||||||
return handleError($e, $this);
|
return handleError($e, $this);
|
||||||
@@ -161,6 +161,7 @@ class Form extends Component
|
|||||||
public function instantSave()
|
public function instantSave()
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
|
|
||||||
$this->validate();
|
$this->validate();
|
||||||
refresh_server_connection($this->server->privateKey);
|
refresh_server_connection($this->server->privateKey);
|
||||||
$this->validateServer(false);
|
$this->validateServer(false);
|
||||||
@@ -169,13 +170,11 @@ class Form extends Component
|
|||||||
$this->server->save();
|
$this->server->save();
|
||||||
$this->dispatch('success', 'Server updated.');
|
$this->dispatch('success', 'Server updated.');
|
||||||
$this->dispatch('refreshServerShow');
|
$this->dispatch('refreshServerShow');
|
||||||
$this->server->settings->save();
|
|
||||||
|
|
||||||
} catch (\Throwable $e) {
|
} catch (\Throwable $e) {
|
||||||
$this->server->settings->refresh();
|
$this->server->settings->refresh();
|
||||||
|
|
||||||
return handleError($e, $this);
|
return handleError($e, $this);
|
||||||
}
|
} finally {}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function restartSentinel($notification = true)
|
public function restartSentinel($notification = true)
|
||||||
@@ -185,10 +184,9 @@ class Form extends Component
|
|||||||
$this->validate([
|
$this->validate([
|
||||||
'server.settings.sentinel_custom_url' => 'required|url',
|
'server.settings.sentinel_custom_url' => 'required|url',
|
||||||
]);
|
]);
|
||||||
$version = get_latest_sentinel_version();
|
$this->server->restartSentinel();
|
||||||
StartSentinel::run($this->server, $version, true);
|
|
||||||
if ($notification) {
|
if ($notification) {
|
||||||
$this->dispatch('success', 'Sentinel started.');
|
$this->dispatch('success', 'Sentinel restarted.');
|
||||||
}
|
}
|
||||||
} catch (\Throwable $e) {
|
} catch (\Throwable $e) {
|
||||||
return handleError($e, $this);
|
return handleError($e, $this);
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
namespace App\Models;
|
namespace App\Models;
|
||||||
|
|
||||||
use App\Actions\Server\InstallDocker;
|
use App\Actions\Server\InstallDocker;
|
||||||
|
use App\Actions\Server\StartSentinel;
|
||||||
use App\Enums\ProxyTypes;
|
use App\Enums\ProxyTypes;
|
||||||
use App\Jobs\PullSentinelImageJob;
|
use App\Jobs\PullSentinelImageJob;
|
||||||
use Illuminate\Database\Eloquent\Builder;
|
use Illuminate\Database\Eloquent\Builder;
|
||||||
@@ -1265,4 +1266,13 @@ $schema://$host {
|
|||||||
{
|
{
|
||||||
return str($this->ip)->contains(':');
|
return str($this->ip)->contains(':');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function restartSentinel()
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
StartSentinel::dispatch($this,true);
|
||||||
|
} catch (\Throwable $e) {
|
||||||
|
loggy('Error restarting Sentinel: '.$e->getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -70,6 +70,18 @@ class ServerSetting extends Model
|
|||||||
loggy('Error creating server setting: '.$e->getMessage());
|
loggy('Error creating server setting: '.$e->getMessage());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
static::updated(function ($setting) {
|
||||||
|
if (
|
||||||
|
$setting->isDirty('sentinel_token') ||
|
||||||
|
$setting->isDirty('sentinel_custom_url') ||
|
||||||
|
$setting->isDirty('sentinel_metrics_refresh_rate_seconds') ||
|
||||||
|
$setting->isDirty('sentinel_metrics_history_days') ||
|
||||||
|
$setting->isDirty('sentinel_push_interval_seconds')
|
||||||
|
) {
|
||||||
|
loggy('Restarting Sentinel');
|
||||||
|
$setting->server->restartSentinel();
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public function generateSentinelToken(bool $save = true)
|
public function generateSentinelToken(bool $save = true)
|
||||||
|
|||||||
Reference in New Issue
Block a user