]> git.proxmox.com Git - proxmox-backup.git/blame - src/bin/upload-speed.rs
src/api2/admin/datastore/backup.rs: add speedtest api, improve upload speed
[proxmox-backup.git] / src / bin / upload-speed.rs
CommitLineData
adec8ea2
DM
1use failure::*;
2use futures::*;
3use serde_json::json;
4
5use proxmox_backup::client::*;
6
7fn 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
27fn 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}