src/api2/admin/datastore/pxar.rs: create worker task for file upload
This commit is contained in:
parent
1be71fb02b
commit
912524752e
|
@ -3,7 +3,7 @@ use failure::*;
|
||||||
use crate::tools;
|
use crate::tools;
|
||||||
use crate::tools::wrapped_reader_stream::*;
|
use crate::tools::wrapped_reader_stream::*;
|
||||||
use crate::backup::*;
|
use crate::backup::*;
|
||||||
//use crate::server::rest::*;
|
use crate::server;
|
||||||
use crate::api_schema::*;
|
use crate::api_schema::*;
|
||||||
use crate::api_schema::router::*;
|
use crate::api_schema::router::*;
|
||||||
|
|
||||||
|
@ -51,7 +51,7 @@ fn upload_pxar(
|
||||||
req_body: Body,
|
req_body: Body,
|
||||||
param: Value,
|
param: Value,
|
||||||
_info: &ApiAsyncMethod,
|
_info: &ApiAsyncMethod,
|
||||||
_rpcenv: &mut RpcEnvironment,
|
rpcenv: &mut RpcEnvironment,
|
||||||
) -> Result<BoxFut, Error> {
|
) -> Result<BoxFut, Error> {
|
||||||
|
|
||||||
let store = tools::required_string_param(¶m, "store")?;
|
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_id = tools::required_string_param(¶m, "backup-id")?;
|
||||||
let backup_time = tools::required_integer_param(¶m, "backup-time")?;
|
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)
|
let content_type = parts.headers.get(http::header::CONTENT_TYPE)
|
||||||
.ok_or(format_err!("missing content-type header"))?;
|
.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 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()
|
let response = http::Response::builder()
|
||||||
.status(200)
|
.status(200)
|
||||||
|
|
Loading…
Reference in New Issue