refs #1693. Convert Image. Experimental commit
testing/ogcore-api/pipeline/head This commit looks good Details

pull/26/head
Manuel Aranda Rosales 2025-03-12 08:30:15 +01:00
parent b9e894f2d0
commit fca9bb3ae3
1 changed files with 24 additions and 22 deletions

View File

@ -3,6 +3,7 @@
namespace App\Controller\OgRepository\Image;
use App\Controller\OgRepository\AbstractOgRepositoryController;
use App\Dto\Input\ConvertImageRepositoryInput;
use App\Dto\Input\ImportImageRepositoryInput;
use App\Entity\Image;
use App\Entity\ImageImageRepository;
@ -29,31 +30,10 @@ class ConvertAction extends AbstractOgRepositoryController
* @throws RedirectionExceptionInterface
* @throws ClientExceptionInterface
*/
public function __invoke(ImportImageRepositoryInput $input, ImageRepository $repository): JsonResponse
public function __invoke(ConvertImageRepositoryInput $input, ImageRepository $repository): JsonResponse
{
$image = $input->name;
$params = [
'json' => [
'filesystem' => 'ext4',
'virtual_image' => $image
]
];
$this->logger->info('Converting image', ['image' => $image]);
$content = $this->createRequest('POST', 'http://'.$repository->getIp().':8006/ogrepository/v1/images/virtual', $params);
if (isset($content['error']) && $content['code'] === Response::HTTP_INTERNAL_SERVER_ERROR ) {
throw new ValidatorException('Error importing image');
}
$inputData = [
'imageName' => $image
];
$this->createService->__invoke(null, CommandTypes::CONVERT_IMAGE, TraceStatus::IN_PROGRESS, $content['job_id'], $inputData);
$imageEntity = $this->entityManager->getRepository(Image::class)->findOneBy(['name' => $image]);
if (!$imageEntity){
@ -73,6 +53,28 @@ class ConvertAction extends AbstractOgRepositoryController
$this->entityManager->persist($imageImageRepositoryEntity);
$this->entityManager->flush();
$this->logger->info('Converting image', ['image' => $image]);
$params = [
'json' => [
'filesystem' => 'ext4',
'virtual_image' => $image
]
];
$content = $this->createRequest('POST', 'http://'.$repository->getIp().':8006/ogrepository/v1/images/virtual', $params);
if (isset($content['error']) && $content['code'] === Response::HTTP_INTERNAL_SERVER_ERROR ) {
throw new ValidatorException('Error converting image');
}
$inputData = [
'imageName' => $image,
'imageUuid' => $imageImageRepositoryEntity->getUuid(),
];
$this->createService->__invoke(null, CommandTypes::CONVERT_IMAGE, TraceStatus::IN_PROGRESS, $content['job_id'], $inputData);
return new JsonResponse(data: [], status: Response::HTTP_OK);
}
}