From 9b18d253f376642fb30d5449c364c52aafa0d7d7 Mon Sep 17 00:00:00 2001 From: Manuel Aranda Date: Wed, 20 Aug 2025 09:23:42 +0200 Subject: [PATCH] refs #2613. Captured busy client status --- .../OgAgent/AbstractOgAgentController.php | 13 +++++++++++++ src/Controller/OgAgent/Webhook/StatusController.php | 2 +- src/Model/TraceStatus.php | 2 ++ src/Service/Trace/CreateService.php | 3 ++- 4 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/Controller/OgAgent/AbstractOgAgentController.php b/src/Controller/OgAgent/AbstractOgAgentController.php index e472cab..97fd405 100644 --- a/src/Controller/OgAgent/AbstractOgAgentController.php +++ b/src/Controller/OgAgent/AbstractOgAgentController.php @@ -67,6 +67,19 @@ abstract class AbstractOgAgentController extends AbstractController $response = $this->httpClient->request($method, $url, $params); return json_decode($response->getContent(), true); } catch (ClientExceptionInterface | ServerExceptionInterface $e) { + if ($e->getResponse() && $e->getResponse()->getStatusCode() === 409) { + $this->logger->info('Client is busy (409 Conflict)', [ + 'url' => $url, + 'status_code' => 409 + ]); + + return [ + 'code' => 409, + 'message' => 'Client is busy', + 'details' => $e->getMessage(), + ]; + } + $this->logger->error(sprintf('Client/Server error in request to %s: %s', $url, $e->getMessage())); return [ diff --git a/src/Controller/OgAgent/Webhook/StatusController.php b/src/Controller/OgAgent/Webhook/StatusController.php index fc8f748..d3132f6 100644 --- a/src/Controller/OgAgent/Webhook/StatusController.php +++ b/src/Controller/OgAgent/Webhook/StatusController.php @@ -39,7 +39,7 @@ class StatusController extends AbstractController { const string CREATE_IMAGE = 'RESPUESTA_CrearImagen'; const string CREATE_IMAGE_GIT = 'RESPUESTA_CrearImagenGit'; - const string UPDATE_IMAGE_GIT = 'RESPUESTA_ActualizarImagenGit'; + const string UPDATE_IMAGE_GIT = 'RESPUESTA_ModificarImagenGit'; const string RESTORE_IMAGE = 'RESPUESTA_RestaurarImagen'; const string RESTORE_IMAGE_GIT = 'RESPUESTA_RestaurarImagenGit'; const string CONFIGURE_IMAGE = 'RESPUESTA_Configurar'; diff --git a/src/Model/TraceStatus.php b/src/Model/TraceStatus.php index f6e01fa..e2f79e5 100644 --- a/src/Model/TraceStatus.php +++ b/src/Model/TraceStatus.php @@ -10,6 +10,7 @@ final class TraceStatus public const string FAILED = 'failed'; public const string CANCELLED = 'cancelled'; public const string SENT = 'sent'; + public const string BUSY = 'busy'; private const array STATUS = [ self::PENDING => 'Pendiente', @@ -18,6 +19,7 @@ final class TraceStatus self::FAILED => 'Fallido', self::CANCELLED => 'Cancelado', self::SENT => 'Enviado', + self::BUSY => 'Ocupado', ]; public static function getStatus(): array diff --git a/src/Service/Trace/CreateService.php b/src/Service/Trace/CreateService.php index d22d83d..37a0a24 100644 --- a/src/Service/Trace/CreateService.php +++ b/src/Service/Trace/CreateService.php @@ -15,7 +15,7 @@ readonly class CreateService { } - public function __invoke(?Client $client = null, ?string $command, string $status, ?string $jobId = '', ?array $input = []): Trace + public function __invoke(?Client $client = null, ?string $command, string $status, ?string $jobId = '', ?array $input = [], ?string $output = null): Trace { $trace = new Trace(); $trace->setClient($client); @@ -24,6 +24,7 @@ readonly class CreateService $trace->setJobId($jobId); $trace->setExecutedAt(new \DateTime()); $trace->setInput($input); + $trace->setOutput($output); $this->entityManager->persist($trace); $this->entityManager->flush();