fix: able to change localhost's private key
This commit is contained in:
@@ -5,6 +5,7 @@ use App\Data\CoolifyTaskArgs;
|
||||
use App\Enums\ActivityTypes;
|
||||
use App\Models\Application;
|
||||
use App\Models\ApplicationDeploymentQueue;
|
||||
use App\Models\PrivateKey;
|
||||
use App\Models\Server;
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
@@ -148,3 +149,44 @@ function decode_remote_command_output(?ApplicationDeploymentQueue $application_d
|
||||
|
||||
return $formatted;
|
||||
}
|
||||
|
||||
function refreshPrivateKey(PrivateKey $private_key)
|
||||
{
|
||||
foreach ($private_key->servers as $server) {
|
||||
// Delete the old ssh mux file to force a new one to be created
|
||||
Storage::disk('ssh-mux')->delete($server->muxFilename());
|
||||
if (session('currentTeam')->id) {
|
||||
session('currentTeam')->privateKeys = PrivateKey::where('team_id', session('currentTeam')->id)->get();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function validateServer(Server $server)
|
||||
{
|
||||
try {
|
||||
refreshPrivateKey($server->privateKey);
|
||||
$uptime = instant_remote_process(['uptime'], $server);
|
||||
if (!$uptime) {
|
||||
$uptime = 'Server not reachable.';
|
||||
throw new \Exception('Server not reachable.');
|
||||
}
|
||||
$server->settings->is_reachable = true;
|
||||
|
||||
$dockerVersion = instant_remote_process(['docker version|head -2|grep -i version'], $server, false);
|
||||
if (!$dockerVersion) {
|
||||
$dockerVersion = 'Not installed.';
|
||||
throw new \Exception('Docker not installed.');
|
||||
}
|
||||
$server->settings->is_usable = true;
|
||||
return [
|
||||
"uptime" => $uptime,
|
||||
"dockerVersion" => $dockerVersion,
|
||||
];
|
||||
} catch (\Exception $e) {
|
||||
$server->settings->is_reachable = false;
|
||||
$server->settings->is_usable = false;
|
||||
throw $e;
|
||||
} finally {
|
||||
$server->settings->save();
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user