refactor(actions): standardize method naming for network and configuration deletion across application and service classes

This commit is contained in:
Andras Bacsai
2025-04-30 18:30:43 +02:00
parent ed0961e0dc
commit 019ed43448
24 changed files with 123 additions and 117 deletions

View File

@@ -30,7 +30,7 @@ class StopApplication
$application->stopContainers($containersToStop, $server); $application->stopContainers($containersToStop, $server);
if ($application->build_pack === 'dockercompose') { if ($application->build_pack === 'dockercompose') {
$application->delete_connected_networks($application->uuid); $application->deleteConnectedNetworks();
} }
if ($dockerCleanup) { if ($dockerCleanup) {

View File

@@ -48,7 +48,7 @@ class DeleteService
} }
if ($deleteConnectedNetworks) { if ($deleteConnectedNetworks) {
$service->delete_connected_networks($service->uuid); $service->deleteConnectedNetworks();
} }
instant_remote_process(["docker rm -f $service->uuid"], $server, throwError: false); instant_remote_process(["docker rm -f $service->uuid"], $server, throwError: false);
@@ -56,7 +56,7 @@ class DeleteService
throw new \Exception($e->getMessage()); throw new \Exception($e->getMessage());
} finally { } finally {
if ($deleteConfigurations) { if ($deleteConfigurations) {
$service->delete_configurations(); $service->deleteConfigurations();
} }
foreach ($service->applications()->get() as $application) { foreach ($service->applications()->get() as $application) {
$application->forceDelete(); $application->forceDelete();

View File

@@ -24,7 +24,7 @@ class StopService
$service->stopContainers($containersToStop, $server); $service->stopContainers($containersToStop, $server);
if ($isDeleteOperation) { if ($isDeleteOperation) {
$service->delete_connected_networks($service->uuid); $service->deleteConnectedNetworks();
if ($dockerCleanup) { if ($dockerCleanup) {
CleanupDocker::dispatch($server, true); CleanupDocker::dispatch($server, true);
} }

View File

@@ -12,21 +12,22 @@ class ApplicationStatusChanged implements ShouldBroadcast
{ {
use Dispatchable, InteractsWithSockets, SerializesModels; use Dispatchable, InteractsWithSockets, SerializesModels;
public $teamId; public ?int $teamId = null;
public function __construct($teamId = null) public function __construct($teamId = null)
{ {
if (is_null($teamId)) { if (is_null($teamId) && auth()->check() && auth()->user()->currentTeam()) {
$teamId = auth()->user()->currentTeam()->id ?? null; $teamId = auth()->user()->currentTeam()->id;
}
if (is_null($teamId)) {
throw new \Exception('Team id is null');
} }
$this->teamId = $teamId; $this->teamId = $teamId;
} }
public function broadcastOn(): array public function broadcastOn(): array
{ {
if (is_null($this->teamId)) {
return [];
}
return [ return [
new PrivateChannel("team.{$this->teamId}"), new PrivateChannel("team.{$this->teamId}"),
]; ];

View File

@@ -12,21 +12,22 @@ class BackupCreated implements ShouldBroadcast
{ {
use Dispatchable, InteractsWithSockets, SerializesModels; use Dispatchable, InteractsWithSockets, SerializesModels;
public $teamId; public ?int $teamId = null;
public function __construct($teamId = null) public function __construct($teamId = null)
{ {
if (is_null($teamId)) { if (is_null($teamId) && auth()->check() && auth()->user()->currentTeam()) {
$teamId = auth()->user()->currentTeam()->id ?? null; $teamId = auth()->user()->currentTeam()->id;
}
if (is_null($teamId)) {
throw new \Exception('Team id is null');
} }
$this->teamId = $teamId; $this->teamId = $teamId;
} }
public function broadcastOn(): array public function broadcastOn(): array
{ {
if (is_null($this->teamId)) {
return [];
}
return [ return [
new PrivateChannel("team.{$this->teamId}"), new PrivateChannel("team.{$this->teamId}"),
]; ];

View File

@@ -12,21 +12,22 @@ class CloudflareTunnelConfigured implements ShouldBroadcast
{ {
use Dispatchable, InteractsWithSockets, SerializesModels; use Dispatchable, InteractsWithSockets, SerializesModels;
public $teamId; public ?int $teamId = null;
public function __construct($teamId = null) public function __construct($teamId = null)
{ {
if (is_null($teamId)) { if (is_null($teamId) && auth()->check() && auth()->user()->currentTeam()) {
$teamId = auth()->user()->currentTeam()->id ?? null; $teamId = auth()->user()->currentTeam()->id;
}
if (is_null($teamId)) {
throw new \Exception('Team id is null');
} }
$this->teamId = $teamId; $this->teamId = $teamId;
} }
public function broadcastOn(): array public function broadcastOn(): array
{ {
if (is_null($this->teamId)) {
return [];
}
return [ return [
new PrivateChannel("team.{$this->teamId}"), new PrivateChannel("team.{$this->teamId}"),
]; ];

View File

@@ -7,27 +7,27 @@ use Illuminate\Broadcasting\PrivateChannel;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast; use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
use Illuminate\Foundation\Events\Dispatchable; use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Queue\SerializesModels; use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Facades\Auth;
class DatabaseProxyStopped implements ShouldBroadcast class DatabaseProxyStopped implements ShouldBroadcast
{ {
use Dispatchable, InteractsWithSockets, SerializesModels; use Dispatchable, InteractsWithSockets, SerializesModels;
public $teamId; public ?int $teamId = null;
public function __construct($teamId = null) public function __construct($teamId = null)
{ {
if (is_null($teamId)) { if (is_null($teamId) && auth()->check() && auth()->user()->currentTeam()) {
$teamId = Auth::user()?->currentTeam()?->id ?? null; $teamId = auth()->user()->currentTeam()->id;
}
if (is_null($teamId)) {
throw new \Exception('Team id is null');
} }
$this->teamId = $teamId; $this->teamId = $teamId;
} }
public function broadcastOn(): array public function broadcastOn(): array
{ {
if (is_null($this->teamId)) {
return [];
}
return [ return [
new PrivateChannel("team.{$this->teamId}"), new PrivateChannel("team.{$this->teamId}"),
]; ];

View File

@@ -13,28 +13,24 @@ class DatabaseStatusChanged implements ShouldBroadcast
{ {
use Dispatchable, InteractsWithSockets, SerializesModels; use Dispatchable, InteractsWithSockets, SerializesModels;
public $userId = null; public int|string|null $userId = null;
public function __construct($userId = null) public function __construct($userId = null)
{ {
if (is_null($userId)) { if (is_null($userId)) {
$userId = Auth::id() ?? null; $userId = Auth::id() ?? null;
} }
if (is_null($userId)) {
return false;
}
$this->userId = $userId; $this->userId = $userId;
} }
public function broadcastOn(): ?array public function broadcastOn(): ?array
{ {
if (! is_null($this->userId)) { if (is_null($this->userId)) {
return [];
}
return [ return [
new PrivateChannel("user.{$this->userId}"), new PrivateChannel("user.{$this->userId}"),
]; ];
} }
return null;
}
} }

View File

@@ -12,18 +12,22 @@ class FileStorageChanged implements ShouldBroadcast
{ {
use Dispatchable, InteractsWithSockets, SerializesModels; use Dispatchable, InteractsWithSockets, SerializesModels;
public $teamId; public ?int $teamId = null;
public function __construct($teamId = null) public function __construct($teamId = null)
{ {
if (is_null($teamId)) { if (is_null($teamId) && auth()->check() && auth()->user()->currentTeam()) {
throw new \Exception('Team id is null'); $teamId = auth()->user()->currentTeam()->id;
} }
$this->teamId = $teamId; $this->teamId = $teamId;
} }
public function broadcastOn(): array public function broadcastOn(): array
{ {
if (is_null($this->teamId)) {
return [];
}
return [ return [
new PrivateChannel("team.{$this->teamId}"), new PrivateChannel("team.{$this->teamId}"),
]; ];

View File

@@ -12,21 +12,22 @@ class ProxyStatusChanged implements ShouldBroadcast
{ {
use Dispatchable, InteractsWithSockets, SerializesModels; use Dispatchable, InteractsWithSockets, SerializesModels;
public $teamId; public ?int $teamId = null;
public function __construct($teamId = null) public function __construct($teamId = null)
{ {
if (is_null($teamId)) { if (is_null($teamId) && auth()->check() && auth()->user()->currentTeam()) {
$teamId = auth()->user()->currentTeam()->id ?? null; $teamId = auth()->user()->currentTeam()->id;
}
if (is_null($teamId)) {
throw new \Exception('Team id is null');
} }
$this->teamId = $teamId; $this->teamId = $teamId;
} }
public function broadcastOn(): array public function broadcastOn(): array
{ {
if (is_null($this->teamId)) {
return [];
}
return [ return [
new PrivateChannel("team.{$this->teamId}"), new PrivateChannel("team.{$this->teamId}"),
]; ];

View File

@@ -12,21 +12,22 @@ class ScheduledTaskDone implements ShouldBroadcast
{ {
use Dispatchable, InteractsWithSockets, SerializesModels; use Dispatchable, InteractsWithSockets, SerializesModels;
public $teamId; public ?int $teamId = null;
public function __construct($teamId = null) public function __construct($teamId = null)
{ {
if (is_null($teamId)) { if (is_null($teamId) && auth()->check() && auth()->user()->currentTeam()) {
$teamId = auth()->user()->currentTeam()->id ?? null; $teamId = auth()->user()->currentTeam()->id;
}
if (is_null($teamId)) {
throw new \Exception('Team id is null');
} }
$this->teamId = $teamId; $this->teamId = $teamId;
} }
public function broadcastOn(): array public function broadcastOn(): array
{ {
if (is_null($this->teamId)) {
return [];
}
return [ return [
new PrivateChannel("team.{$this->teamId}"), new PrivateChannel("team.{$this->teamId}"),
]; ];

View File

@@ -13,27 +13,24 @@ class ServiceStatusChanged implements ShouldBroadcast
{ {
use Dispatchable, InteractsWithSockets, SerializesModels; use Dispatchable, InteractsWithSockets, SerializesModels;
public ?string $userId = null; public int|string|null $userId = null;
public function __construct($userId = null) public function __construct($userId = null)
{ {
if (is_null($userId)) { if (is_null($userId)) {
$userId = Auth::id() ?? null; $userId = Auth::id() ?? null;
} }
if (is_null($userId)) {
return false;
}
$this->userId = $userId; $this->userId = $userId;
} }
public function broadcastOn(): ?array public function broadcastOn(): ?array
{ {
if (! is_null($this->userId)) { if (is_null($this->userId)) {
return [];
}
return [ return [
new PrivateChannel("user.{$this->userId}"), new PrivateChannel("user.{$this->userId}"),
]; ];
} }
return null;
}
} }

View File

@@ -12,15 +12,21 @@ class TestEvent implements ShouldBroadcast
{ {
use Dispatchable, InteractsWithSockets, SerializesModels; use Dispatchable, InteractsWithSockets, SerializesModels;
public $teamId; public ?int $teamId = null;
public function __construct() public function __construct()
{ {
if (auth()->check() && auth()->user()->currentTeam()) {
$this->teamId = auth()->user()->currentTeam()->id; $this->teamId = auth()->user()->currentTeam()->id;
} }
}
public function broadcastOn(): array public function broadcastOn(): array
{ {
if (is_null($this->teamId)) {
return [];
}
return [ return [
new PrivateChannel("team.{$this->teamId}"), new PrivateChannel("team.{$this->teamId}"),
]; ];

View File

@@ -42,10 +42,8 @@ class DeleteResourceJob implements ShouldBeEncrypted, ShouldQueue
public function handle() public function handle()
{ {
try { try {
$persistentStorages = collect();
switch ($this->resource->type()) { switch ($this->resource->type()) {
case 'application': case 'application':
$persistentStorages = $this->resource?->persistentStorages()?->get();
StopApplication::run($this->resource, previewDeployments: true); StopApplication::run($this->resource, previewDeployments: true);
break; break;
case 'standalone-postgresql': case 'standalone-postgresql':
@@ -56,7 +54,6 @@ class DeleteResourceJob implements ShouldBeEncrypted, ShouldQueue
case 'standalone-keydb': case 'standalone-keydb':
case 'standalone-dragonfly': case 'standalone-dragonfly':
case 'standalone-clickhouse': case 'standalone-clickhouse':
$persistentStorages = $this->resource?->persistentStorages()?->get();
StopDatabase::run($this->resource, true); StopDatabase::run($this->resource, true);
break; break;
case 'service': case 'service':
@@ -64,11 +61,6 @@ class DeleteResourceJob implements ShouldBeEncrypted, ShouldQueue
DeleteService::run($this->resource, $this->deleteConfigurations, $this->deleteVolumes, $this->dockerCleanup, $this->deleteConnectedNetworks); DeleteService::run($this->resource, $this->deleteConfigurations, $this->deleteVolumes, $this->dockerCleanup, $this->deleteConnectedNetworks);
break; break;
} }
if ($this->deleteVolumes && $this->resource->type() !== 'service') {
$this->resource->delete_volumes($persistentStorages);
$this->resource->persistentStorages()->delete();
}
$isDatabase = $this->resource instanceof StandalonePostgresql $isDatabase = $this->resource instanceof StandalonePostgresql
|| $this->resource instanceof StandaloneRedis || $this->resource instanceof StandaloneRedis
|| $this->resource instanceof StandaloneMongodb || $this->resource instanceof StandaloneMongodb
@@ -79,29 +71,33 @@ class DeleteResourceJob implements ShouldBeEncrypted, ShouldQueue
|| $this->resource instanceof StandaloneClickhouse; || $this->resource instanceof StandaloneClickhouse;
if ($this->deleteConfigurations) { if ($this->deleteConfigurations) {
$this->resource->delete_configurations(); // rename to FileStorages $this->resource->deleteConfigurations();
$this->resource->fileStorages()->delete();
} }
if ($this->resource->type() === 'service') {
$this->resource->tags()->detach();
} else {
if ($this->deleteVolumes) {
$this->resource->deleteVolumes();
$this->resource->persistentStorages()->delete();
}
$this->resource->fileStorages()->delete();
if ($isDatabase) { if ($isDatabase) {
$this->resource->sslCertificates()->delete(); $this->resource->sslCertificates()->delete();
$this->resource->scheduledBackups()->delete(); $this->resource->scheduledBackups()->delete();
$this->resource->environment_variables()->delete();
$this->resource->tags()->detach(); $this->resource->tags()->detach();
} }
$server = data_get($this->resource, 'server') ?? data_get($this->resource, 'destination.server');
if (($this->dockerCleanup || $isDatabase) && $server) {
CleanupDocker::dispatch($server, true);
} }
$this->resource->environment_variables()->delete();
if ($this->deleteConnectedNetworks && ! $isDatabase) { if ($this->deleteConnectedNetworks && ($this->resource->type() === 'service' || $this->resource->type() === 'application')) {
$this->resource?->delete_connected_networks($this->resource->uuid); $this->resource->deleteConnectedNetworks();
} }
} catch (\Throwable $e) { } catch (\Throwable $e) {
throw $e; throw $e;
} finally { } finally {
$this->resource->forceDelete(); $this->resource->forceDelete();
if ($this->dockerCleanup) { if ($this->dockerCleanup) {
$server = data_get($this->resource, 'server') ?? data_get($this->resource, 'destination.server');
CleanupDocker::dispatch($server, true); CleanupDocker::dispatch($server, true);
} }
Artisan::queue('cleanup:stucked-resources'); Artisan::queue('cleanup:stucked-resources');

View File

@@ -278,7 +278,7 @@ class Application extends BaseModel
} }
} }
public function delete_configurations() public function deleteConfigurations()
{ {
$server = data_get($this, 'destination.server'); $server = data_get($this, 'destination.server');
$workdir = $this->workdir(); $workdir = $this->workdir();
@@ -287,8 +287,9 @@ class Application extends BaseModel
} }
} }
public function delete_volumes(?Collection $persistentStorages) public function deleteVolumes()
{ {
$persistentStorages = $this->persistentStorages()->get() ?? collect();
if ($this->build_pack === 'dockercompose') { if ($this->build_pack === 'dockercompose') {
$server = data_get($this, 'destination.server'); $server = data_get($this, 'destination.server');
instant_remote_process(["cd {$this->dirOnServer()} && docker compose down -v"], $server, false); instant_remote_process(["cd {$this->dirOnServer()} && docker compose down -v"], $server, false);
@@ -303,8 +304,9 @@ class Application extends BaseModel
} }
} }
public function delete_connected_networks($uuid) public function deleteConnectedNetworks()
{ {
$uuid = $this->uuid;
$server = data_get($this, 'destination.server'); $server = data_get($this, 'destination.server');
instant_remote_process(["docker network disconnect {$uuid} coolify-proxy"], $server, false); instant_remote_process(["docker network disconnect {$uuid} coolify-proxy"], $server, false);
instant_remote_process(["docker network rm {$uuid}"], $server, false); instant_remote_process(["docker network rm {$uuid}"], $server, false);

View File

@@ -166,7 +166,7 @@ class Service extends BaseModel
} }
} }
public function delete_configurations() public function deleteConfigurations()
{ {
$server = data_get($this, 'destination.server'); $server = data_get($this, 'destination.server');
$workdir = $this->workdir(); $workdir = $this->workdir();
@@ -175,11 +175,11 @@ class Service extends BaseModel
} }
} }
public function delete_connected_networks($uuid) public function deleteConnectedNetworks()
{ {
$server = data_get($this, 'destination.server'); $server = data_get($this, 'destination.server');
instant_remote_process(["docker network disconnect {$uuid} coolify-proxy"], $server, false); instant_remote_process(["docker network disconnect {$this->uuid} coolify-proxy"], $server, false);
instant_remote_process(["docker network rm {$uuid}"], $server, false); instant_remote_process(["docker network rm {$this->uuid}"], $server, false);
} }
public function getStatusAttribute() public function getStatusAttribute()

View File

@@ -3,7 +3,6 @@
namespace App\Models; namespace App\Models;
use Illuminate\Database\Eloquent\Casts\Attribute; use Illuminate\Database\Eloquent\Casts\Attribute;
use Illuminate\Database\Eloquent\Collection;
use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Database\Eloquent\SoftDeletes;
@@ -94,7 +93,7 @@ class StandaloneClickhouse extends BaseModel
return database_configuration_dir()."/{$this->uuid}"; return database_configuration_dir()."/{$this->uuid}";
} }
public function delete_configurations() public function deleteConfigurations()
{ {
$server = data_get($this, 'destination.server'); $server = data_get($this, 'destination.server');
$workdir = $this->workdir(); $workdir = $this->workdir();
@@ -103,8 +102,9 @@ class StandaloneClickhouse extends BaseModel
} }
} }
public function delete_volumes(Collection $persistentStorages) public function deleteVolumes()
{ {
$persistentStorages = $this->persistentStorages()->get() ?? collect();
if ($persistentStorages->count() === 0) { if ($persistentStorages->count() === 0) {
return; return;
} }

View File

@@ -3,7 +3,6 @@
namespace App\Models; namespace App\Models;
use Illuminate\Database\Eloquent\Casts\Attribute; use Illuminate\Database\Eloquent\Casts\Attribute;
use Illuminate\Database\Eloquent\Collection;
use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Database\Eloquent\SoftDeletes;
@@ -94,7 +93,7 @@ class StandaloneDragonfly extends BaseModel
return database_configuration_dir()."/{$this->uuid}"; return database_configuration_dir()."/{$this->uuid}";
} }
public function delete_configurations() public function deleteConfigurations()
{ {
$server = data_get($this, 'destination.server'); $server = data_get($this, 'destination.server');
$workdir = $this->workdir(); $workdir = $this->workdir();
@@ -103,8 +102,9 @@ class StandaloneDragonfly extends BaseModel
} }
} }
public function delete_volumes(Collection $persistentStorages) public function deleteVolumes()
{ {
$persistentStorages = $this->persistentStorages()->get() ?? collect();
if ($persistentStorages->count() === 0) { if ($persistentStorages->count() === 0) {
return; return;
} }

View File

@@ -3,7 +3,6 @@
namespace App\Models; namespace App\Models;
use Illuminate\Database\Eloquent\Casts\Attribute; use Illuminate\Database\Eloquent\Casts\Attribute;
use Illuminate\Database\Eloquent\Collection;
use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Database\Eloquent\SoftDeletes;
@@ -94,7 +93,7 @@ class StandaloneKeydb extends BaseModel
return database_configuration_dir()."/{$this->uuid}"; return database_configuration_dir()."/{$this->uuid}";
} }
public function delete_configurations() public function deleteConfigurations()
{ {
$server = data_get($this, 'destination.server'); $server = data_get($this, 'destination.server');
$workdir = $this->workdir(); $workdir = $this->workdir();
@@ -103,8 +102,9 @@ class StandaloneKeydb extends BaseModel
} }
} }
public function delete_volumes(Collection $persistentStorages) public function deleteVolumes()
{ {
$persistentStorages = $this->persistentStorages()->get() ?? collect();
if ($persistentStorages->count() === 0) { if ($persistentStorages->count() === 0) {
return; return;
} }

View File

@@ -3,7 +3,6 @@
namespace App\Models; namespace App\Models;
use Illuminate\Database\Eloquent\Casts\Attribute; use Illuminate\Database\Eloquent\Casts\Attribute;
use Illuminate\Database\Eloquent\Collection;
use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Database\Eloquent\SoftDeletes;
@@ -94,7 +93,7 @@ class StandaloneMariadb extends BaseModel
return database_configuration_dir()."/{$this->uuid}"; return database_configuration_dir()."/{$this->uuid}";
} }
public function delete_configurations() public function deleteConfigurations()
{ {
$server = data_get($this, 'destination.server'); $server = data_get($this, 'destination.server');
$workdir = $this->workdir(); $workdir = $this->workdir();
@@ -103,8 +102,9 @@ class StandaloneMariadb extends BaseModel
} }
} }
public function delete_volumes(Collection $persistentStorages) public function deleteVolumes()
{ {
$persistentStorages = $this->persistentStorages()->get() ?? collect();
if ($persistentStorages->count() === 0) { if ($persistentStorages->count() === 0) {
return; return;
} }

View File

@@ -3,7 +3,6 @@
namespace App\Models; namespace App\Models;
use Illuminate\Database\Eloquent\Casts\Attribute; use Illuminate\Database\Eloquent\Casts\Attribute;
use Illuminate\Database\Eloquent\Collection;
use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Database\Eloquent\SoftDeletes;
@@ -98,7 +97,7 @@ class StandaloneMongodb extends BaseModel
return database_configuration_dir()."/{$this->uuid}"; return database_configuration_dir()."/{$this->uuid}";
} }
public function delete_configurations() public function deleteConfigurations()
{ {
$server = data_get($this, 'destination.server'); $server = data_get($this, 'destination.server');
$workdir = $this->workdir(); $workdir = $this->workdir();
@@ -107,8 +106,9 @@ class StandaloneMongodb extends BaseModel
} }
} }
public function delete_volumes(Collection $persistentStorages) public function deleteVolumes()
{ {
$persistentStorages = $this->persistentStorages()->get() ?? collect();
if ($persistentStorages->count() === 0) { if ($persistentStorages->count() === 0) {
return; return;
} }

View File

@@ -3,7 +3,6 @@
namespace App\Models; namespace App\Models;
use Illuminate\Database\Eloquent\Casts\Attribute; use Illuminate\Database\Eloquent\Casts\Attribute;
use Illuminate\Database\Eloquent\Collection;
use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Database\Eloquent\SoftDeletes;
@@ -95,7 +94,7 @@ class StandaloneMysql extends BaseModel
return database_configuration_dir()."/{$this->uuid}"; return database_configuration_dir()."/{$this->uuid}";
} }
public function delete_configurations() public function deleteConfigurations()
{ {
$server = data_get($this, 'destination.server'); $server = data_get($this, 'destination.server');
$workdir = $this->workdir(); $workdir = $this->workdir();
@@ -104,8 +103,9 @@ class StandaloneMysql extends BaseModel
} }
} }
public function delete_volumes(Collection $persistentStorages) public function deleteVolumes()
{ {
$persistentStorages = $this->persistentStorages()->get() ?? collect();
if ($persistentStorages->count() === 0) { if ($persistentStorages->count() === 0) {
return; return;
} }

View File

@@ -3,7 +3,6 @@
namespace App\Models; namespace App\Models;
use Illuminate\Database\Eloquent\Casts\Attribute; use Illuminate\Database\Eloquent\Casts\Attribute;
use Illuminate\Database\Eloquent\Collection;
use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Database\Eloquent\SoftDeletes;
@@ -59,7 +58,7 @@ class StandalonePostgresql extends BaseModel
); );
} }
public function delete_configurations() public function deleteConfigurations()
{ {
$server = data_get($this, 'destination.server'); $server = data_get($this, 'destination.server');
$workdir = $this->workdir(); $workdir = $this->workdir();
@@ -68,8 +67,9 @@ class StandalonePostgresql extends BaseModel
} }
} }
public function delete_volumes(Collection $persistentStorages) public function deleteVolumes()
{ {
$persistentStorages = $this->persistentStorages()->get() ?? collect();
if ($persistentStorages->count() === 0) { if ($persistentStorages->count() === 0) {
return; return;
} }

View File

@@ -3,7 +3,6 @@
namespace App\Models; namespace App\Models;
use Illuminate\Database\Eloquent\Casts\Attribute; use Illuminate\Database\Eloquent\Casts\Attribute;
use Illuminate\Database\Eloquent\Collection;
use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Database\Eloquent\SoftDeletes;
@@ -96,7 +95,7 @@ class StandaloneRedis extends BaseModel
return database_configuration_dir()."/{$this->uuid}"; return database_configuration_dir()."/{$this->uuid}";
} }
public function delete_configurations() public function deleteConfigurations()
{ {
$server = data_get($this, 'destination.server'); $server = data_get($this, 'destination.server');
$workdir = $this->workdir(); $workdir = $this->workdir();
@@ -105,8 +104,9 @@ class StandaloneRedis extends BaseModel
} }
} }
public function delete_volumes(Collection $persistentStorages) public function deleteVolumes()
{ {
$persistentStorages = $this->persistentStorages()->get() ?? collect();
if ($persistentStorages->count() === 0) { if ($persistentStorages->count() === 0) {
return; return;
} }