| Summary: | Не используется значение по умолчанию для CPU при импорте ВМ из OVA, OVF | ||
|---|---|---|---|
| Product: | Sisyphus | Reporter: | Vladislav Glinkin <glinkinvd> |
| Component: | pve-qemu-server | Assignee: | kozorizki <kozorizki> |
| Status: | NEW --- | QA Contact: | qa-sisyphus |
| Severity: | normal | ||
| Priority: | P5 | CC: | andy, shaba, shrek |
| Version: | unstable | ||
| Hardware: | x86_64 | ||
| OS: | Linux | ||
Версия пакета: pve-qemu-server-9.0.18-alt1 Шаги воспроизведения: 1) Импортировать виртуальную машину из OVF файла без явного указания типа CPU, используя значение по умолчанию. Фактический результат: Если при импорте виртуальной машины не указать тип CPU явно, то возникает ошибка "cpu: invalid format - CPU is missing cputype". Значение по умолчанию (kvm64) не используется. Похоже, что дело в функции validate_cpu_conf, объявленной в /usr/share/perl5/PVE/QemuServer/CPUConfig.pm: sub validate_cpu_conf { my ($cpu) = @_; # required, but can't be forced in schema since it's encoded in section header for custom models die "CPU is missing cputype\n" if !$cpu->{cputype}; return $cpu; } В случае, если тип CPU не определён - то она даже не пытается использовать значением по умолчанию. При создании виртуальных машин такое поведение не воспроизводится - значение по умолчанию используется. Если в функцию validate_cpu_conf добавить установку значения по умолчанию, то данное поведение не воспроизводится. Как пример: --- a/usr/share/perl5/PVE/QemuServer/CPUConfig.pm +++ b/usr/share/perl5/PVE/QemuServer/CPUConfig.pm @@ -310,6 +310,9 @@ PVE::JSONSchema::register_format('pve-cpu-conf', $cpu_fmt, \&validate_cpu_conf); sub validate_cpu_conf { my ($cpu) = @_; # required, but can't be forced in schema since it's encoded in section header for custom models + if (!defined($cpu->{cputype}) || $cpu->{cputype} eq '') { + $cpu->{cputype} = $cpu_fmt->{cputype}->{default}; + } die "CPU is missing cputype\n" if !$cpu->{cputype}; return $cpu; }