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<GarbageCollectionStatus, Error> {
- let datastore = DataStore::lookup_datastore(&store, Some(Operation::Read))?;
-
- let status = datastore.last_gc_status();
-
- Ok(status)
-}
-
#[api(
input: {
properties: {
},
)]
/// Garbage collection status.
-pub fn garbage_collection_job_status(
+pub fn garbage_collection_status(
store: String,
_info: &ApiMethod,
_rpcenv: &mut dyn RpcEnvironment,
.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()
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: {
rpcenv: &mut dyn RpcEnvironment,
) -> Result<Vec<GarbageCollectionJobStatus>, 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::<Vec<_>>(),
};