From 113de4515b51019ed66726a48c17c25ef612cc26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabian=20Gr=C3=BCnbichler?= Date: Mon, 22 Apr 2024 11:43:51 +0200 Subject: [PATCH] api: merge garbage-collection-status and -job-status MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit the latter was newly introduced, and they both return basically the same information now. the new extended (job) status struct is a strict superset of the old status struct, so this is not a breaking change API wise. Signed-off-by: Fabian Grünbichler --- src/api2/admin/datastore.rs | 34 +--------------------------------- src/api2/admin/gc.rs | 8 +++----- 2 files changed, 4 insertions(+), 38 deletions(-) diff --git a/src/api2/admin/datastore.rs b/src/api2/admin/datastore.rs index da2b545a..e7a823b5 100644 --- a/src/api2/admin/datastore.rs +++ b/src/api2/admin/datastore.rs @@ -1212,34 +1212,6 @@ pub fn start_garbage_collection( Ok(json!(upid_str)) } -#[api( - input: { - properties: { - store: { - schema: DATASTORE_SCHEMA, - }, - }, - }, - returns: { - type: GarbageCollectionStatus, - }, - access: { - permission: &Permission::Privilege(&["datastore", "{store}"], PRIV_DATASTORE_AUDIT, false), - }, -)] -/// Garbage collection status. -pub fn garbage_collection_status( - store: String, - _info: &ApiMethod, - _rpcenv: &mut dyn RpcEnvironment, -) -> Result { - let datastore = DataStore::lookup_datastore(&store, Some(Operation::Read))?; - - let status = datastore.last_gc_status(); - - Ok(status) -} - #[api( input: { properties: { @@ -1256,7 +1228,7 @@ pub fn garbage_collection_status( }, )] /// Garbage collection status. -pub fn garbage_collection_job_status( +pub fn garbage_collection_status( store: String, _info: &ApiMethod, _rpcenv: &mut dyn RpcEnvironment, @@ -2406,10 +2378,6 @@ const DATASTORE_INFO_SUBDIRS: SubdirMap = &[ .get(&API_METHOD_GARBAGE_COLLECTION_STATUS) .post(&API_METHOD_START_GARBAGE_COLLECTION), ), - ( - "gc-job-status", - &Router::new().get(&API_METHOD_GARBAGE_COLLECTION_JOB_STATUS), - ), ( "group-notes", &Router::new() diff --git a/src/api2/admin/gc.rs b/src/api2/admin/gc.rs index 7535f369..bca06897 100644 --- a/src/api2/admin/gc.rs +++ b/src/api2/admin/gc.rs @@ -8,7 +8,7 @@ use pbs_api_types::DATASTORE_SCHEMA; use serde_json::Value; -use crate::api2::admin::datastore::{garbage_collection_job_status, get_datastore_list}; +use crate::api2::admin::datastore::{garbage_collection_status, get_datastore_list}; #[api( input: { @@ -37,13 +37,11 @@ pub fn list_all_gc_jobs( rpcenv: &mut dyn RpcEnvironment, ) -> Result, Error> { let gc_info = match store { - Some(store) => { - garbage_collection_job_status(store, _info, rpcenv).map(|info| vec![info])? - } + Some(store) => garbage_collection_status(store, _info, rpcenv).map(|info| vec![info])?, None => get_datastore_list(Value::Null, _info, rpcenv)? .into_iter() .map(|store_list_item| store_list_item.store) - .filter_map(|store| garbage_collection_job_status(store, _info, rpcenv).ok()) + .filter_map(|store| garbage_collection_status(store, _info, rpcenv).ok()) .collect::>(), };