Am 31.01.22 um 11:11 schrieb Fabian Ebner: > Am 31.01.22 um 09:41 schrieb Hannes Laimer: >> Signed-off-by: Hannes Laimer <h.lai...@proxmox.com> >> --- >> v2(based on Thomas Lamprecht <t.lampre...@proxmox.com>'s feedback): >> - remove openzv >> - optimize loops >> >> This was asked in a forum post, and it does not interfere with >> anything else AFAIK. >> >> PVE/API2/Pool.pm | 33 ++++++++++++++++++++------------- >> 1 file changed, 20 insertions(+), 13 deletions(-) >> >> diff --git a/PVE/API2/Pool.pm b/PVE/API2/Pool.pm >> index 28c29ab8..ae31addf 100644 >> --- a/PVE/API2/Pool.pm >> +++ b/PVE/API2/Pool.pm >> @@ -211,6 +211,11 @@ __PACKAGE__->register_method ({ >> type => 'string', >> format => 'pve-poolid', >> }, >> + type => { >> + type => 'string', >> + enum => [ 'qemu', 'lxc', 'storage' ], >> + optional => 1, >> + }, >> }, >> }, >> returns => { >> @@ -269,27 +274,29 @@ __PACKAGE__->register_method ({ >> my $members = []; >> for my $vmid (sort keys %{$pool_config->{vms}}) { >> my $vmdata = $idlist->{$vmid}; >> - next if !$vmdata; >> + next if !$vmdata || defined($param->{type}) && $param->{type} eq >> $vmdata->{type}; > > Logic is inverted here, should be ne rather than eq. > >> my $entry = PVE::API2Tools::extract_vm_stats($vmid, $vmdata, $rrd); >> push @$members, $entry; >> } >> >> my $nodename = PVE::INotify::nodename(); >> my $cfg = PVE::Storage::config(); >> - for my $storeid (sort keys %{$pool_config->{storage}}) { >> - my $scfg = PVE::Storage::storage_config ($cfg, $storeid, 1); >> - next if !$scfg; >> - >> - my $storage_node = $nodename; # prefer local node >> - if ($scfg->{nodes} && !$scfg->{nodes}->{$storage_node}) { >> - for my $node (sort keys(%{$scfg->{nodes}})) { >> - $storage_node = $node; >> - last; >> + if (!defined($param->{type}) || $param->{type} eq 'storage') { >> + for my $storeid (sort keys %{$pool_config->{storage}}) { >> + my $scfg = PVE::Storage::storage_config ($cfg, $storeid, 1); >> + next if !$scfg; >> + >> + my $storage_node = $nodename; # prefer local node >> + if ($scfg->{nodes} && !$scfg->{nodes}->{$storage_node}) { >> + for my $node (sort keys(%{$scfg->{nodes}})) { >> + $storage_node = $node; >> + last; >> + } > > Not your code, but this loop could be replaced with a simple: > $storage_node = (sort keys $scfg->{nodes}->%*)[0]; > You can add a patch for it if you'd like.
Or maybe not, if $scfg->{nodes} can be an empty hash.. > >> } >> - } >> >> - my $entry = PVE::API2Tools::extract_storage_stats($storeid, $scfg, >> $storage_node, $rrd); >> - push @$members, $entry; >> + my $entry = PVE::API2Tools::extract_storage_stats($storeid, >> $scfg, $storage_node, $rrd); > > Style nit: >100 character line > >> + push @$members, $entry; >> + } >> } >> >> my $res = { > > > _______________________________________________ > pve-devel mailing list > pve-devel@lists.proxmox.com > https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel > > _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel