refs #1472. Changes in images and imageRepo
testing/ogcore-api/pipeline/head This commit looks good Details

hotfix-timeout
Manuel Aranda Rosales 2025-02-13 08:36:26 +01:00
parent a448fb071d
commit 3ed65f0668
3 changed files with 27 additions and 10 deletions

View File

@ -34,7 +34,7 @@ class DeletePermanentAction extends AbstractOgRepositoryController
$this->logger->info('Deleting image', ['image' => $image->getName()]); $this->logger->info('Deleting image', ['image' => $image->getName()]);
$repository = $image->getClient()->getRepository(); $repository = $data->getRepository();
$content = $this->createRequest( 'DELETE', 'http://'.$repository->getIp().':8006/ogrepository/v1/images/'.$data->getImageFullsum().'?method=permanent'); $content = $this->createRequest( 'DELETE', 'http://'.$repository->getIp().':8006/ogrepository/v1/images/'.$data->getImageFullsum().'?method=permanent');

View File

@ -3,6 +3,7 @@
namespace App\Controller\OgRepository; namespace App\Controller\OgRepository;
use App\Entity\Image; use App\Entity\Image;
use App\Entity\ImageImageRepository;
use App\Entity\ImageRepository; use App\Entity\ImageRepository;
use App\Model\ImageStatus; use App\Model\ImageStatus;
use Symfony\Component\HttpFoundation\JsonResponse; use Symfony\Component\HttpFoundation\JsonResponse;
@ -22,26 +23,37 @@ class SyncAction extends AbstractOgRepositoryController
* @throws RedirectionExceptionInterface * @throws RedirectionExceptionInterface
* @throws ClientExceptionInterface * @throws ClientExceptionInterface
*/ */
public function __invoke(ImageRepository $data): JsonResponse public function __invoke(ImageRepository $input): JsonResponse
{ {
$content = $this->createRequest('GET', 'http://'.$data->getIp(). ':8006/ogrepository/v1/images'); $content = $this->createRequest('GET', 'http://'.$input->getIp(). ':8006/ogrepository/v1/images');
if (!isset($content['output']['REPOSITORY']['images'])) { if (!isset($content['output']['REPOSITORY']['images'])) {
return new JsonResponse(data: 'No images found', status: Response::HTTP_NOT_FOUND); return new JsonResponse(data: 'No images found', status: Response::HTTP_NOT_FOUND);
} }
foreach ($content['output']['REPOSITORY']['images'] as $image) { foreach ($content['output']['REPOSITORY']['images'] as $image) {
$imageEntity = $this->entityManager->getRepository(Image::class)->findOneBy(['imageFullsum' => $image['fullsum']]); $imageImageRepositoryEntity = $this->entityManager->getRepository(ImageImageRepository::class)->findOneBy(['imageFullsum' => $image['fullsum']]);
$imageEntity = $this->entityManager->getRepository(Image::class)->findOneBy(['name' => $image['name']]);
if (!$imageEntity) { if (!$imageEntity) {
$imageEntity = new Image(); $imageEntity = new Image();
$imageEntity->setName($image['name'].$image['type']); $imageEntity->setName($image['name']);
$imageEntity->setStatus(ImageStatus::SUCCESS);
//$imageEntity->setRepository($data);
$imageEntity->setCreated(true );
$imageEntity->setImageFullsum($image['fullsum']);
$imageEntity->setRemotePc(false); $imageEntity->setRemotePc(false);
$imageEntity->setIsGlobal(false);
$this->entityManager->persist($imageEntity);
} }
$this->entityManager->persist($imageEntity);
if (!$imageImageRepositoryEntity) {
$imageImageRepositoryEntity = new ImageImageRepository();
$imageImageRepositoryEntity->setImageFullsum($image['fullsum']);
$imageImageRepositoryEntity->setStatus(ImageStatus::SUCCESS);
$imageImageRepositoryEntity->setImage($imageEntity);
$imageImageRepositoryEntity->setRepository($input);
$this->entityManager->persist($imageImageRepositoryEntity);
}
} }
$this->entityManager->flush(); $this->entityManager->flush();

View File

@ -93,6 +93,11 @@ class ResponseController extends AbstractOgRepositoryController
$repository = $this->entityManager->getRepository(ImageRepository::class)->findOneBy(['uuid' => $repositoryUuid]); $repository = $this->entityManager->getRepository(ImageRepository::class)->findOneBy(['uuid' => $repositoryUuid]);
$imageImageRepository = $this->entityManager->getRepository(ImageImageRepository::class)->findOneBy(['uuid' => $imageImageRepositoryUuid]); $imageImageRepository = $this->entityManager->getRepository(ImageImageRepository::class)->findOneBy(['uuid' => $imageImageRepositoryUuid]);
if ($data['success'] !== true) {
$this->updateTraceStatus($trace, TraceStatus::FAILED, 'Action failed');
return;
}
if ($image === null) { if ($image === null) {
$this->updateTraceStatus($trace, TraceStatus::FAILED, 'Image not found'); $this->updateTraceStatus($trace, TraceStatus::FAILED, 'Image not found');
return; return;