Small replacement fixes
This commit is contained in:
parent
521aa203b8
commit
2aa06fc009
@ -2,17 +2,20 @@
|
|||||||
|
|
||||||
namespace App\Http\Controllers\Admin\Servers;
|
namespace App\Http\Controllers\Admin\Servers;
|
||||||
|
|
||||||
|
use App\Exceptions\Http\Connection\DaemonConnectionException;
|
||||||
use Carbon\CarbonImmutable;
|
use Carbon\CarbonImmutable;
|
||||||
|
use GuzzleHttp\Exception\TransferException;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use App\Models\Server;
|
use App\Models\Server;
|
||||||
use Illuminate\Http\RedirectResponse;
|
use Illuminate\Http\RedirectResponse;
|
||||||
|
use Illuminate\Support\Facades\Http;
|
||||||
|
use Lcobucci\JWT\Token\Plain;
|
||||||
use Prologue\Alerts\AlertsMessageBag;
|
use Prologue\Alerts\AlertsMessageBag;
|
||||||
use App\Models\ServerTransfer;
|
use App\Models\ServerTransfer;
|
||||||
use Illuminate\Database\ConnectionInterface;
|
use Illuminate\Database\ConnectionInterface;
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use App\Services\Nodes\NodeJWTService;
|
use App\Services\Nodes\NodeJWTService;
|
||||||
use App\Repositories\Eloquent\NodeRepository;
|
use App\Repositories\Eloquent\NodeRepository;
|
||||||
use App\Repositories\Daemon\DaemonTransferRepository;
|
|
||||||
use App\Contracts\Repository\AllocationRepositoryInterface;
|
use App\Contracts\Repository\AllocationRepositoryInterface;
|
||||||
|
|
||||||
class ServerTransferController extends Controller
|
class ServerTransferController extends Controller
|
||||||
@ -24,12 +27,30 @@ class ServerTransferController extends Controller
|
|||||||
private AlertsMessageBag $alert,
|
private AlertsMessageBag $alert,
|
||||||
private AllocationRepositoryInterface $allocationRepository,
|
private AllocationRepositoryInterface $allocationRepository,
|
||||||
private ConnectionInterface $connection,
|
private ConnectionInterface $connection,
|
||||||
private DaemonTransferRepository $daemonTransferRepository,
|
|
||||||
private NodeJWTService $nodeJWTService,
|
private NodeJWTService $nodeJWTService,
|
||||||
private NodeRepository $nodeRepository
|
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.
|
* Starts a transfer of a server to a new node.
|
||||||
*
|
*
|
||||||
@ -81,7 +102,7 @@ class ServerTransferController extends Controller
|
|||||||
->handle($transfer->newNode, $server->uuid, 'sha256');
|
->handle($transfer->newNode, $server->uuid, 'sha256');
|
||||||
|
|
||||||
// Notify the source node of the pending outgoing transfer.
|
// Notify the source node of the pending outgoing transfer.
|
||||||
$this->daemonTransferRepository->setServer($server)->notify($transfer->newNode, $token);
|
$this->notify($server, $token);
|
||||||
|
|
||||||
return $transfer;
|
return $transfer;
|
||||||
});
|
});
|
||||||
|
@ -3,9 +3,7 @@
|
|||||||
namespace App\Http\Controllers\Api\Remote\Servers;
|
namespace App\Http\Controllers\Api\Remote\Servers;
|
||||||
|
|
||||||
use App\Models\Server;
|
use App\Models\Server;
|
||||||
use App\Repositories\Daemon\DaemonRepository;
|
|
||||||
use App\Repositories\Daemon\DaemonServerRepository;
|
use App\Repositories\Daemon\DaemonServerRepository;
|
||||||
use GuzzleHttp\Exception\GuzzleException;
|
|
||||||
use Illuminate\Http\Response;
|
use Illuminate\Http\Response;
|
||||||
use Illuminate\Http\JsonResponse;
|
use Illuminate\Http\JsonResponse;
|
||||||
use App\Models\Allocation;
|
use App\Models\Allocation;
|
||||||
@ -13,7 +11,6 @@ use Illuminate\Support\Facades\Log;
|
|||||||
use App\Models\ServerTransfer;
|
use App\Models\ServerTransfer;
|
||||||
use Illuminate\Database\ConnectionInterface;
|
use Illuminate\Database\ConnectionInterface;
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use Lcobucci\JWT\Token\Plain;
|
|
||||||
use Symfony\Component\HttpKernel\Exception\ConflictHttpException;
|
use Symfony\Component\HttpKernel\Exception\ConflictHttpException;
|
||||||
use App\Exceptions\Http\Connection\DaemonConnectionException;
|
use App\Exceptions\Http\Connection\DaemonConnectionException;
|
||||||
|
|
||||||
@ -24,30 +21,10 @@ class ServerTransferController extends Controller
|
|||||||
*/
|
*/
|
||||||
public function __construct(
|
public function __construct(
|
||||||
private ConnectionInterface $connection,
|
private ConnectionInterface $connection,
|
||||||
private DaemonRepository $daemonRepository,
|
|
||||||
private DaemonServerRepository $daemonServerRepository,
|
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.
|
* The daemon notifies us about a transfer failure.
|
||||||
*
|
*
|
||||||
|
Loading…
x
Reference in New Issue
Block a user