all lists on lists.proxmox.com
 help / color / mirror / Atom feed
* [pve-devel] [PATCH pve-manager v3] api: add 'type' parameter to pool GET endpoint
@ 2022-01-31 11:16 Hannes Laimer
  2022-01-31 12:31 ` [pve-devel] applied: " Thomas Lamprecht
  0 siblings, 1 reply; 2+ messages in thread
From: Hannes Laimer @ 2022-01-31 11:16 UTC (permalink / raw)
  To: pve-devel

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

v2(based on Thomas Lamprecht <t.lamprecht@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





^ permalink raw reply	[flat|nested] 2+ messages in thread

* [pve-devel] applied: [PATCH pve-manager v3] api: add 'type' parameter to pool GET endpoint
  2022-01-31 11:16 [pve-devel] [PATCH pve-manager v3] api: add 'type' parameter to pool GET endpoint Hannes Laimer
@ 2022-01-31 12:31 ` Thomas Lamprecht
  0 siblings, 0 replies; 2+ messages in thread
From: Thomas Lamprecht @ 2022-01-31 12:31 UTC (permalink / raw)
  To: Proxmox VE development discussion, Hannes Laimer

On 31.01.22 12:16, Hannes Laimer wrote:
> Signed-off-by: Hannes Laimer <h.laimer@proxmox.com>
> ---
> v3:
>   - fix logic, eq -> ne
> 
> v2(based on Thomas Lamprecht <t.lamprecht@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(-)
> 
>

applied, thanks!




^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2022-01-31 12:31 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-01-31 11:16 [pve-devel] [PATCH pve-manager v3] api: add 'type' parameter to pool GET endpoint Hannes Laimer
2022-01-31 12:31 ` [pve-devel] applied: " Thomas Lamprecht

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal