-use failure::*;
-use futures::*;
-use serde_json::json;
+use anyhow::{Error};
use proxmox_backup::client::*;
-fn upload_speed() -> Result<usize, Error> {
+async fn upload_speed() -> Result<usize, Error> {
let host = "localhost";
let datastore = "store2";
let username = "root@pam";
- let mut client = HttpClient::new(host, username)?;
+ let options = HttpClientOptions::new()
+ .interactive(true)
+ .ticket_cache(true);
- let upgrade = client.start_backup(datastore, "host", "speedtest");
+ let client = HttpClient::new(host, username, options)?;
- let res = upgrade.and_then(|h2| {
- println!("start upload speed test");
- h2.upload_speedtest()
- }).wait()?;
+ let backup_time = chrono::Utc::now();
+
+ let client = BackupWriter::start(client, datastore, "host", "speedtest", backup_time, false).await?;
+
+ println!("start upload speed test");
+ let res = client.upload_speedtest().await?;
Ok(res)
}
fn main() {
-
- let mut rt = tokio::runtime::Runtime::new().unwrap();
-
- // should be rt.block_on_all, but this block forever in release builds
- let _ = rt.block_on(futures::future::lazy(move || -> Result<(), ()> {
- match upload_speed() {
- Ok(mbs) => {
- println!("average upload speed: {} MB/s", mbs);
- }
- Err(err) => {
- eprintln!("ERROR: {}", err);
- }
+ match proxmox_backup::tools::runtime::main(upload_speed()) {
+ Ok(mbs) => {
+ println!("average upload speed: {} MB/s", mbs);
+ }
+ Err(err) => {
+ eprintln!("ERROR: {}", err);
}
- Ok(())
- }));
+ }
}