Compare commits

..

2 Commits

Author SHA1 Message Date
Manuel Aranda Rosales 4c3b0fd0cd refs #2611. Fixed create instance Image in git
testing/ogcore-api/pipeline/head There was a failure building this commit Details
2025-08-20 09:26:46 +02:00
Manuel Aranda Rosales 9b18d253f3 refs #2613. Captured busy client status
testing/ogcore-api/pipeline/head There was a failure building this commit Details
2025-08-20 09:23:42 +02:00
7 changed files with 28 additions and 16 deletions

View File

@ -1,8 +1,7 @@
# Changelog
## [0.19.0] - 2025-08-07
## [0.19.0] - 2025-08-06
### Added
- Se ha añadido un nuevo estado "enviado" para cuando se ejecuten acciones a equipos en estado Windows o Linux
- Añade nuevo usuario "grafana" con permisos de solo lectura a la base de datos ogcore.
---
## [0.18.1] - 2025-08-06

View File

@ -66,14 +66,6 @@ if [ "$1" = "configure" ] && [ -z "$2" ]; then
php bin/console app:load-default-commands
php bin/console opengnsys:load-default-menu
echo ">>> Configurando usuario de base de datos para Grafana"
cp -a /etc/mysql/mariadb.conf.d/50-server.cnf /etc/mysql/mariadb.conf.d/50-server.cnf.bak
sed -i 's/^bind-address\s*=.*/bind-address = 0.0.0.0/' /etc/mysql/mariadb.conf.d/50-server.cnf
mariadb -e "
CREATE USER IF NOT EXISTS 'grafana'@'%' IDENTIFIED BY 'grafana';
GRANT SELECT ON ogcore.* TO 'grafana'@'%';
FLUSH PRIVILEGES;"
echo ">>> Configurando servidor web y servicios"
ln -s /opt/opengnsys/ogcore/etc/nginx/sites-available/ogcore.conf /etc/nginx/sites-enabled/ogcore.conf
ln -s /opt/opengnsys/ogcore/etc/nginx/sites-available/mercure.conf /etc/nginx/sites-enabled/mercure.conf
@ -85,7 +77,6 @@ if [ "$1" = "configure" ] && [ -z "$2" ]; then
chown -R opengnsys:www-data /opt/opengnsys/ogcore
systemctl daemon-reload
systemctl enable og-mercure
systemctl restart mariadb.service
systemctl restart og-mercure
systemctl restart nginx
systemctl restart php8.3-fpm

View File

@ -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 [

View File

@ -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';

View File

@ -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

View File

@ -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();

View File

@ -73,14 +73,20 @@ readonly class ImageProcessor implements ProcessorInterface
if ($data->selectedImage) {
$response = $this->createImageActionController->__invoke($data->queue, $data->selectedImage->getEntity(), $data->partition->getEntity(), $data->client->getEntity(), $data->gitRepository);
} else {
$image = $data->createOrUpdateEntity($entity);
$this->validator->validate($image);
if ($data->type === 'monolithic') {
$this->validator->validate($image);
}
if ($this->kernel->getEnvironment() !== 'test') {
$response = $this->createImageActionController->__invoke($data->queue, $image, null, null, $data->gitRepository);
}
$this->imageRepository->save($image);
if ($data->type === 'monolithic') {
$this->imageRepository->save($image);
}
}
if ($response instanceof JsonResponse && $response->getStatusCode() >= 400) {