]> git.proxmox.com Git - pve-client.git/blobdiff - PVE/APIClient/Helpers.pm
Add task log to 'lxc create'
[pve-client.git] / PVE / APIClient / Helpers.pm
index 30b847533564d0240c15831173dee9d73c4f36fb..7d855ec6ce58fc6775569fbb426c364dcc3f58bf 100644 (file)
@@ -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};