Bug 54360 - Ошибка при попытке импорта ВМ из файла ova в веб-интерфейсе
Summary: Ошибка при попытке импорта ВМ из файла ova в веб-интерфейсе
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: pve-storage (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 normal
Assignee: Alexey Shabalin
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2025-05-19 11:09 MSK by Elena Mishina
Modified: 2026-02-10 14:10 MSK (History)
5 users (show)

See Also:


Attachments
Ошибка при попытке импорта (124.08 KB, image/png)
2025-05-19 11:09 MSK, Elena Mishina
no flags Details
Успешный импорт, при наличии файла vmdk (121.46 KB, image/png)
2025-05-19 11:10 MSK, Elena Mishina
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Elena Mishina 2025-05-19 11:09:23 MSK
Created attachment 18493 [details]
Ошибка при попытке импорта

pve-storage 8.3.6-alt1

Шаги воспроизведения:
1) настроить файловое хранилище с допустимым типом содержимого import;
2) загрузить файл OVA в хранилище: выбрать хранилище, перейти на вкладку Импорт, нажать кнопку Отправить, выбрать файл и нажать кнопку Отправить.
3) импортировать ВМ: выбрать файл OVA в хранилище, нажать кнопку Импорт

Ожидаемый результат:
Открывается окно импорта, где на вкладке "Дополнительно" отображаются диски импортируемой ВМ

Получаемый результат:
Ошибка (см.скриншот):
could not get absolute path of WinDev2407Eval-disk001.vmdk: No such file or directory (500)
(или, в некоторых случаях, диски просто не отображаются, как-будто их нет)

Если в хранилище отдельно загрузить файл vmdk, то окно открывается и ВМ успешно импортируется.

На первый взгляд кажется, что файл ovf из ova извлекается (распаковывается), а файлы vmdk - нет: судя по /usr/share/perl5/PVE/GuestImport/OVF.pm файл vmdk ожидается в каталоге /mnt/nfs-vol/import (для хранилища NFS).
Comment 1 Elena Mishina 2025-05-19 11:10:24 MSK
Created attachment 18494 [details]
Успешный импорт, при наличии файла vmdk
Comment 2 Vladislav Glinkin 2025-12-25 11:56:14 MSK
Столкнулся с этой же проблемой при проверке документации.

Для решения данной проблемы помогло следующее изменение:

--- a/usr/share/perl5/PVE/GuestImport/OVF.pm
+++ b/usr/share/perl5/PVE/GuestImport/OVF.pm
@@ -363,8 +363,14 @@ ovf:Item[rasd:InstanceID='%s']/rasd:ResourceType", $controller_id,
         # and die if the diskimage is not somewhere under the $ovf path
         my $ovf_dir = realpath(dirname(File::Spec->rel2abs($ovf)))
             or die "could not get absolute path of $ovf: $!\n";
-        my $backing_file_path = realpath(join('/', $ovf_dir, $filepath))
-            or die "could not get absolute path of $filepath: $!\n";
+        my $backing_file_path = $ovf;
+        if ($isOva) {
+           $backing_file_path = $ovf;
+        }
+        else {
+           $backing_file_path = realpath(join('/', $ovf_dir, $filepath))
+                or die "could not get absolute path of $filepath: $!\n";
+        }
         if ($backing_file_path !~ /^\Q${ovf_dir}\E/) {
             die "error parsing $filepath, are you using a symlink ?\n";
         }
С таким изменением работает импорт из .ova файла без предварительной распаковки вручную, так и продолжает работать импорт из .ovf файлов. Поведение будет соответствовать нашей документации (https://docs.altlinux.org/ru-RU/alt-server-v/11.1/html/alt-server-v/ch33s03s02.html).
Comment 3 Vladislav Glinkin 2025-12-25 11:58:51 MSK
(Ответ для Vladislav Glinkin на комментарий #2)
> Столкнулся с этой же проблемой при проверке документации.

Версия: pve-storage-9.0.13-alt1
Comment 4 Vladislav Glinkin 2025-12-25 12:18:09 MSK
(Ответ для Vladislav Glinkin на комментарий #2)
> +        my $backing_file_path = $ovf;
> +        if ($isOva) {
> +           $backing_file_path = $ovf;
> +        }
> ...

Здесь опечатался, в первой строке достаточно просто объявить переменную backing_file_path:
my $backing_file_path;
Comment 5 Полина Пойденко 2026-01-26 16:07:45 MSK
При обновлении pve в p11 из task, поведение не поменялось. Все также не дает произвести импорт через веб-интерфейс файла формата *.ova.
https://packages.altlinux.org/ru/tasks/405588/
Comment 6 Полина Пойденко 2026-01-26 16:30:55 MSK
Дополнительно нельзя выполнить импорт файла формата ovf через веб-интерфейс PVE. 
Отображается ошибка "Неверное расширение файла". 

Импорт возможно произвести только через командную строку. 
https://docs.altlinux.org/ru-RU/alt-server-v/11.1/html/alt-server-v/ch33s03s03.html
Comment 7 Repository Robot 2026-02-10 14:10:05 MSK
pve-storage-9.1.0-alt2 -> sisyphus:

Tue Feb 10 2026 Sergey Konev <darisishe@altlinux> 9.1.0-alt2
- Use OVA file itself as path to diskimage (Closes: 54360)