5 use proxmox_backup
::api2
::types
::Authid
;
6 use proxmox_backup
::client
::{HttpClient, HttpClientOptions, BackupReader}
;
8 pub struct DummyWriter
{
12 impl Write
for DummyWriter
{
14 fn write(&mut self, data
: &[u8]) -> Result
<usize, std
::io
::Error
> {
15 self.bytes
+= data
.len();
19 fn flush(&mut self) -> Result
<(), std
::io
::Error
> {
25 async
fn run() -> Result
<(), Error
> {
27 let host
= "localhost";
29 let auth_id
= Authid
::root_auth_id();
31 let options
= HttpClientOptions
::new()
35 let client
= HttpClient
::new(host
, 8007, auth_id
, options
)?
;
37 let backup_time
= proxmox
::tools
::time
::parse_rfc3339("2019-06-28T10:49:48Z")?
;
39 let client
= BackupReader
::start(client
, None
, "store2", "host", "elsa", backup_time
, true)
42 let start
= std
::time
::SystemTime
::now();
46 let mut writer
= DummyWriter { bytes: 0 }
;
47 client
.speedtest(&mut writer
).await?
;
48 println
!("Received {} bytes", writer
.bytes
);
49 bytes
+= writer
.bytes
;
52 let elapsed
= start
.elapsed().unwrap();
53 let elapsed
= (elapsed
.as_secs() as f64) +
54 (elapsed
.subsec_millis() as f64)/1000.0;
56 println
!("Downloaded {} bytes, {} MB/s", bytes
, (bytes
as f64)/(elapsed
*1024.0*1024.0));
62 if let Err(err
) = proxmox_backup
::tools
::runtime
::main(run()) {
63 eprintln
!("ERROR: {}", err
);