server list, logs removed, driver/plan wip

This commit is contained in:
2025-03-31 12:41:09 +00:00
parent 678581b822
commit 75f2ecb7bf
14 changed files with 164 additions and 47 deletions

View File

@@ -0,0 +1,15 @@
<?php
namespace App\Data\Deployments;
class Plan
{
/**
* @param Step[] $steps
*/
public function __construct(
public array $steps = [],
) {
//
}
}

View File

@@ -0,0 +1,11 @@
<?php
namespace App\Data\Deployments;
class Step
{
public function __construct(
) {
//
}
}

View File

@@ -0,0 +1,8 @@
<?php
namespace App\Drivers;
interface DatabaseDriver extends Driver
{
//
}

8
app/Drivers/Driver.php Normal file
View File

@@ -0,0 +1,8 @@
<?php
namespace App\Drivers;
interface Driver
{
//
}

View File

@@ -0,0 +1,10 @@
<?php
namespace App\Drivers\Postgres;
use App\Drivers\DatabaseDriver;
class Postgres17Driver implements DatabaseDriver
{
// @todo
}

View File

@@ -0,0 +1,11 @@
<?php
namespace App\Enums;
enum ServiceStatus: string
{
case RUNNING = 'running';
case STOPPED = 'stopped';
case ERROR = 'error';
case UNKNOWN = 'unknown';
}

View File

@@ -92,13 +92,6 @@ class ServerController extends Controller
sudoPassword: $sudoPassword,
))->delay(now()->addSeconds(5));
logger('server created');
logger($createdServer->id);
logger($createdServer->ipv4);
logger($createdServer->ipv6);
logger($createdServer->rootPassword);
logger($sudoPassword);
session()->flash('sudo_password', $sudoPassword);
return redirect()->route('servers.show', ['organisation' => $organisation->id, 'server' => $server->id]);

View File

@@ -43,21 +43,12 @@ class ProvisionServer implements ShouldQueue, ShouldBeEncrypted
]);
logger('executing script on server');
if (! $result->isSuccessful()) {
logger('failed to execute script on server');
logger($result->getOutput());
logger($result->getErrorOutput());
logger($result->getExitCode());
$this->server->update([
'status' => ServerStatus::PROVISIONING_FAILED,
]);
return;
}
logger('script executed on server');
logger($result->getOutput());
logger($result->getErrorOutput());
logger($result->getExitCode());
$this->server->update([
'status' => ServerStatus::PROVISIONING,
]);

View File

@@ -34,12 +34,6 @@ class WaitForServerToConnect implements ShouldQueue, ShouldBeEncrypted
->execute('echo "Connected"');
if (! $process->isSuccessful()) {
logger('root pw: ' . $this->rootPassword);
logger('server not reachable');
logger('exit code' . $process->getExitCode());
logger('output');
logger($process->getOutput());
logger($process->getErrorOutput());
$this->release(15);
return;
}

View File

@@ -2,6 +2,8 @@
namespace App\Models;
use App\Drivers\Driver;
use App\Enums\ServiceStatus;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
@@ -10,6 +12,13 @@ class Service extends Model
{
protected $guarded = [];
protected function casts(): array
{
return [
'status' => ServiceStatus::class,
];
}
public function server(): BelongsTo
{
return $this->belongsTo(Server::class);
@@ -19,4 +28,9 @@ class Service extends Model
{
return $this->hasMany(Slice::class);
}
public function driver()//: Driver
{
// @todo. This is the class that controls the service
}
}