]> git.proxmox.com Git - proxmox-backup.git/blobdiff - src/bin/upload-speed.rs
switch from failure to anyhow
[proxmox-backup.git] / src / bin / upload-speed.rs
index 2724e805ca35389124a3b5243115290ba12b462d..b7d617605ad59875afe90ec6b6dc81473fa6a071 100644 (file)
@@ -1,42 +1,37 @@
-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(())
-    }));
+    }
 }