diff --git a/app/Actions/Service/DeleteService.php b/app/Actions/Service/DeleteService.php
index b043082ac..7c8eaf75d 100644
--- a/app/Actions/Service/DeleteService.php
+++ b/app/Actions/Service/DeleteService.php
@@ -10,7 +10,7 @@ class DeleteService
{
use AsAction;
- public function handle(Service $service)
+ public function handle(Service $service, bool $deleteConfigurations, bool $deleteVolumes, bool $deleteImages, bool $deleteNetworks)
{
try {
$server = data_get($service, 'server');
@@ -61,4 +61,4 @@ class DeleteService
CleanupDocker::run($server, true);
}
}
-}
+}
\ No newline at end of file
diff --git a/app/Jobs/DeleteResourceJob.php b/app/Jobs/DeleteResourceJob.php
index dbf44dd5d..36f673986 100644
--- a/app/Jobs/DeleteResourceJob.php
+++ b/app/Jobs/DeleteResourceJob.php
@@ -6,6 +6,7 @@ use App\Actions\Application\StopApplication;
use App\Actions\Database\StopDatabase;
use App\Actions\Service\DeleteService;
use App\Actions\Service\StopService;
+use App\Actions\Server\CleanupDocker;
use App\Models\Application;
use App\Models\Service;
use App\Models\StandaloneClickhouse;
@@ -31,7 +32,11 @@ class DeleteResourceJob implements ShouldBeEncrypted, ShouldQueue
public function __construct(
public Application|Service|StandalonePostgresql|StandaloneRedis|StandaloneMongodb|StandaloneMysql|StandaloneMariadb|StandaloneKeydb|StandaloneDragonfly|StandaloneClickhouse $resource,
public bool $deleteConfigurations = false,
- public bool $deleteVolumes = false) {}
+ public bool $deleteVolumes = false,
+ public bool $deleteImages = false,
+ public bool $deleteNetworks = false
+ ) {
+ }
public function handle()
{
@@ -59,19 +64,33 @@ class DeleteResourceJob implements ShouldBeEncrypted, ShouldQueue
break;
}
- if ($this->deleteVolumes && $this->resource->type() !== 'service') {
- $this->resource?->delete_volumes($persistentStorages);
- }
if ($this->deleteConfigurations) {
$this->resource?->delete_configurations();
}
+
+ if ($this->deleteVolumes && $this->resource->type() !== 'service') {
+ $this->resource?->delete_volumes($persistentStorages);
+ }
+
+ if ($this->deleteImages) {
+ // Logic to delete images
+ }
+
+ if ($this->deleteNetworks) {
+ // Logic to delete networks
+ }
+
+ $server = data_get($this->resource, 'server');
+ if ($server) {
+ CleanupDocker::run($server, true);
+ }
} catch (\Throwable $e) {
ray($e->getMessage());
- send_internal_notification('ContainerStoppingJob failed with: '.$e->getMessage());
+ send_internal_notification('ContainerStoppingJob failed with: ' . $e->getMessage());
throw $e;
} finally {
$this->resource->forceDelete();
Artisan::queue('cleanup:stucked-resources');
}
}
-}
+}
\ No newline at end of file
diff --git a/resources/views/livewire/project/shared/danger.blade.php b/resources/views/livewire/project/shared/danger.blade.php
index 276061a8e..20bd7310b 100644
--- a/resources/views/livewire/project/shared/danger.blade.php
+++ b/resources/views/livewire/project/shared/danger.blade.php
@@ -12,5 +12,7 @@
+
+
-
+
\ No newline at end of file