src/api2/admin/datastore/backup.rs: implement config file upload

This commit is contained in:
Dietmar Maurer
2019-06-03 07:46:49 +02:00
parent 1c0472e88f
commit 39d6846e1e
3 changed files with 91 additions and 0 deletions

View File

@ -431,6 +431,31 @@ impl BackupClient {
self.h2.clone().post("finish", None).map(|_| ())
}
pub fn upload_config(
&self,
file_name: &str,
src_path: std::path::PathBuf,
) -> impl Future<Item=(), Error=Error> {
let h2 = self.h2.clone();
let file_name = file_name.to_owned();
let task = tokio::fs::File::open(src_path)
.map_err(Error::from)
.and_then(|file| {
let contents = vec![];
tokio::io::read_to_end(file, contents)
.map_err(Error::from)
.and_then(move |(_, contents)| {
let param = json!({"size": contents.len(), "file-name": file_name });
h2.upload("config", Some(param), contents)
.map(|_| {})
})
});
task
}
pub fn upload_stream(
&self,
archive_name: &str,