[pve-devel] [PATCH cluster] API/Cluster: autoflush STDOUT for join and create

Thomas Lamprecht t.lamprecht at proxmox.com
Tue Apr 3 08:39:32 CEST 2018


Any comments?

Am 03/27/2018 um 08:08 AM schrieb Thomas Lamprecht:
> We're in a forked worker here, so STDOUT isn't connected to a
> (pseudo)TTY directly, so perl flushes only when it's intewrnal buffer
> is full.
>
> Ensure each line gets flushed out to the API client in use to give
> immediate feedback about the operation.
>
> For example, our WebUIs Task Viewer won't show anything without this
> quite a bit of time, you may even get logged out before the flush
> from the perl side happens, which is simply bad UX.
>
> Signed-off-by: Thomas Lamprecht <t.lamprecht at proxmox.com>
> ---
>   data/PVE/API2/ClusterConfig.pm | 2 ++
>   1 file changed, 2 insertions(+)
>
> diff --git a/data/PVE/API2/ClusterConfig.pm b/data/PVE/API2/ClusterConfig.pm
> index ea253b5..ad7e8c6 100644
> --- a/data/PVE/API2/ClusterConfig.pm
> +++ b/data/PVE/API2/ClusterConfig.pm
> @@ -121,6 +121,7 @@ __PACKAGE__->register_method ({
>   	my $authuser = $rpcenv->get_user();
>   
>   	my $code = sub {
> +	    STDOUT->autoflush();
>   	    PVE::Cluster::setup_sshd_config(1);
>   	    PVE::Cluster::setup_rootsshconfig();
>   	    PVE::Cluster::setup_ssh_keys();
> @@ -512,6 +513,7 @@ __PACKAGE__->register_method ({
>   	my $authuser = $rpcenv->get_user();
>   
>   	my $worker = sub {
> +	    STDOUT->autoflush();
>   	    PVE::Tools::lock_file($local_cluster_lock, 10, \&PVE::Cluster::join, $param);
>   	    die $@ if $@;
>   	};





More information about the pve-devel mailing list