1
0
Fork 0
mirror of synced 2024-09-29 08:51:28 +13:00

feat: Adjusting Doctor to new pools

This commit is contained in:
Binyamin Yawitz 2024-06-06 20:52:30 -04:00
parent 0bd9426aa7
commit ba629e94ef
No known key found for this signature in database

View file

@ -6,10 +6,13 @@ use Appwrite\ClamAV\Network;
use Appwrite\Utopia\Queue\Connections; use Appwrite\Utopia\Queue\Connections;
use Utopia\CLI\Console; use Utopia\CLI\Console;
use Utopia\Config\Config; use Utopia\Config\Config;
use Utopia\Database\Adapter\MariaDB;
use Utopia\Database\Adapter\MySQL;
use Utopia\Domains\Domain; use Utopia\Domains\Domain;
use Utopia\Http\Http; use Utopia\Http\Http;
use Utopia\Logger\Logger; use Utopia\Logger\Logger;
use Utopia\Platform\Action; use Utopia\Platform\Action;
use Utopia\Queue\Connection\Redis;
use Utopia\Registry\Registry; use Utopia\Registry\Registry;
use Utopia\Storage\Device\Local; use Utopia\Storage\Device\Local;
use Utopia\Storage\Storage; use Utopia\Storage\Storage;
@ -119,24 +122,41 @@ class Doctor extends Action
//throw $th; //throw $th;
} }
$pools = $register->get('pools'); /** @var \Utopia\Pools\Group $pools */ /** @var array $pools */
$pools = $register->get('pools');
$configs = [ $configs = [
'Console.DB' => Config::getParam('pools-console'), 'Console.DB' => [
'Projects.DB' => Config::getParam('pools-database'), 'prefix' => 'console',
'databases' => Config::getParam('pools-console')
],
'Database.DB' => [
'prefix' => 'database',
'databases' => Config::getParam('pools-database')
],
]; ];
foreach ($configs as $key => $config) { foreach ($configs as $key => $config) {
foreach ($config as $database) { foreach ($config['databases'] as $database) {
try { try {
$connection = $pools->get($database)->pop(); $pool = $pools['pools-' . $config['prefix'] . '-' . $database]['pool'];
$connections->add($connection); $dsn = $pools['pools-' . $config['prefix'] . '-' . $database]['dsn'];
$adapter = $connection->getResource();
$connection = $pool->get();
$connections->add($connection, $pool);
$adapter = match ($dsn->getScheme()) {
'mariadb' => new MariaDB($connection),
'mysql' => new MySQL($connection),
default => null
};
$adapter->setDatabase($dsn->getPath());
if ($adapter->ping()) { if ($adapter->ping()) {
Console::success('🟢 ' . str_pad("{$key}({$database})", 50, '.') . 'connected'); Console::success('🟢 ' . str_pad("$key({$database})", 50, '.') . 'connected');
} else { } else {
Console::error('🔴 ' . str_pad("{$key}({$database})", 47, '.') . 'disconnected'); Console::error('🔴 ' . str_pad("$key({$database})", 47, '.') . 'disconnected');
} }
} catch (\Throwable $th) { } catch (\Throwable $th) {
Console::error('🔴 ' . str_pad("{$key}.({$database})", 47, '.') . 'disconnected'); Console::error('🔴 ' . str_pad("{$key}.({$database})", 47, '.') . 'disconnected');
@ -144,27 +164,39 @@ class Doctor extends Action
} }
} }
$pools = $register->get('pools'); /** @var \Utopia\Pools\Group $pools */ /** @var array $pools */
$pools = $register->get('pools');
$configs = [ $configs = [
'Cache' => Config::getParam('pools-cache'), 'Cache' => [
'Queue' => Config::getParam('pools-queue'), 'prefix' => 'cache',
'PubSub' => Config::getParam('pools-pubsub'), 'databases' => Config::getParam('pools-cache')
],
'Queue' => [
'prefix' => 'queue',
'databases' => Config::getParam('pools-queue')
],
'PubSub' => [
'prefix' => 'pubsub',
'databases' => Config::getParam('pools-pubsub')
],
]; ];
foreach ($configs as $key => $config) { foreach ($configs as $key => $config) {
foreach ($config as $pool) { foreach ($config['databases'] as $database) {
try { try {
$connection = $pools->get($pool)->pop(); $pool = $pools['pools-' . $config['prefix'] . '-' . $database]['pool'];
$connections->add($connection); $dsn = $pools['pools-' . $config['prefix'] . '-' . $database]['dsn'];
$adapter = $connection->getResource(); $connection = $pool->get();
$connections->add($connection, $pool);
$adapter = new Redis($dsn->getHost(), $dsn->getPort());
if ($adapter->ping()) { if ($adapter->ping()) {
Console::success('🟢 ' . str_pad("{$key}({$pool})", 50, '.') . 'connected'); Console::success('🟢 ' . str_pad("{$key}({$database})", 50, '.') . 'connected');
} else { } else {
Console::error('🔴 ' . str_pad("{$key}({$pool})", 47, '.') . 'disconnected'); Console::error('🔴 ' . str_pad("{$key}({$database})", 47, '.') . 'disconnected');
} }
} catch (\Throwable $th) { } catch (\Throwable $th) {
Console::error('🔴 ' . str_pad("{$key}({$pool})", 47, '.') . 'disconnected'); Console::error('🔴 ' . str_pad("{$key}({$database})", 47, '.') . 'disconnected');
} }
} }
} }