tools.rs: new helper required_string_param()
To extract parameters from Value.
This commit is contained in:
		| @ -1,5 +1,6 @@ | ||||
| use failure::*; | ||||
|  | ||||
| use crate::tools; | ||||
| use crate::backup::datastore::*; | ||||
| use crate::backup::archive_index::*; | ||||
| //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> { | ||||
|  | ||||
|     let store = param["name"].as_str().unwrap(); | ||||
|     let archive_name = param["archive_name"].as_str().unwrap(); | ||||
|     let store = tools::required_string_param(¶m, "name")?; | ||||
|     let archive_name = tools::required_string_param(¶m, "archive_name")?; | ||||
|  | ||||
|     println!("Upload {}.catar to {} ({}.aidx)", archive_name, store, archive_name); | ||||
|  | ||||
|  | ||||
| @ -19,11 +19,6 @@ use serde_json::{Value}; | ||||
| 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> { | ||||
|  | ||||
|     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> { | ||||
|  | ||||
|     let filename = required_string_param(¶m, "filename"); | ||||
|     let store = required_string_param(¶m, "store"); | ||||
|     let target = required_string_param(¶m, "target"); | ||||
|     let filename = tools::required_string_param(¶m, "filename")?; | ||||
|     let store = tools::required_string_param(¶m, "store")?; | ||||
|     let target = tools::required_string_param(¶m, "target")?; | ||||
|  | ||||
|     let mut chunk_size = 4*1024*1024; | ||||
|  | ||||
|  | ||||
| @ -15,6 +15,8 @@ use std::time::Duration; | ||||
|  | ||||
| use std::os::unix::io::AsRawFd; | ||||
|  | ||||
| use serde_json::Value; | ||||
|  | ||||
| pub mod timer; | ||||
|  | ||||
| /// The `BufferedReader` trait provides a single function | ||||
| @ -224,3 +226,10 @@ pub fn file_chunker<C, R>( | ||||
|  | ||||
|     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), | ||||
|     } | ||||
| } | ||||
|  | ||||
		Reference in New Issue
	
	Block a user