]>
Commit | Line | Data |
---|---|---|
adec8ea2 DM |
1 | use failure::*; |
2 | use futures::*; | |
3 | use serde_json::json; | |
4 | ||
5 | use proxmox_backup::client::*; | |
6 | ||
7 | fn upload_speed() -> Result<usize, Error> { | |
8 | ||
9 | let host = "localhost"; | |
10 | let datastore = "store2"; | |
11 | ||
12 | let username = "root@pam"; | |
13 | ||
14 | let mut client = HttpClient::new(host, username)?; | |
15 | ||
16 | let param = json!({"backup-type": "host", "backup-id": "speedtest" }); | |
17 | let upgrade = client.h2upgrade(&format!("/api2/json/admin/datastore/{}/backup", datastore), Some(param)); | |
18 | ||
19 | let res = upgrade.and_then(|h2| { | |
20 | println!("start upload speed test"); | |
21 | h2.upload_speedtest() | |
22 | }).wait()?; | |
23 | ||
24 | Ok(res) | |
25 | } | |
26 | ||
27 | fn main() { | |
28 | ||
29 | let mut rt = tokio::runtime::Runtime::new().unwrap(); | |
30 | ||
31 | // should be rt.block_on_all, but this block forever in release builds | |
32 | let _ = rt.block_on(futures::future::lazy(move || -> Result<(), ()> { | |
33 | match upload_speed() { | |
34 | Ok(mbs) => { | |
35 | println!("average upload speed: {} MB/s", mbs); | |
36 | } | |
37 | Err(err) => { | |
38 | eprintln!("ERROR: {}", err); | |
39 | } | |
40 | } | |
41 | Ok(()) | |
42 | })); | |
43 | } |