]>
Commit | Line | Data |
---|---|---|
17243003 DM |
1 | use std::io::Write; |
2 | ||
f7d4e4b5 | 3 | use anyhow::{Error}; |
b9203d87 | 4 | |
fa5d6977 | 5 | use chrono::{DateTime, Utc}; |
17243003 | 6 | |
d59dbeca | 7 | use proxmox_backup::client::{HttpClient, HttpClientOptions, BackupReader}; |
17243003 DM |
8 | |
9 | pub struct DummyWriter { | |
10 | bytes: usize, | |
11 | } | |
12 | ||
13 | impl Write for DummyWriter { | |
14 | ||
15 | fn write(&mut self, data: &[u8]) -> Result<usize, std::io::Error> { | |
16 | self.bytes += data.len(); | |
17 | Ok(data.len()) | |
18 | } | |
19 | ||
20 | fn flush(&mut self) -> Result<(), std::io::Error> { | |
21 | Ok(()) | |
22 | } | |
23 | } | |
24 | ||
25 | ||
b9203d87 | 26 | async fn run() -> Result<(), Error> { |
17243003 DM |
27 | |
28 | let host = "localhost"; | |
29 | ||
30 | let username = "root@pam"; | |
31 | ||
d59dbeca DM |
32 | let options = HttpClientOptions::new() |
33 | .interactive(true) | |
34 | .ticket_cache(true); | |
35 | ||
36 | let client = HttpClient::new(host, username, options)?; | |
17243003 | 37 | |
fa5d6977 | 38 | let backup_time = "2019-06-28T10:49:48Z".parse::<DateTime<Utc>>()?; |
17243003 | 39 | |
296c50ba | 40 | let client = BackupReader::start(client, None, "store2", "host", "elsa", backup_time, true) |
b9203d87 | 41 | .await?; |
17243003 DM |
42 | |
43 | let start = std::time::SystemTime::now(); | |
44 | ||
b9203d87 WB |
45 | let mut bytes = 0; |
46 | for _ in 0..100 { | |
3d571d55 WB |
47 | let mut writer = DummyWriter { bytes: 0 }; |
48 | client.speedtest(&mut writer).await?; | |
b9203d87 WB |
49 | println!("Received {} bytes", writer.bytes); |
50 | bytes += writer.bytes; | |
51 | } | |
17243003 | 52 | |
b9203d87 WB |
53 | let elapsed = start.elapsed().unwrap(); |
54 | let elapsed = (elapsed.as_secs() as f64) + | |
55 | (elapsed.subsec_millis() as f64)/1000.0; | |
17243003 | 56 | |
b9203d87 | 57 | println!("Downloaded {} bytes, {} MB/s", bytes, (bytes as f64)/(elapsed*1024.0*1024.0)); |
17243003 | 58 | |
b9203d87 WB |
59 | Ok(()) |
60 | } | |
17243003 | 61 | |
29c55e5f | 62 | fn main() { |
d973aa82 | 63 | if let Err(err) = proxmox_backup::tools::runtime::main(run()) { |
b9203d87 WB |
64 | eprintln!("ERROR: {}", err); |
65 | } | |
66 | println!("DONE"); | |
17243003 | 67 | } |