]>
git.proxmox.com Git - proxmox-backup.git/blob - src/bin/download-speed.rs
6 //use serde_json::Value;
7 use chrono
::{DateTime, Utc}
;
9 //use proxmox_backup::tools;
10 //use proxmox_backup::backup::*;
11 use proxmox_backup
::client
::*;
12 //use proxmox_backup::pxar;
13 //use futures::stream::Stream;
15 pub struct DummyWriter
{
19 impl Write
for DummyWriter
{
21 fn write(&mut self, data
: &[u8]) -> Result
<usize, std
::io
::Error
> {
22 self.bytes
+= data
.len();
26 fn flush(&mut self) -> Result
<(), std
::io
::Error
> {
32 fn run() -> Result
<(), Error
> {
34 let host
= "localhost";
36 let username
= "root@pam";
38 let client
= HttpClient
::new(host
, username
)?
;
40 let backup_time
= "2019-06-28T10:49:48Z".parse
::<DateTime
<Utc
>>()?
;
42 let client
= client
.start_backup_reader("store2", "host", "elsa", backup_time
, true).wait()?
;
44 let start
= std
::time
::SystemTime
::now();
46 futures
::stream
::repeat(())
49 let writer
= DummyWriter { bytes: 0 }
;
50 client
.speedtest(writer
)
52 println
!("Received {} bytes", writer
.bytes
);
56 .fold(0, move |mut acc
, size
| {
63 println
!("ERROR {}", err
);
66 let elapsed
= start
.elapsed().unwrap();
67 let elapsed
= (elapsed
.as_secs() as f64) +
68 (elapsed
.subsec_millis() as f64)/1000.0;
70 println
!("Downloaded {} bytes, {} MB/s", bytes
, (bytes
as f64)/(elapsed
*1024.0*1024.0));
82 //let mut rt = tokio::runtime::Runtime::new().unwrap();
84 // should be rt.block_on_all, but this block forever in release builds
85 tokio
::run(lazy(move || {
86 // let _ = rt.block_on(lazy(move || -> Result<(), ()> {
87 if let Err(err
) = run() {
88 eprintln
!("ERROR: {}", err
);