a bit of a rationale would be nice ;) isn't this just a simple map transformation that can be done client-side?
my $hash = { map { my $key = delete $_->{key}; return ($key => $_); } @$array }; or in whatever language you need. filtering/sorting/limiting server-side makes sense for some calls that might return a lot of data otherwise, but I don't think adapting all API calls to represent data with different structures but identical content is a good idea. (not that I am too happy that we have so many 'array of object with key property' return values to accomodate ExtJS, when our backend and API usually carries the key as key and not part of the object) On May 20, 2020 2:23 pm, Tim Marx wrote: > Signed-off-by: Tim Marx <t.m...@proxmox.com> > --- > PVE/API2/Qemu.pm | 13 +++++++++---- > 1 file changed, 9 insertions(+), 4 deletions(-) > > diff --git a/PVE/API2/Qemu.pm b/PVE/API2/Qemu.pm > index fd51bf3..0b31f53 100644 > --- a/PVE/API2/Qemu.pm > +++ b/PVE/API2/Qemu.pm > @@ -940,14 +940,20 @@ __PACKAGE__->register_method({ > check => ['perm', '/vms/{vmid}', [ 'VM.Audit' ]], > }, > parameters => { > - additionalProperties => 0, > properties => { > node => get_standard_option('pve-node'), > vmid => get_standard_option('pve-vmid', { completion => > \&PVE::QemuServer::complete_vmid }), > + object => { > + description => "In this case the root element is an object > instead of an array.". > + "The key property of the items will be extracted > and used as the root object keys.", > + optional => 1, > + default => 0, > + type => 'boolean', > + }, > }, > }, > returns => { > - type => "array", > + type => [ "array", "object"], > items => { > type => "object", > properties => { > @@ -985,8 +991,7 @@ __PACKAGE__->register_method({ > > $conf->{cipassword} = '**********' if defined($conf->{cipassword}); > $conf->{pending}->{cipassword} = '********** ' if > defined($conf->{pending}->{cipassword}); > - > - return PVE::GuestHelpers::config_with_pending_array($conf, > $pending_delete_hash); > + return PVE::GuestHelpers::config_with_pending($conf, > $pending_delete_hash, $param->{object}); > }}); > > # POST/PUT {vmid}/config implementation > -- > 2.20.1 > > _______________________________________________ > pve-devel mailing list > pve-devel@pve.proxmox.com > https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel > > _______________________________________________ pve-devel mailing list pve-devel@pve.proxmox.com https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel