Add the pveX variants (where X > 0) to the list too, so one knows they exits. Also this allows them to be shown and chosen in the UI.
Signed-off-by: Dominik Csapak <d.csa...@proxmox.com> --- new in v2 PVE/API2/Qemu/Machine.pm | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/PVE/API2/Qemu/Machine.pm b/PVE/API2/Qemu/Machine.pm index afb535c2..11eba34b 100644 --- a/PVE/API2/Qemu/Machine.pm +++ b/PVE/API2/Qemu/Machine.pm @@ -6,6 +6,7 @@ use warnings; use JSON; use PVE::JSONSchema qw(get_standard_option); +use PVE::QemuServer::Machine; use PVE::RESTHandler; use PVE::Tools qw(file_get_contents); @@ -51,7 +52,28 @@ __PACKAGE__->register_method({ code => sub { my $machines = eval { my $raw = file_get_contents('/usr/share/kvm/machine-versions-x86_64.json'); - return from_json($raw, { utf8 => 1 }); + my $machines = from_json($raw, { utf8 => 1 }); + + my $to_add = []; + + for my $machine ($machines->@*) { + my $base_version = $machine->{version}; + my $pvever = PVE::QemuServer::Machine::get_pve_version($base_version); + for (my $i = 1; $i <= $pvever; $i++) { + my $version = $base_version . "+pve$i"; + my $entry = { + id => $machine->{id} . "+pve$i", + type => $machine->{type}, + version => $version, + }; + + push $to_add->@*, $entry; + } + } + + push $machines->@*, $to_add->@*; + + return [sort { $b->{id} cmp $a->{id} } $machines->@*]; }; die "could not load supported machine versions - $@\n" if $@; return $machines; -- 2.39.5 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel