From 912524752e47fe84a623ac82f002d6dae959f81f Mon Sep 17 00:00:00 2001 From: Dietmar Maurer Date: Mon, 15 Apr 2019 08:38:14 +0200 Subject: [PATCH] src/api2/admin/datastore/pxar.rs: create worker task for file upload --- src/api2/admin/datastore/pxar.rs | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/api2/admin/datastore/pxar.rs b/src/api2/admin/datastore/pxar.rs index 225e4da0..a44f75f5 100644 --- a/src/api2/admin/datastore/pxar.rs +++ b/src/api2/admin/datastore/pxar.rs @@ -3,7 +3,7 @@ use failure::*; use crate::tools; use crate::tools::wrapped_reader_stream::*; use crate::backup::*; -//use crate::server::rest::*; +use crate::server; use crate::api_schema::*; use crate::api_schema::router::*; @@ -51,7 +51,7 @@ fn upload_pxar( req_body: Body, param: Value, _info: &ApiAsyncMethod, - _rpcenv: &mut RpcEnvironment, + rpcenv: &mut RpcEnvironment, ) -> Result { let store = tools::required_string_param(¶m, "store")?; @@ -67,7 +67,9 @@ fn upload_pxar( let backup_id = tools::required_string_param(¶m, "backup-id")?; let backup_time = tools::required_integer_param(¶m, "backup-time")?; - println!("Upload {}/{}/{}/{}/{}", store, backup_type, backup_id, backup_time, archive_name); + let worker_id = format!("{}_{}_{}_{}_{}", store, backup_type, backup_id, backup_time, archive_name); + + println!("Upload {}", worker_id); let content_type = parts.headers.get(http::header::CONTENT_TYPE) .ok_or(format_err!("missing content-type header"))?; @@ -90,7 +92,14 @@ fn upload_pxar( let upload = UploadPxar { stream: req_body, index, count: 0}; - let resp = upload.and_then(|_| { + let worker = server::WorkerTask::new("upload", Some(worker_id), &rpcenv.get_user().unwrap(), false)?; + + let resp = upload + .then(move |result| { + worker.log_result(result); + Ok(()) + }) + .and_then(|_| { let response = http::Response::builder() .status(200)