diff --git a/app/Jobs/ContainerStatusJob.php b/app/Jobs/ContainerStatusJob.php index b66d9fd78..a55954df3 100644 --- a/app/Jobs/ContainerStatusJob.php +++ b/app/Jobs/ContainerStatusJob.php @@ -21,60 +21,56 @@ class ContainerStatusJob implements ShouldQueue } public function handle(): void { - if ($this->container_id) { - $this->checkContainerStatus(); - } else { - $this->checkAllServers(); + try { + if ($this->container_id) { + $this->checkContainerStatus(); + } else { + $this->checkAllServers(); + } + } catch (\Exception $e) { + Log::error($e->getMessage()); } } protected function checkAllServers() { - try { - $servers = Server::all()->reject(fn (Server $server) => $server->settings->is_build_server); - $applications = Application::all(); - $not_found_applications = $applications; - $containers = collect(); - foreach ($servers as $server) { - $output = runRemoteCommandSync($server, ['docker ps -a -q --format \'{{json .}}\'']); - $containers = $containers->concat(formatDockerCmdOutputToJson($output)); + $servers = Server::all()->reject(fn (Server $server) => $server->settings->is_build_server); + $applications = Application::all(); + $not_found_applications = $applications; + $containers = collect(); + foreach ($servers as $server) { + $output = runRemoteCommandSync($server, ['docker ps -a -q --format \'{{json .}}\'']); + $containers = $containers->concat(formatDockerCmdOutputToJson($output)); + } + foreach ($containers as $container) { + $found_application = $applications->filter(function ($value, $key) use ($container) { + return $value->uuid == $container['Names']; + })->first(); + if ($found_application) { + $not_found_applications = $not_found_applications->filter(function ($value, $key) use ($found_application) { + return $value->uuid != $found_application->uuid; + }); + $found_application->status = $container['State']; + $found_application->save(); + Log::info('Found application: ' . $found_application->uuid . '. Set status to: ' . $found_application->status); } - foreach ($containers as $container) { - $found_application = $applications->filter(function ($value, $key) use ($container) { - return $value->uuid == $container['Names']; - })->first(); - if ($found_application) { - $not_found_applications = $not_found_applications->filter(function ($value, $key) use ($found_application) { - return $value->uuid != $found_application->uuid; - }); - $found_application->status = $container['State']; - $found_application->save(); - Log::info('Found application: ' . $found_application->uuid . '. Set status to: ' . $found_application->status); - } - } - foreach ($not_found_applications as $not_found_application) { - $not_found_application->status = 'exited'; - $not_found_application->save(); - Log::info('Not found application: ' . $not_found_application->uuid . '. Set status to: ' . $not_found_application->status); - } - } catch (\Exception $e) { - Log::error($e->getMessage()); + } + foreach ($not_found_applications as $not_found_application) { + $not_found_application->status = 'exited'; + $not_found_application->save(); + Log::info('Not found application: ' . $not_found_application->uuid . '. Set status to: ' . $not_found_application->status); } } protected function checkContainerStatus() { - try { - $application = Application::where('uuid', $this->container_id)->firstOrFail(); - if (!$application) { - return; - } - if ($application->destination->server) { - $container = runRemoteCommandSync($application->destination->server, ["docker inspect --format '{{json .State}}' {$this->container_id}"]); - $container = formatDockerCmdOutputToJson($container); - $application->status = $container[0]['Status']; - $application->save(); - } - } catch (\Exception $e) { - Log::error($e->getMessage()); + $application = Application::where('uuid', $this->container_id)->firstOrFail(); + if (!$application) { + return; + } + if ($application->destination->server) { + $container = runRemoteCommandSync($application->destination->server, ["docker inspect --format '{{json .State}}' {$this->container_id}"]); + $container = formatDockerCmdOutputToJson($container); + $application->status = $container[0]['Status']; + $application->save(); } } } diff --git a/app/Jobs/DockerCleanupDanglingImagesJob.php b/app/Jobs/DockerCleanupDanglingImagesJob.php index cab8953b2..d5798ba54 100644 --- a/app/Jobs/DockerCleanupDanglingImagesJob.php +++ b/app/Jobs/DockerCleanupDanglingImagesJob.php @@ -28,9 +28,13 @@ class DockerCleanupDanglingImagesJob implements ShouldQueue */ public function handle(): void { - $servers = Server::all(); - foreach ($servers as $server) { - runRemoteCommandSync($server, ['docker image prune -f']); + try { + $servers = Server::all(); + foreach ($servers as $server) { + runRemoteCommandSync($server, ['docker image prune -f']); + } + } catch (\Exception $e) { + Log::error($e->getMessage()); } } }