Signed-off-by: Hannes Laimer <h.lai...@proxmox.com>
---
v3:
  - fix logic, eq -> ne

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..007fc815 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} ne 
$vmdata->{type};
            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;
+                   }
                }
-           }
 
-           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);
+               push @$members, $entry;
+           }
        }
 
        my $res = {
-- 
2.30.2



_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to