use serde_json::{json, Value};
use url::percent_encoding::{percent_encode, DEFAULT_ENCODE_SET};
+use proxmox::tools::{
+ digest_to_hex,
+ fs::{file_get_json, file_set_contents},
+};
+
use crate::tools::{self, BroadcastFuture, tty};
use crate::tools::futures::{cancellable, Canceller};
use super::pipe_to_stream::*;
let mode = nix::sys::stat::Mode::from_bits_truncate(0o0600);
- let mut data = tools::file_get_json(&path, Some(json!({})))?;
+ let mut data = file_get_json(&path, Some(json!({})))?;
let now = Utc::now().timestamp();
}
}
- tools::file_set_contents(path, new_data.to_string().as_bytes(), Some(mode))?;
+ file_set_contents(path, new_data.to_string().as_bytes(), Some(mode))?;
Ok(())
}
_ => return None,
};
- let data = match tools::file_get_json(&path, None) {
+ let data = match file_get_json(&path, None) {
Ok(v) => v,
_ => return None,
};
output: W,
) -> impl Future<Item=W, Error=Error> {
let path = "chunk";
- let param = json!({ "digest": proxmox::tools::digest_to_hex(digest) });
+ let param = json!({ "digest": digest_to_hex(digest) });
self.h2.download(path, Some(param), output)
}
file_name: &str,
crypt_config: Option<Arc<CryptConfig>>,
compress: bool,
+ sign_only: bool,
) -> impl Future<Item=BackupStats, Error=Error> {
let h2 = self.h2.clone();
futures::future::ok(())
.and_then(move |_| {
let blob = if let Some(ref crypt_config) = crypt_config {
- DataBlob::encode(&data, Some(crypt_config), compress)?
+ if sign_only {
+ DataBlob::create_signed(&data, crypt_config, compress)?
+ } else {
+ DataBlob::encode(&data, Some(crypt_config), compress)?
+ }
} else {
DataBlob::encode(&data, None, compress)?
};
let mut offset_list = vec![];
for (offset, digest) in chunk_list {
//println!("append chunk {} (offset {})", proxmox::tools::digest_to_hex(&digest), offset);
- digest_list.push(proxmox::tools::digest_to_hex(&digest));
+ digest_list.push(digest_to_hex(&digest));
offset_list.push(offset);
}
println!("append chunks list len ({})", digest_list.len());
DigestListDecoder::new(body.map_err(Error::from))
.for_each(move |chunk| {
let _ = release_capacity.release_capacity(chunk.len());
- println!("GOT DOWNLOAD {}", proxmox::tools::digest_to_hex(&chunk));
+ println!("GOT DOWNLOAD {}", digest_to_hex(&chunk));
known_chunks.lock().unwrap().insert(chunk);
Ok(())
})
if let MergedChunkInfo::New(chunk_info) = merged_chunk_info {
let offset = chunk_info.offset;
let digest = *chunk_info.chunk.digest();
- let digest_str = proxmox::tools::digest_to_hex(&digest);
+ let digest_str = digest_to_hex(&digest);
let upload_queue = upload_queue.clone();
println!("upload new chunk {} ({} bytes, offset {})", digest_str,