Skip to content

Commit

Permalink
Fix redis connection check (#698)
Browse files Browse the repository at this point in the history
  • Loading branch information
Boy132 authored Nov 1, 2024
1 parent f793b49 commit 382dcb3
Showing 1 changed file with 13 additions and 10 deletions.
23 changes: 13 additions & 10 deletions app/Filament/Pages/Installer/Steps/RedisStep.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@
use Filament\Forms\Get;
use Filament\Notifications\Notification;
use Filament\Support\Exceptions\Halt;
use Illuminate\Support\Facades\Redis;
use Illuminate\Foundation\Application;
use Illuminate\Redis\RedisManager;

class RedisStep
{
Expand Down Expand Up @@ -47,26 +48,28 @@ public static function make(PanelInstaller $installer): Step
->revealable()
->default(config('database.redis.default.password')),
])
->afterValidation(function (Get $get) use ($installer) {
if (!self::testConnection($get('env_redis.REDIS_HOST'), $get('env_redis.REDIS_PORT'), $get('env_redis.REDIS_USERNAME'), $get('env_redis.REDIS_PASSWORD'))) {
->afterValidation(function (Get $get, Application $app) use ($installer) {
if (!self::testConnection($app, $get('env_redis.REDIS_HOST'), $get('env_redis.REDIS_PORT'), $get('env_redis.REDIS_USERNAME'), $get('env_redis.REDIS_PASSWORD'))) {
throw new Halt('Redis connection failed');
}

$installer->writeToEnv('env_redis');
});
}

private static function testConnection(string $host, null|string|int $port, ?string $username, ?string $password): bool
private static function testConnection(Application $app, string $host, null|string|int $port, ?string $username, ?string $password): bool
{
try {
config()->set('database.redis._panel_install_test', [
'host' => $host,
'port' => $port,
'username' => $username,
'password' => $password,
$redis = new RedisManager($app, 'predis', [
'default' => [
'host' => $host,
'port' => $port,
'username' => $username,
'password' => $password,
],
]);

Redis::connection('_panel_install_test')->command('ping');
$redis->connection()->command('ping');
} catch (Exception $exception) {
Notification::make()
->title('Redis connection failed')
Expand Down

0 comments on commit 382dcb3

Please sign in to comment.