From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by lists.proxmox.com (Postfix) with ESMTPS id 0C480755F9; Thu, 24 Jun 2021 09:10:49 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 0F7121247D; Thu, 24 Jun 2021 09:10:20 +0200 (CEST) Received: from proxmox-new.maurer-it.com (proxmox-new.maurer-it.com [94.136.29.106]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by firstgate.proxmox.com (Proxmox) with ESMTPS id 4779B12456; Thu, 24 Jun 2021 09:10:18 +0200 (CEST) Received: from proxmox-new.maurer-it.com (localhost.localdomain [127.0.0.1]) by proxmox-new.maurer-it.com (Proxmox) with ESMTP id 20CF94678E; Thu, 24 Jun 2021 09:10:18 +0200 (CEST) From: Dominik Csapak To: pve-devel@lists.proxmox.com, pmg-devel@lists.proxmox.com Date: Thu, 24 Jun 2021 09:10:16 +0200 Message-Id: <20210624071016.21013-8-d.csapak@proxmox.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20210624071016.21013-1-d.csapak@proxmox.com> References: <20210624071016.21013-1-d.csapak@proxmox.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SPAM-LEVEL: Spam detection results: 0 AWL 0.758 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Subject: [pve-devel] [PATCH pmg-api 3/3] PMG/API2/Tasks: add statusfilter X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 24 Jun 2021 07:10:49 -0000 like in PVE/PBS Signed-off-by: Dominik Csapak --- src/PMG/API2/Tasks.pm | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/src/PMG/API2/Tasks.pm b/src/PMG/API2/Tasks.pm index a369c2a..b3d4279 100644 --- a/src/PMG/API2/Tasks.pm +++ b/src/PMG/API2/Tasks.pm @@ -58,6 +58,12 @@ __PACKAGE__->register_method({ description => "Only list tasks until this UNIX epoch.", optional => 1, }, + statusfilter => { + type => 'string', + format => 'pve-task-status-type-list', + optional => 1, + description => 'List of Task States that should be returned.', + }, }, }, returns => { @@ -88,6 +94,27 @@ __PACKAGE__->register_method({ my $until = $param->{until}; my $errors = $param->{errors}; + my $statusfilter = { + ok => 1, + warning => 1, + error => 1, + unknown => 1, + }; + + if (defined($param->{statusfilter}) && !$errors) { + $statusfilter = { + ok => 0, + warning => 0, + error => 0, + unknown => 0, + }; + for my $filter (PVE::Tools::split_list($param->{statusfilter})) { + $statusfilter->{lc($filter)} = 1 ; + } + } elsif ($errors) { + $statusfilter->{ok} = 0; + } + my $count = 0; my $line; @@ -98,11 +125,13 @@ __PACKAGE__->register_method({ my $status = $5; if ((my $task = PVE::Tools::upid_decode($upid, 1))) { return if $userfilter && $task->{user} !~ m/\Q$userfilter\E/i; - return if $errors && $status && $status eq 'OK'; return if defined($since) && $task->{starttime} < $since; return if defined($until) && $task->{starttime} > $until; return if $typefilter && $task->{type} ne $typefilter; + my $statustype = PVE::Tools::upid_get_status_type($status); + return if !$statusfilter->{$statustype}; + return if $count++ < $start; return if $limit <= 0; -- 2.20.1