diff --git a/app/Http/Livewire/Project/Shared/Danger.php b/app/Http/Livewire/Project/Shared/Danger.php index 45bc5d2d7..f2bef04d4 100644 --- a/app/Http/Livewire/Project/Shared/Danger.php +++ b/app/Http/Livewire/Project/Shared/Danger.php @@ -2,7 +2,7 @@ namespace App\Http\Livewire\Project\Shared; -use App\Jobs\StopResourceJob; +use App\Jobs\DeleteResourceJob; use Livewire\Component; use Visus\Cuid2\Cuid2; @@ -21,7 +21,7 @@ class Danger extends Component public function delete() { try { - StopResourceJob::dispatchSync($this->resource); + DeleteResourceJob::dispatchSync($this->resource); return redirect()->route('project.resources', [ 'project_uuid' => $this->parameters['project_uuid'], 'environment_name' => $this->parameters['environment_name'] diff --git a/app/Jobs/ContainerStatusJob.php b/app/Jobs/ContainerStatusJob.php index 612764803..27dc4673d 100644 --- a/app/Jobs/ContainerStatusJob.php +++ b/app/Jobs/ContainerStatusJob.php @@ -60,6 +60,23 @@ class ContainerStatusJob implements ShouldQueue, ShouldBeEncrypted $this->server->update([ 'unreachable_count' => 0, ]); + // Update all applications, databases and services to exited + foreach($this->server->applications() as $application) { + $application->update(['status' => 'exited']); + } + foreach($this->server->databases() as $database) { + $database->update(['status' => 'exited']); + } + foreach($this->server->services() as $service) { + $apps = $service->applications()->get(); + $dbs = $service->databases()->get(); + foreach ($apps as $app) { + $app->update(['status' => 'exited']); + } + foreach ($dbs as $db) { + $db->update(['status' => 'exited']); + } + } return; } $result = $this->server->validateConnection(); diff --git a/app/Jobs/StopResourceJob.php b/app/Jobs/DeleteResourceJob.php similarity index 95% rename from app/Jobs/StopResourceJob.php rename to app/Jobs/DeleteResourceJob.php index 984dc0904..0393d9f56 100644 --- a/app/Jobs/StopResourceJob.php +++ b/app/Jobs/DeleteResourceJob.php @@ -19,7 +19,7 @@ use Illuminate\Foundation\Bus\Dispatchable; use Illuminate\Queue\InteractsWithQueue; use Illuminate\Queue\SerializesModels; -class StopResourceJob implements ShouldQueue, ShouldBeEncrypted +class DeleteResourceJob implements ShouldQueue, ShouldBeEncrypted { use Dispatchable, InteractsWithQueue, Queueable, SerializesModels; @@ -32,6 +32,7 @@ class StopResourceJob implements ShouldQueue, ShouldBeEncrypted try { $server = $this->resource->destination->server; if (!$server->isFunctional()) { + $this->resource->delete(); return 'Server is not functional'; } switch ($this->resource->type()) {