From 154472ac3043ed2036db1d4c5740e8cfda5a954f Mon Sep 17 00:00:00 2001 From: Manuel Aranda Date: Wed, 16 Apr 2025 11:54:09 +0200 Subject: [PATCH 1/2] refs #1923. Fixed bug create imagen processor --- src/Controller/OgAgent/CreateImageAction.php | 17 ++++++++++++++--- src/Controller/OgAgent/DeployImageAction.php | 2 +- .../OgRepository/Image/TransferAction.php | 2 +- .../OgRepository/Image/TransferGlobalAction.php | 2 +- src/State/Processor/ImageProcessor.php | 3 +-- 5 files changed, 18 insertions(+), 8 deletions(-) diff --git a/src/Controller/OgAgent/CreateImageAction.php b/src/Controller/OgAgent/CreateImageAction.php index eb89c5c..09d5f6c 100644 --- a/src/Controller/OgAgent/CreateImageAction.php +++ b/src/Controller/OgAgent/CreateImageAction.php @@ -9,6 +9,7 @@ use App\Entity\Command; use App\Entity\Image; use App\Entity\ImageImageRepository; use App\Entity\ImageRepository; +use App\Entity\Partition; use App\Entity\Trace; use App\Model\ClientStatus; use App\Model\CommandTypes; @@ -47,16 +48,26 @@ class CreateImageAction extends AbstractController * @throws RedirectionExceptionInterface * @throws ClientExceptionInterface */ - public function __invoke(Image $image): JsonResponse + public function __invoke(Image $image, ?Partition $partition = null): JsonResponse { if (!$image->getClient()->getIp()) { throw new ValidatorException('IP is required'); } - $partitionInfo = json_decode($image->getPartitionInfo(), true); + $partitionInfo = []; + + if ($partition) { + $partitionInfo["numPartition"] = $partition->getPartitionNumber(); + $partitionInfo["numDisk"] = $partition->getDiskNumber(); + $partitionInfo["partitionCode"] = $partition->getPartitionCode(); + $partitionInfo["filesystem"] = $partition->getFilesystem(); + $partitionInfo["osName"] = $partition->getOperativeSystem()?->getName(); + $image->setPartitionInfo(json_encode($partitionInfo)); + } else { + $partitionInfo = json_decode($image->getPartitionInfo(), true); + } $repository = $image->getClient()->getRepository(); - $latestImageRepo = $this->entityManager->getRepository(ImageImageRepository::class)->findLatestVersionByImageAndRepository($image, $repository); $imageImageRepository = new ImageImageRepository(); diff --git a/src/Controller/OgAgent/DeployImageAction.php b/src/Controller/OgAgent/DeployImageAction.php index 6bf3c8d..fe35468 100644 --- a/src/Controller/OgAgent/DeployImageAction.php +++ b/src/Controller/OgAgent/DeployImageAction.php @@ -84,7 +84,7 @@ class DeployImageAction extends AbstractController 'par' => (string) $input->partitionNumber, 'ifs' => "1", 'idi' => $image->getUuid(), - 'nci' => $image->getName(), + 'nci' => $imageImageRepository->getName(), 'ipr' => $repository->getIp(), 'nfn' => 'RestaurarImagen', 'ptc' => $ptcValue, diff --git a/src/Controller/OgRepository/Image/TransferAction.php b/src/Controller/OgRepository/Image/TransferAction.php index b0707d4..6798fc2 100644 --- a/src/Controller/OgRepository/Image/TransferAction.php +++ b/src/Controller/OgRepository/Image/TransferAction.php @@ -45,7 +45,7 @@ class TransferAction extends AbstractOgRepositoryController $params = [ 'json' => [ - 'image' => $image->getName().'.img', + 'image' => $imageImageRepository->getName().'.img', 'repo_ip' => $imageImageRepository->getRepository()->getIp(), 'user' => $repository->getUser(), 'ssh_port' => $repository->getSshPort() diff --git a/src/Controller/OgRepository/Image/TransferGlobalAction.php b/src/Controller/OgRepository/Image/TransferGlobalAction.php index 0e4b31f..cf2c57b 100644 --- a/src/Controller/OgRepository/Image/TransferGlobalAction.php +++ b/src/Controller/OgRepository/Image/TransferGlobalAction.php @@ -46,7 +46,7 @@ class TransferGlobalAction extends AbstractOgRepositoryController $params = [ 'json' => [ - 'image' => $image->getName().'.img', + 'image' => $imageImageRepository->getName().'.img', 'repo_ip' => $imageImageRepository->getRepository()->getIp(), 'user' => $repository->getUser(), 'ssh_port' => $repository->getSshPort() diff --git a/src/State/Processor/ImageProcessor.php b/src/State/Processor/ImageProcessor.php index efea176..5d72a40 100644 --- a/src/State/Processor/ImageProcessor.php +++ b/src/State/Processor/ImageProcessor.php @@ -65,9 +65,8 @@ readonly class ImageProcessor implements ProcessorInterface if ($data->selectedImage){ - //$content = $this->renameActionController->__invoke($data->selectedImage->getEntity()); - $response = $this->createImageActionController->__invoke($data->selectedImage->getEntity()); + $response = $this->createImageActionController->__invoke($data->selectedImage->getEntity(), $data->partition->getEntity()); } else { $image = $data->createOrUpdateEntity($entity); -- 2.40.1 From c259dc6b32cb6dc5cc2b52a05e19f516f877a8e3 Mon Sep 17 00:00:00 2001 From: Manuel Aranda Date: Wed, 16 Apr 2025 11:56:35 +0200 Subject: [PATCH 2/2] Added changelog --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 327bc49..5103799 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,10 @@ # Changelog +## [0.11.1] - 2025-04-16 +### Fixed +- Se ha corregido un error al crear imagen versionada. Si la particion de origen era diferente, no dejaba crear. +- Error en la transmision de imagenes. No se actualizaba con la imagen versionada, si no con la canonica. + +--- ## [0.11.0] - 2025-04-11 ### Added - Se ha aƱadido funcionalidad para renombrar imagenes en ogRepository. Nuevo sistema de versionado. -- 2.40.1