tools.rs: new helper required_string_param()
To extract parameters from Value.
This commit is contained in:
parent
0ee0ad5bf3
commit
0fe5d605e7
@ -1,5 +1,6 @@
|
|||||||
use failure::*;
|
use failure::*;
|
||||||
|
|
||||||
|
use crate::tools;
|
||||||
use crate::backup::datastore::*;
|
use crate::backup::datastore::*;
|
||||||
use crate::backup::archive_index::*;
|
use crate::backup::archive_index::*;
|
||||||
//use crate::server::rest::*;
|
//use crate::server::rest::*;
|
||||||
@ -41,8 +42,8 @@ impl Future for UploadCaTar {
|
|||||||
|
|
||||||
fn upload_catar(req_body: hyper::Body, param: Value, _info: &ApiUploadMethod) -> Result<BoxFut, Error> {
|
fn upload_catar(req_body: hyper::Body, param: Value, _info: &ApiUploadMethod) -> Result<BoxFut, Error> {
|
||||||
|
|
||||||
let store = param["name"].as_str().unwrap();
|
let store = tools::required_string_param(¶m, "name")?;
|
||||||
let archive_name = param["archive_name"].as_str().unwrap();
|
let archive_name = tools::required_string_param(¶m, "archive_name")?;
|
||||||
|
|
||||||
println!("Upload {}.catar to {} ({}.aidx)", archive_name, store, archive_name);
|
println!("Upload {}.catar to {} ({}.aidx)", archive_name, store, archive_name);
|
||||||
|
|
||||||
|
@ -19,11 +19,6 @@ use serde_json::{Value};
|
|||||||
use hyper::Body;
|
use hyper::Body;
|
||||||
|
|
||||||
|
|
||||||
fn required_string_param<'a>(param: &'a Value, name: &str) -> &'a str {
|
|
||||||
param[name].as_str().expect(&format!("missing parameter '{}'", name))
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
fn backup_directory(body: Body, store: &str, archive_name: &str) -> Result<(), Error> {
|
fn backup_directory(body: Body, store: &str, archive_name: &str) -> Result<(), Error> {
|
||||||
|
|
||||||
let client = HttpClient::new("localhost");
|
let client = HttpClient::new("localhost");
|
||||||
@ -63,9 +58,9 @@ fn backup_image(datastore: &DataStore, file: &std::fs::File, size: usize, target
|
|||||||
|
|
||||||
fn create_backup(param: Value, _info: &ApiMethod) -> Result<Value, Error> {
|
fn create_backup(param: Value, _info: &ApiMethod) -> Result<Value, Error> {
|
||||||
|
|
||||||
let filename = required_string_param(¶m, "filename");
|
let filename = tools::required_string_param(¶m, "filename")?;
|
||||||
let store = required_string_param(¶m, "store");
|
let store = tools::required_string_param(¶m, "store")?;
|
||||||
let target = required_string_param(¶m, "target");
|
let target = tools::required_string_param(¶m, "target")?;
|
||||||
|
|
||||||
let mut chunk_size = 4*1024*1024;
|
let mut chunk_size = 4*1024*1024;
|
||||||
|
|
||||||
|
@ -15,6 +15,8 @@ use std::time::Duration;
|
|||||||
|
|
||||||
use std::os::unix::io::AsRawFd;
|
use std::os::unix::io::AsRawFd;
|
||||||
|
|
||||||
|
use serde_json::Value;
|
||||||
|
|
||||||
pub mod timer;
|
pub mod timer;
|
||||||
|
|
||||||
/// The `BufferedReader` trait provides a single function
|
/// The `BufferedReader` trait provides a single function
|
||||||
@ -224,3 +226,10 @@ pub fn file_chunker<C, R>(
|
|||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn required_string_param<'a>(param: &'a Value, name: &str) -> Result<&'a str, Error> {
|
||||||
|
match param[name].as_str() {
|
||||||
|
Some(s) => Ok(s),
|
||||||
|
None => bail!("missing parameter '{}'", name),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user