[pve-devel] applied: [PATCH pve-client v3 2/2] Add task log to 'lxc create'
Dietmar Maurer
dietmar at proxmox.com
Wed Jun 20 06:55:15 CEST 2018
Applied
> On June 19, 2018 at 5:46 PM René Jochum <r.jochum at proxmox.com> wrote:
>
>
> ---
> PVE/APIClient/Commands/lxc.pm | 19 +++++++++++++++++--
> PVE/APIClient/Helpers.pm | 23 +++++++++++++++++++++--
> 2 files changed, 38 insertions(+), 4 deletions(-)
>
> diff --git a/PVE/APIClient/Commands/lxc.pm b/PVE/APIClient/Commands/lxc.pm
> index 2309ec0..3add2dd 100644
> --- a/PVE/APIClient/Commands/lxc.pm
> +++ b/PVE/APIClient/Commands/lxc.pm
> @@ -429,6 +429,16 @@ __PACKAGE__->register_method ({
> remote => get_standard_option('pveclient-remote-name'),
> vmid => get_standard_option('pve-vmid'),
> node => get_standard_option('pve-node'),
> + quiet => {
> + description => "Suppress log output.",
> + type => 'boolean',
> + optional => 1,
> + },
> + background => {
> + description => "Do not wait for the command to complete.",
> + type => 'boolean',
> + optional => 1,
> + },
> }),
> },
> returns => { type => 'null'},
> @@ -439,12 +449,17 @@ __PACKAGE__->register_method ({
> my $vmid = $param->{vmid};
> my $node = PVE::APIClient::Tools::extract_param($param, 'node');
>
> + my $quiet = PVE::APIClient::Tools::extract_param($param, 'quiet');
> + my $background = PVE::APIClient::Tools::extract_param($param, 'background');
> +
> my $config = PVE::APIClient::Config->load();
> my $conn = PVE::APIClient::Config->remote_conn($config, $remote);
>
> my $upid = $conn->post("/nodes/$node/lxc", $param);
>
> - print PVE::APIClient::Helpers::poll_task($conn, $node, $upid) . "\n";
> + if (!$background) {
> + print PVE::APIClient::Helpers::poll_task($conn, $node, $upid, $quiet) .
> "\n";
> + }
>
> return undef;
> }});
> @@ -475,7 +490,7 @@ __PACKAGE__->register_method ({
>
> my $upid = $conn->delete("/nodes/$resource->{node}/lxc/$resource->{vmid}",
> $param);
>
> - print PVE::APIClient::Helpers::poll_task($conn, $resource->{node}, $upid) .
> "\n";
> + print PVE::APIClient::Helpers::poll_task($conn, $resource->{node}, $upid, 1)
> . "\n";
>
> return undef;
> }});
> diff --git a/PVE/APIClient/Helpers.pm b/PVE/APIClient/Helpers.pm
> index 30b8475..7d855ec 100644
> --- a/PVE/APIClient/Helpers.pm
> +++ b/PVE/APIClient/Helpers.pm
> @@ -321,19 +321,38 @@ sub get_vmid_resource {
> }
>
> sub poll_task {
> - my ($conn, $node, $upid) = @_;
> + my ($conn, $node, $upid, $quiet) = @_;
>
> my $path = "api2/json/nodes/$node/tasks/$upid/status";
>
> my $task_status;
> + my $last_line = 0;
> while(1) {
> + if (!$quiet) {
> + my $path = "api2/json/nodes/$node/tasks/$upid/log";
> + my $task_log = $conn->get($path, {start => $last_line});
> +
> + my $printme = '';
> + for my $li (@$task_log) {
> + if ($li->{t} eq 'no content') {
> + next;
> + }
> + $printme .= $li->{t} . "\n";
> + $last_line = $li->{n};
> + }
> +
> + if ($printme ne '') {
> + print $printme;
> + }
> + }
> +
> $task_status = $conn->get($path, {});
>
> if ($task_status->{status} eq "stopped") {
> last;
> }
>
> - sleep(10);
> + sleep(2);
> }
>
> return $task_status->{exitstatus};
> --
> 2.11.0
>
> _______________________________________________
> pve-devel mailing list
> pve-devel at pve.proxmox.com
> https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
More information about the pve-devel
mailing list