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 C610F647EF for ; Fri, 30 Oct 2020 15:02:19 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 74EC814990 for ; Fri, 30 Oct 2020 15:02:19 +0100 (CET) Received: from proxmox-new.maurer-it.com (proxmox-new.maurer-it.com [212.186.127.180]) (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 17DB114635 for ; Fri, 30 Oct 2020 15:02:17 +0100 (CET) Received: from proxmox-new.maurer-it.com (localhost.localdomain [127.0.0.1]) by proxmox-new.maurer-it.com (Proxmox) with ESMTP id D6BD642994 for ; Fri, 30 Oct 2020 15:02:16 +0100 (CET) From: Dominik Csapak To: pbs-devel@lists.proxmox.com Date: Fri, 30 Oct 2020 15:02:13 +0100 Message-Id: <20201030140215.13329-6-d.csapak@proxmox.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201030140215.13329-1-d.csapak@proxmox.com> References: <20201030140215.13329-1-d.csapak@proxmox.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SPAM-LEVEL: Spam detection results: 0 AWL 0.429 Adjusted score from AWL reputation of From: address KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment RCVD_IN_DNSWL_MED -2.3 Sender listed at https://www.dnswl.org/, medium trust SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record URIBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [status.rs] Subject: [pbs-devel] [PATCH proxmox-backup 4/6] api2/status: remove list_task api call X-BeenThere: pbs-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox Backup Server development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 30 Oct 2020 14:02:19 -0000 we do not need it anymore, we can do everything with nodes/NODE/tasks instead Signed-off-by: Dominik Csapak --- src/api2/status.rs | 99 ---------------------------------------------- 1 file changed, 99 deletions(-) diff --git a/src/api2/status.rs b/src/api2/status.rs index 02ba1a78..582d7f0f 100644 --- a/src/api2/status.rs +++ b/src/api2/status.rs @@ -17,17 +17,13 @@ use crate::api2::types::{ RRDMode, RRDTimeFrameResolution, Authid, - TaskListItem, - TaskStateType, }; -use crate::server; use crate::backup::{DataStore}; use crate::config::datastore; use crate::tools::statistics::{linear_regression}; use crate::config::cached_user_info::CachedUserInfo; use crate::config::acl::{ - PRIV_SYS_AUDIT, PRIV_DATASTORE_AUDIT, PRIV_DATASTORE_BACKUP, }; @@ -179,103 +175,8 @@ fn datastore_status( Ok(list.into()) } -#[api( - input: { - properties: { - since: { - type: i64, - description: "Only list tasks since this UNIX epoch.", - optional: true, - }, - typefilter: { - optional: true, - type: String, - description: "Only list tasks, whose type contains this string.", - }, - statusfilter: { - optional: true, - type: Array, - description: "Only list tasks which have any one of the listed status.", - items: { - type: TaskStateType, - }, - }, - }, - }, - returns: { - description: "A list of tasks.", - type: Array, - items: { type: TaskListItem }, - }, - access: { - description: "Users can only see there own tasks, unless the have Sys.Audit on /system/tasks.", - permission: &Permission::Anybody, - }, -)] -/// List tasks. -pub fn list_tasks( - since: Option, - typefilter: Option, - statusfilter: Option>, - _param: Value, - rpcenv: &mut dyn RpcEnvironment, -) -> Result, Error> { - - let auth_id: Authid = rpcenv.get_auth_id().unwrap().parse()?; - let user_info = CachedUserInfo::new()?; - let user_privs = user_info.lookup_privs(&auth_id, &["system", "tasks"]); - - let list_all = (user_privs & PRIV_SYS_AUDIT) != 0; - let since = since.unwrap_or_else(|| 0); - - let list: Vec = server::TaskListInfoIterator::new(false)? - .take_while(|info| { - match info { - Ok(info) => info.upid.starttime > since, - Err(_) => false - } - }) - .filter_map(|info| { - match info { - Ok(info) => { - if list_all || info.upid.auth_id == auth_id { - if let Some(filter) = &typefilter { - if !info.upid.worker_type.contains(filter) { - return None; - } - } - - if let Some(filters) = &statusfilter { - if let Some(state) = &info.state { - let statetype = match state { - server::TaskState::OK { .. } => TaskStateType::OK, - server::TaskState::Unknown { .. } => TaskStateType::Unknown, - server::TaskState::Error { .. } => TaskStateType::Error, - server::TaskState::Warning { .. } => TaskStateType::Warning, - }; - - if !filters.contains(&statetype) { - return None; - } - } - } - - Some(Ok(TaskListItem::from(info))) - } else { - None - } - } - Err(err) => Some(Err(err)) - } - }) - .collect::, Error>>()?; - - Ok(list.into()) -} - const SUBDIRS: SubdirMap = &[ ("datastore-usage", &Router::new().get(&API_METHOD_DATASTORE_STATUS)), - ("tasks", &Router::new().get(&API_METHOD_LIST_TASKS)), ]; pub const ROUTER: Router = Router::new() -- 2.20.1