Refactor storage connection handling and project

initialization
This commit is contained in:
Andras Bacsai 2023-11-15 09:34:27 +01:00
parent 1f711d9281
commit b825d98b2d
7 changed files with 9 additions and 23 deletions

View File

@ -33,7 +33,7 @@ class Index extends Component
public ?string $remoteServerUser = 'root';
public ?Server $createdServer = null;
public Collection|array $projects = [];
public Collection $projects;
public ?int $selectedExistingProject = null;
public ?Project $createdProject = null;

View File

@ -64,21 +64,10 @@ public function submit()
}
$this->storage->team_id = currentTeam()->id;
$this->storage->testConnection();
$this->storage->is_usable = true;
$this->storage->save();
return redirect()->route('team.storages.show', $this->storage->uuid);
} catch (\Throwable $e) {
return handleError($e, $this);
}
}
private function test_s3_connection()
{
try {
$this->storage->testConnection();
return $this->emit('success', 'Connection is working. Tested with "ListObjectsV2" action.');
} catch (\Throwable $e) {
return handleError($e, $this);
}
}
}

View File

@ -32,7 +32,7 @@ class Form extends Component
public function test_s3_connection()
{
try {
$this->storage->testConnection();
$this->storage->testConnection(shouldSave: true);
return $this->emit('success', 'Connection is working. Tested with "ListObjectsV2" action.');
} catch (\Throwable $e) {
return handleError($e, $this);
@ -53,10 +53,7 @@ public function submit()
{
$this->validate();
try {
$this->storage->testConnection();
$this->emit('success', 'Connection is working. Tested with "ListObjectsV2" action.');
$this->storage->save();
$this->emit('success', 'Storage settings saved.');
$this->test_s3_connection();
} catch (\Throwable $e) {
return handleError($e, $this);
}

View File

@ -434,7 +434,7 @@ private function upload_to_s3(): void
// $region = $this->s3->region;
$bucket = $this->s3->bucket;
$endpoint = $this->s3->endpoint;
$this->s3->testConnection();
$this->s3->testConnection(shouldSave: true);
if (data_get($this->backup, 'database_type') === 'App\Models\ServiceDatabase') {
$network = $this->database->service->destination->network;
} else {

View File

@ -36,14 +36,13 @@ public function awsUrl()
return "{$this->endpoint}/{$this->bucket}";
}
public function testConnection()
public function testConnection(bool $shouldSave = false)
{
try {
set_s3_target($this);
Storage::disk('custom-s3')->files();
$this->unusable_email_sent = false;
$this->is_usable = true;
return;
} catch (\Throwable $e) {
$this->is_usable = false;
if ($this->unusable_email_sent === false && is_transactional_emails_active()) {
@ -65,7 +64,9 @@ public function testConnection()
throw $e;
} finally {
$this->save();
if ($shouldSave) {
$this->save();
}
}
}
}

View File

@ -511,7 +511,6 @@ function generateDeployWebhook($resource)
return $url;
}
function generateGitManualWebhook($resource, $type) {
ray($resource);
if ($resource->source_id !== 0 && !is_null($resource->source_id)) {
return null;
}

View File

@ -1,6 +1,6 @@
<div>
<h1>Create a new S3 Storage</h1>
<div class="subtitle ">S3 Storage used to save backups / files</div>
<div class="subtitle">S3 Storage used to save backups / files</div>
<form class="flex flex-col gap-2" wire:submit.prevent='submit'>
<div class="flex gap-2">
<x-forms.input label="Name" id="name" />