[pve-devel] [RFC qemu-server] If a VM is offline, catch the netcat timeout with a user friendly message
Dietmar Maurer
dietmar at proxmox.com
Mon Jan 9 14:52:51 CET 2017
nc6 simply suppress errors for some reason, test with:
# nc6 -l -p 8000 -w 10 -e "asdasdfadf"
Maybe it is better to use socat?
socat TCP-listen:8000 exec:asdasdfadf,nofork
where 'asdasdfadf' is a non existing command ...
> On November 30, 2016 at 10:19 AM Emmanuel Kasper <e.kasper at proxmox.com> wrote:
>
>
> This error message replaces the error:
> TASK ERROR: command '/bin/nc6 -l -p 5900 -w 10 -e '/usr/bin/ssh -T -o
> BatchMode=yes 192.168.16.75 /usr/sbin/qm vncproxy 401 2>/dev/null'' failed:
> exit code 1
> as seen in the task list.
>
> It is not currently possible to test if a VM is running or not for the whole
> cluster
> wide, so we just improve the error message.
> ---
> PVE/API2/Qemu.pm | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/PVE/API2/Qemu.pm b/PVE/API2/Qemu.pm
> index 902f028..ce83482 100644
> --- a/PVE/API2/Qemu.pm
> +++ b/PVE/API2/Qemu.pm
> @@ -1411,8 +1411,8 @@ __PACKAGE__->register_method({
> # also redirect stderr (else we get RFB protocol errors)
> $cmd = ['/bin/nc6', '-l', '-p', $port, '-w', $timeout, '-e', "$qmstr
> 2>/dev/null"];
> }
> -
> - PVE::Tools::run_command($cmd);
> + # catch netcat timeout when the VM is not running
> + PVE::Tools::run_command($cmd, errmsg => "Is VM $vmid running ? Unable to
> open a console");
>
> return;
> };
> --
> 2.1.4
>
>
> _______________________________________________
> pve-devel mailing list
> pve-devel at pve.proxmox.com
> http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
More information about the pve-devel
mailing list