diff --git a/src/api2/admin/datastore.rs b/src/api2/admin/datastore.rs index 20aca6fb..0b14dfbf 100644 --- a/src/api2/admin/datastore.rs +++ b/src/api2/admin/datastore.rs @@ -952,11 +952,13 @@ pub fn prune_datastore( let datastore = DataStore::lookup_datastore(&store)?; + let to_stdout = rpcenv.env_type() == RpcEnvironmentType::CLI; + let upid_str = WorkerTask::new_thread( "prune", Some(store.clone()), auth_id.clone(), - false, + to_stdout, move |worker| crate::server::prune_datastore( worker.clone(), auth_id, diff --git a/src/api2/admin/sync.rs b/src/api2/admin/sync.rs index 07f268b5..94990adb 100644 --- a/src/api2/admin/sync.rs +++ b/src/api2/admin/sync.rs @@ -3,7 +3,7 @@ use anyhow::{bail, format_err, Error}; use serde_json::Value; -use proxmox::api::{api, ApiMethod, Permission, Router, RpcEnvironment}; +use proxmox::api::{api, ApiMethod, Permission, Router, RpcEnvironment, RpcEnvironmentType}; use proxmox::api::router::SubdirMap; use proxmox::{list_subdirs_api_method, sortable}; @@ -120,7 +120,9 @@ pub fn run_sync_job( let job = Job::new("syncjob", &id)?; - let upid_str = do_sync_job(job, sync_job, &auth_id, None)?; + let to_stdout = rpcenv.env_type() == RpcEnvironmentType::CLI; + + let upid_str = do_sync_job(job, sync_job, &auth_id, None, to_stdout)?; Ok(upid_str) } diff --git a/src/api2/admin/verify.rs b/src/api2/admin/verify.rs index a5e5c83f..6bdfdede 100644 --- a/src/api2/admin/verify.rs +++ b/src/api2/admin/verify.rs @@ -5,7 +5,7 @@ use serde_json::Value; use proxmox::api::router::SubdirMap; use proxmox::{list_subdirs_api_method, sortable}; -use proxmox::api::{api, ApiMethod, Permission, Router, RpcEnvironment}; +use proxmox::api::{api, ApiMethod, Permission, Router, RpcEnvironment, RpcEnvironmentType}; use pbs_api_types::{ VerificationJobConfig, VerificationJobStatus, JOB_ID_SCHEMA, Authid, @@ -117,8 +117,9 @@ pub fn run_verification_job( user_info.check_privs(&auth_id, &["datastore", &verification_job.store], PRIV_DATASTORE_VERIFY, true)?; let job = Job::new("verificationjob", &id)?; + let to_stdout = rpcenv.env_type() == RpcEnvironmentType::CLI; - let upid_str = do_verification_job(job, verification_job, &auth_id, None)?; + let upid_str = do_verification_job(job, verification_job, &auth_id, None, to_stdout)?; Ok(upid_str) } diff --git a/src/api2/config/datastore.rs b/src/api2/config/datastore.rs index 6301ffaa..c6036fc3 100644 --- a/src/api2/config/datastore.rs +++ b/src/api2/config/datastore.rs @@ -4,7 +4,7 @@ use anyhow::{bail, Error}; use serde_json::Value; use ::serde::{Deserialize, Serialize}; -use proxmox::api::{api, Router, RpcEnvironment, Permission}; +use proxmox::api::{api, Router, RpcEnvironment, RpcEnvironmentType, Permission}; use proxmox::api::section_config::SectionConfigData; use proxmox::api::schema::{ApiType, parse_property_string}; @@ -114,12 +114,13 @@ pub fn create_datastore( } let auth_id: Authid = rpcenv.get_auth_id().unwrap().parse()?; + let to_stdout = rpcenv.env_type() == RpcEnvironmentType::CLI; WorkerTask::new_thread( "create-datastore", Some(config.name.to_string()), auth_id, - false, + to_stdout, move |worker| do_create_datastore(lock, section_config, config, Some(&worker)), ) } diff --git a/src/api2/pull.rs b/src/api2/pull.rs index d7b155a1..1eb86ea3 100644 --- a/src/api2/pull.rs +++ b/src/api2/pull.rs @@ -66,6 +66,7 @@ pub fn do_sync_job( sync_job: SyncJobConfig, auth_id: &Authid, schedule: Option, + to_stdout: bool, ) -> Result { let job_id = format!("{}:{}:{}:{}", @@ -81,7 +82,7 @@ pub fn do_sync_job( &worker_type, Some(job_id.clone()), auth_id.clone(), - false, + to_stdout, move |worker| async move { job.start(&worker.upid().to_string())?; diff --git a/src/api2/tape/backup.rs b/src/api2/tape/backup.rs index 9342eb59..6b533820 100644 --- a/src/api2/tape/backup.rs +++ b/src/api2/tape/backup.rs @@ -164,6 +164,7 @@ pub fn do_tape_backup_job( setup: TapeBackupJobSetup, auth_id: &Authid, schedule: Option, + to_stdout: bool, ) -> Result { let job_id = format!("{}:{}:{}:{}", @@ -195,7 +196,7 @@ pub fn do_tape_backup_job( &worker_type, Some(job_id.clone()), auth_id.clone(), - false, + to_stdout, move |worker| { job.start(&worker.upid().to_string())?; let mut drive_lock = drive_lock; @@ -307,7 +308,9 @@ pub fn run_tape_backup_job( let job = Job::new("tape-backup-job", &id)?; - let upid_str = do_tape_backup_job(job, backup_job.setup, &auth_id, None)?; + let to_stdout = rpcenv.env_type() == RpcEnvironmentType::CLI; + + let upid_str = do_tape_backup_job(job, backup_job.setup, &auth_id, None, to_stdout)?; Ok(upid_str) } diff --git a/src/bin/proxmox-backup-proxy.rs b/src/bin/proxmox-backup-proxy.rs index dadce847..6734525b 100644 --- a/src/bin/proxmox-backup-proxy.rs +++ b/src/bin/proxmox-backup-proxy.rs @@ -638,7 +638,7 @@ async fn schedule_datastore_sync_jobs() { }; let auth_id = Authid::root_auth_id().clone(); - if let Err(err) = do_sync_job(job, job_config, &auth_id, Some(event_str)) { + if let Err(err) = do_sync_job(job, job_config, &auth_id, Some(event_str), false) { eprintln!("unable to start datastore sync job {} - {}", &job_id, err); } }; @@ -674,7 +674,7 @@ async fn schedule_datastore_verify_jobs() { Ok(job) => job, Err(_) => continue, // could not get lock }; - if let Err(err) = do_verification_job(job, job_config, &auth_id, Some(event_str)) { + if let Err(err) = do_verification_job(job, job_config, &auth_id, Some(event_str), false) { eprintln!("unable to start datastore verification job {} - {}", &job_id, err); } }; @@ -710,7 +710,7 @@ async fn schedule_tape_backup_jobs() { Ok(job) => job, Err(_) => continue, // could not get lock }; - if let Err(err) = do_tape_backup_job(job, job_config.setup, &auth_id, Some(event_str)) { + if let Err(err) = do_tape_backup_job(job, job_config.setup, &auth_id, Some(event_str), false) { eprintln!("unable to start tape backup job {} - {}", &job_id, err); } }; diff --git a/src/server/verify_job.rs b/src/server/verify_job.rs index 968e6bd4..7f6d73ff 100644 --- a/src/server/verify_job.rs +++ b/src/server/verify_job.rs @@ -19,6 +19,7 @@ pub fn do_verification_job( verification_job: VerificationJobConfig, auth_id: &Authid, schedule: Option, + to_stdout: bool, ) -> Result { let datastore = DataStore::lookup_datastore(&verification_job.store)?; @@ -36,7 +37,7 @@ pub fn do_verification_job( &worker_type, Some(job_id.clone()), auth_id.clone(), - false, + to_stdout, move |worker| { job.start(&worker.upid().to_string())?;