diff --git a/app/Http/Controllers/Admin/Servers/ServerTransferController.php b/app/Http/Controllers/Admin/Servers/ServerTransferController.php index fcdbe6efd..06f146d9e 100644 --- a/app/Http/Controllers/Admin/Servers/ServerTransferController.php +++ b/app/Http/Controllers/Admin/Servers/ServerTransferController.php @@ -2,17 +2,20 @@ namespace App\Http\Controllers\Admin\Servers; +use App\Exceptions\Http\Connection\DaemonConnectionException; use Carbon\CarbonImmutable; +use GuzzleHttp\Exception\TransferException; use Illuminate\Http\Request; use App\Models\Server; use Illuminate\Http\RedirectResponse; +use Illuminate\Support\Facades\Http; +use Lcobucci\JWT\Token\Plain; use Prologue\Alerts\AlertsMessageBag; use App\Models\ServerTransfer; use Illuminate\Database\ConnectionInterface; use App\Http\Controllers\Controller; use App\Services\Nodes\NodeJWTService; use App\Repositories\Eloquent\NodeRepository; -use App\Repositories\Daemon\DaemonTransferRepository; use App\Contracts\Repository\AllocationRepositoryInterface; class ServerTransferController extends Controller @@ -24,12 +27,30 @@ class ServerTransferController extends Controller private AlertsMessageBag $alert, private AllocationRepositoryInterface $allocationRepository, private ConnectionInterface $connection, - private DaemonTransferRepository $daemonTransferRepository, private NodeJWTService $nodeJWTService, private NodeRepository $nodeRepository ) { } + private function notify(Server $server, Plain $token): void + { + try { + Http::daemon($server->node)->post('/api/transfer', [ + 'json' => [ + 'server_id' => $server->uuid, + 'url' => $server->node->getConnectionAddress() . "/api/servers/$server->uuid/archive", + 'token' => 'Bearer ' . $token->toString(), + 'server' => [ + 'uuid' => $server->uuid, + 'start_on_completion' => false, + ], + ], + ])->toPsrResponse(); + } catch (TransferException $exception) { + throw new DaemonConnectionException($exception); + } + } + /** * Starts a transfer of a server to a new node. * @@ -81,7 +102,7 @@ class ServerTransferController extends Controller ->handle($transfer->newNode, $server->uuid, 'sha256'); // Notify the source node of the pending outgoing transfer. - $this->daemonTransferRepository->setServer($server)->notify($transfer->newNode, $token); + $this->notify($server, $token); return $transfer; }); diff --git a/app/Http/Controllers/Api/Remote/Servers/ServerTransferController.php b/app/Http/Controllers/Api/Remote/Servers/ServerTransferController.php index c87deba2c..175acffa1 100644 --- a/app/Http/Controllers/Api/Remote/Servers/ServerTransferController.php +++ b/app/Http/Controllers/Api/Remote/Servers/ServerTransferController.php @@ -3,9 +3,7 @@ namespace App\Http\Controllers\Api\Remote\Servers; use App\Models\Server; -use App\Repositories\Daemon\DaemonRepository; use App\Repositories\Daemon\DaemonServerRepository; -use GuzzleHttp\Exception\GuzzleException; use Illuminate\Http\Response; use Illuminate\Http\JsonResponse; use App\Models\Allocation; @@ -13,7 +11,6 @@ use Illuminate\Support\Facades\Log; use App\Models\ServerTransfer; use Illuminate\Database\ConnectionInterface; use App\Http\Controllers\Controller; -use Lcobucci\JWT\Token\Plain; use Symfony\Component\HttpKernel\Exception\ConflictHttpException; use App\Exceptions\Http\Connection\DaemonConnectionException; @@ -24,30 +21,10 @@ class ServerTransferController extends Controller */ public function __construct( private ConnectionInterface $connection, - private DaemonRepository $daemonRepository, private DaemonServerRepository $daemonServerRepository, ) { } - private function notify(DaemonRepository $repository, Server $server, Plain $token): void - { - try { - $repository->getHttpClient()->post('/api/transfer', [ - 'json' => [ - 'server_id' => $server->uuid, - 'url' => $server->node->getConnectionAddress() . "/api/servers/$server->uuid/archive", - 'token' => 'Bearer ' . $token->toString(), - 'server' => [ - 'uuid' => $server->uuid, - 'start_on_completion' => false, - ], - ], - ]); - } catch (GuzzleException $exception) { - throw new DaemonConnectionException($exception); - } - } - /** * The daemon notifies us about a transfer failure. *