5 use pbs_api_types
::{Authid, BackupNamespace, BackupType}
;
6 use pbs_client
::{BackupReader, HttpClient, HttpClientOptions}
;
8 pub struct DummyWriter
{
12 impl Write
for DummyWriter
{
13 fn write(&mut self, data
: &[u8]) -> Result
<usize, std
::io
::Error
> {
14 self.bytes
+= data
.len();
18 fn flush(&mut self) -> Result
<(), std
::io
::Error
> {
23 async
fn run() -> Result
<(), Error
> {
24 let host
= "localhost";
26 let auth_id
= Authid
::root_auth_id();
28 let options
= HttpClientOptions
::default()
32 let client
= HttpClient
::new(host
, 8007, auth_id
, options
)?
;
34 let backup_time
= proxmox_time
::parse_rfc3339("2019-06-28T10:49:48Z")?
;
36 let client
= BackupReader
::start(
40 &BackupNamespace
::root(),
41 &(BackupType
::Host
, "elsa".to_string(), backup_time
).into(),
46 let start
= std
::time
::SystemTime
::now();
50 let mut writer
= DummyWriter { bytes: 0 }
;
51 client
.speedtest(&mut writer
).await?
;
52 println
!("Received {} bytes", writer
.bytes
);
53 bytes
+= writer
.bytes
;
56 let elapsed
= start
.elapsed().unwrap();
57 let elapsed
= (elapsed
.as_secs() as f64) + (elapsed
.subsec_millis() as f64) / 1000.0;
60 "Downloaded {} bytes, {} MB/s",
62 (bytes
as f64) / (elapsed
* 1024.0 * 1024.0)
69 if let Err(err
) = proxmox_async
::runtime
::main(run()) {
70 eprintln
!("ERROR: {}", err
);