From 9fdf8134d1a109a5e65012b52c9491ccb0605c36 Mon Sep 17 00:00:00 2001 From: Manuel Aranda Date: Mon, 8 Sep 2025 18:24:35 +0200 Subject: [PATCH] refs #2061. Added service 'create-backup' --- CHANGELOG.md | 5 +++ config/api_platform/ImageRepository.yaml | 9 +++++ .../OgRepository/Git/CreateBackupAction.php | 33 +++++++++++++++++++ src/Dto/Input/CreateBackupInput.php | 30 +++++++++++++++++ 4 files changed, 77 insertions(+) create mode 100644 src/Controller/OgRepository/Git/CreateBackupAction.php create mode 100644 src/Dto/Input/CreateBackupInput.php diff --git a/CHANGELOG.md b/CHANGELOG.md index 310ca13..952e5d4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,9 @@ # Changelog +## [0.23.0] - 2025-09-08 +### Added +- Se ha aƱadido la funcionalidad/servicio para poder realizar backups a repositorios GIT + +--- ## [0.22.4] - 2025-09-05 ### Fixed - Se ha corregido un typo en los ficheros de la carpeta "State/Processor" diff --git a/config/api_platform/ImageRepository.yaml b/config/api_platform/ImageRepository.yaml index 7361a3c..711cd87 100644 --- a/config/api_platform/ImageRepository.yaml +++ b/config/api_platform/ImageRepository.yaml @@ -119,6 +119,15 @@ resources: input: App\Dto\Input\CreateBranchInput uriTemplate: /image-repositories/server/git/{uuid}/create-branch controller: App\Controller\OgRepository\Git\CreateBranchAction + + git_repository_create_backup: + shortName: OgRepository Server + description: Create a backup in a Git repository + class: ApiPlatform\Metadata\Post + method: POST + input: App\Dto\Input\CreateBackupInput + uriTemplate: /image-repositories/server/git/{uuid}/create-backup + controller: App\Controller\OgRepository\Git\CreateBackupAction properties: diff --git a/src/Controller/OgRepository/Git/CreateBackupAction.php b/src/Controller/OgRepository/Git/CreateBackupAction.php new file mode 100644 index 0000000..251c69e --- /dev/null +++ b/src/Controller/OgRepository/Git/CreateBackupAction.php @@ -0,0 +1,33 @@ +createRequest('POST', 'http://'.$repository->getIp().':8006/ogrepository/v1/git/repositories/'.$input->repository.'/backup', [ + 'json' => [ + 'ssh_server' => $input->sshServer, + 'ssh_user' => $input->sshUser, + 'ssh_port' => $input->sshPort, + 'filename' => $input->filename, + ] + ]); + + if (isset($content['error']) && $content['code'] === Response::HTTP_INTERNAL_SERVER_ERROR) { + throw new BadRequestHttpException('Error creating backup'); + } + + return new JsonResponse(data: [], status: Response::HTTP_OK); + } +} \ No newline at end of file diff --git a/src/Dto/Input/CreateBackupInput.php b/src/Dto/Input/CreateBackupInput.php new file mode 100644 index 0000000..118ce19 --- /dev/null +++ b/src/Dto/Input/CreateBackupInput.php @@ -0,0 +1,30 @@ +