[pve-devel] [PATCH manager v2 4/5] add task list/log/status to pvenode

Dominik Csapak d.csapak at proxmox.com
Fri Jun 29 10:20:22 CEST 2018


and use the newly created print_api_* helpers for this

Signed-off-by: Dominik Csapak <d.csapak at proxmox.com>
---
 PVE/CLI/pvenode.pm | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/PVE/CLI/pvenode.pm b/PVE/CLI/pvenode.pm
index cf687666..7c0f7b64 100644
--- a/PVE/CLI/pvenode.pm
+++ b/PVE/CLI/pvenode.pm
@@ -8,6 +8,7 @@ use PVE::API2::ACMEAccount;
 use PVE::API2::Certificates;
 use PVE::API2::NodeConfig;
 use PVE::API2::Nodes;
+use PVE::API2::Tasks;
 
 use PVE::CertHelpers;
 use PVE::Certificate;
@@ -15,6 +16,7 @@ use PVE::Exception qw(raise_param_exc raise);
 use PVE::JSONSchema qw(get_standard_option);
 use PVE::NodeConfig;
 use PVE::RPCEnvironment;
+use PVE::CLIFormatter;
 
 use Term::ReadLine;
 
@@ -179,6 +181,29 @@ our $cmddef = {
 	delete => [ 'PVE::API2::Certificates', 'remove_custom_cert', ['restart'], { node => $nodename } ],
     },
 
+    task => {
+	list => [ 'PVE::API2::Tasks', 'node_tasks', [], { node => $nodename }, sub {
+	    my ($data, $resultprops) = @_;
+	    foreach my $task (@$data) {
+		if ($task->{status} ne 'OK') {
+		    $task->{status} = 'ERROR';
+		}
+	    }
+	    PVE::CLIFormatter::print_api_list($data, $resultprops, ['upid', 'type', 'id', 'user', 'starttime', 'endtime', 'status' ], 0);
+	}],
+	status => [ 'PVE::API2::Tasks', 'read_task_status', [ 'upid' ], { node => $nodename }, sub {
+	    my ($data, $resultprops) = @_;
+	    PVE::CLIFormatter::print_api_result('text', $data, $resultprops);
+	}],
+	# set limit to 1000000, so we see the whole log, not only the first 50 lines by default
+	log => [ 'PVE::API2::Tasks', 'read_task_log', [ 'upid' ], { node => $nodename, limit => 1000000 }, sub {
+	    my ($data, $resultprops) = @_;
+	    foreach my $line (@$data) {
+		print $line->{t} . "\n";
+	    }
+	}],
+    },
+
     acme => {
 	account => {
 	    list => [ 'PVE::API2::ACMEAccount', 'account_index', [], {}, sub {
-- 
2.11.0




More information about the pve-devel mailing list