OgRepo createImage improvements. Agent Status fixed
testing/ogcore-api/pipeline/head There was a failure building this commit Details

pull/27/head
Manuel Aranda Rosales 2025-04-07 08:23:12 +02:00
parent d8306f78a7
commit beeda955ef
9 changed files with 37 additions and 13 deletions

View File

@ -7,6 +7,8 @@ resources:
groups: ['default', 'command:read']
denormalizationContext:
groups: ['command:write']
order:
id: 'DESC'
operations:
ApiPlatform\Metadata\GetCollection:
provider: App\State\Provider\CommandProvider

View File

@ -87,7 +87,7 @@ class DeployImageAction extends AbstractController
];
try {
$this->deployImageOgRepositoryAction->__invoke($input, $image, $client->getEntity(), $this->httpClient);
$this->deployImageOgRepositoryAction->__invoke($input, $image, $client->getEntity());
} catch (\Exception $e) {
continue;
}

View File

@ -8,6 +8,7 @@ use App\Entity\Client;
use App\Entity\Command;
use App\Entity\Image;
use App\Entity\ImageImageRepository;
use App\Entity\ImageRepository;
use App\Entity\Trace;
use App\Model\ClientStatus;
use App\Model\CommandTypes;
@ -56,7 +57,7 @@ class CreateImageAction extends AbstractController
$repository = $image->getClient()->getRepository();
$latestImageRepo = $this->entityManager->getRepository(ImageImageRepository::class)->findLatestVersion();
$latestImageRepo = $this->entityManager->getRepository(ImageImageRepository::class)->findLatestVersionByImageAndRepository($image, $repository);
$imageImageRepository = new ImageImageRepository();
$imageImageRepository->setImage($image);
@ -71,7 +72,7 @@ class CreateImageAction extends AbstractController
'par' => (string) $partitionInfo['numPartition'],
'cpt' => null,
'idi' => $imageImageRepository->getUuid(),
'nci' => $image->getName(),
'nci' => $image->getName().'_v'.$imageImageRepository->getVersion(),
'ipr' => $repository->getIp(),
'nfn' => 'CrearImagen',
'ids' => '0'
@ -93,7 +94,7 @@ class CreateImageAction extends AbstractController
try {
$this->logger->info('Creating image', ['image' => $image->getId()]);
$response = $this->httpClient->request('POST', 'https://'.$image->getClient()->getIp().':8000/CloningEngine/CrearImagen', [
$response = $this->httpClient->request('POST', 'https://'.$image->getClient()->getIp().':8000/opengnsys/CrearImagen', [
'verify_peer' => false,
'verify_host' => false,
'headers' => [

View File

@ -71,14 +71,14 @@ class StatusAction extends AbstractController
$this->logger->info('Checking client status', ['client' => $client->getId()]);
$params = [
'full-config' => true,
'full-config' => false,
];
try {
$response = $this->httpClient->request('POST', 'https://' . $client->getIp() . ':8000/ogAdmClient/status', [
$response = $this->httpClient->request('POST', 'https://' . $client->getIp() . ':8000/opengnsys/status', [
'verify_peer' => false,
'verify_host' => false,
'timeout' => 30,
'timeout' => 10,
'headers' => [
'Content-Type' => 'application/json',
],

View File

@ -39,7 +39,7 @@ class CreateAuxFilesAction extends AbstractOgRepositoryController
$params = [
'json' => [
'image' => $image->getName().'.img'
'image' => $image->getName().'_v'.$data->getVersion().'.img'
]
];

View File

@ -5,6 +5,7 @@ namespace App\Controller\OgRepository\Image;
use App\Controller\OgRepository\AbstractOgRepositoryController;
use App\Entity\Image;
use App\Entity\ImageImageRepository;
use App\Entity\ImageRepository;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpKernel\Attribute\AsController;
@ -30,6 +31,7 @@ class DeletePermanentAction extends AbstractOgRepositoryController
throw new ValidatorException('Fullsum is required');
}
/** @var ImageRepository $image */
$image = $data->getImage();
$this->logger->info('Deleting image', ['image' => $image->getName()]);
@ -43,6 +45,13 @@ class DeletePermanentAction extends AbstractOgRepositoryController
$this->entityManager->remove($data);
$this->entityManager->flush();
$imageImageCollection = $image->getImageImageRepositories();
if ($imageImageCollection->isEmpty()) {
$this->entityManager->remove($image);
$this->entityManager->flush();
}
return new JsonResponse(data: $content, status: Response::HTTP_OK);
}
}

View File

@ -30,7 +30,7 @@ class DeployImageAction extends AbstractOgRepositoryController
* @throws ClientExceptionInterface
* @throws TransportExceptionInterface
*/
public function __invoke(DeployImageInput $input, ImageImageRepository $data, Client $client, HttpClientInterface $httpClient): JsonResponse
public function __invoke(DeployImageInput $input, ImageImageRepository $data, Client $client): JsonResponse
{
$params = [
'json' => [

View File

@ -2,7 +2,9 @@
namespace App\Repository;
use App\Entity\Image;
use App\Entity\ImageImageRepository;
use App\Entity\ImageRepository as Repository;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Doctrine\Persistence\ManagerRegistry;
@ -16,6 +18,19 @@ class ImageImageRepositoryRepository extends AbstractRepository
parent::__construct($registry, ImageImageRepository::class);
}
public function findLatestVersionByImageAndRepository(Image $image, Repository $repository): ?ImageImageRepository
{
return $this->createQueryBuilder('i')
->andWhere('i.image = :imageId')
->setParameter('imageId', $image->getId())
->andWhere('i.repository = :repository')
->setParameter('repository', $repository->getId())
->orderBy('i.version', 'DESC')
->setMaxResults(1)
->getQuery()
->getOneOrNullResult();
}
public function findLatestVersion(): ?ImageImageRepository
{
return $this->createQueryBuilder('i')

View File

@ -65,11 +65,8 @@ readonly class ImageProcessor implements ProcessorInterface
if ($data->selectedImage){
$content = $this->renameActionController->__invoke($data->selectedImage->getEntity());
//$content = $this->renameActionController->__invoke($data->selectedImage->getEntity());
if ($content->getStatusCode() !== 200){
throw new \Exception('Error renaming image');
}
$response = $this->createImageActionController->__invoke($data->selectedImage->getEntity());
} else {