[pve-devel] [PATCH v3 qemu-server 3/3] print query-proxmox-support result in 'full' status

Fabian Grünbichler f.gruenbichler at proxmox.com
Wed Nov 25 10:09:10 CET 2020


this needs the following fix-up, else pvestatd spams the log for all not 
runnning VMs:

diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm
index 6966717..0103386 100644
--- a/PVE/QemuServer.pm
+++ b/PVE/QemuServer.pm
@@ -2750,6 +2750,8 @@ sub vmstatus {

     foreach my $vmid (keys %$list) {
        next if $opt_vmid && ($vmid ne $opt_vmid);
+       next if !$res->{$vmid}->{pid}; #not running
+
        # we can't use the $qmpclient since it might have already aborted on
        # 'query-balloon', but this might also fail for older versions...
        my $qemu_support = eval { mon_cmd($vmid, "query-proxmox-support") };

On November 24, 2020 4:41 pm, Stefan Reiter wrote:
> Extends print_recursive_hash for the CLI to handle JSON booleans so the
> result will actually show up in 'qm status --verbose'.
> 
> Signed-off-by: Stefan Reiter <s.reiter at proxmox.com>
> ---
> 
> v3: unchanged
> 
>  PVE/CLI/qm.pm     | 2 +-
>  PVE/QemuServer.pm | 8 ++++++++
>  2 files changed, 9 insertions(+), 1 deletion(-)
> 
> diff --git a/PVE/CLI/qm.pm b/PVE/CLI/qm.pm
> index b3b9251..b9b6051 100755
> --- a/PVE/CLI/qm.pm
> +++ b/PVE/CLI/qm.pm
> @@ -110,7 +110,7 @@ sub print_recursive_hash {
>  	foreach my $item (@$hash) {
>  	    print_recursive_hash("\t$prefix", $item);
>  	}
> -    } elsif (!ref($hash) && defined($hash)) {
> +    } elsif ((!ref($hash) && defined($hash)) || ref($hash) eq 'JSON::PP::Boolean') {
>  	if (defined($key)) {
>  	    print "$prefix$key: $hash\n";
>  	} else {
> diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm
> index 9704042..6966717 100644
> --- a/PVE/QemuServer.pm
> +++ b/PVE/QemuServer.pm
> @@ -2748,6 +2748,14 @@ sub vmstatus {
>  
>      $qmpclient->queue_execute(undef, 2);
>  
> +    foreach my $vmid (keys %$list) {
> +	next if $opt_vmid && ($vmid ne $opt_vmid);
> +	# we can't use the $qmpclient since it might have already aborted on
> +	# 'query-balloon', but this might also fail for older versions...
> +	my $qemu_support = eval { mon_cmd($vmid, "query-proxmox-support") };
> +	$res->{$vmid}->{'proxmox-support'} = $qemu_support // {};
> +    }
> +
>      foreach my $vmid (keys %$list) {
>  	next if $opt_vmid && ($vmid ne $opt_vmid);
>  	$res->{$vmid}->{qmpstatus} = $res->{$vmid}->{status} if !$res->{$vmid}->{qmpstatus};
> -- 
> 2.20.1
> 
> 
> 
> _______________________________________________
> pve-devel mailing list
> pve-devel at lists.proxmox.com
> https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
> 
> 
> 





More information about the pve-devel mailing list