pub fn api_method_upgrade_backup() -> ApiAsyncMethod {
ApiAsyncMethod::new(
upgrade_to_backup_protocol,
- ObjectSchema::new("Upgraded to backup protocol.")
+ ObjectSchema::new(concat!("Upgraded to backup protocol ('", PROXMOX_BACKUP_PROTOCOL_ID_V1!(), "')."))
.required("store", StringSchema::new("Datastore name."))
.required("backup-type", StringSchema::new("Backup type.")
.format(Arc::new(ApiStringFormat::Enum(&["vm", "ct", "host"]))))
.ok_or_else(|| format_err!("missing Upgrade header"))?
.to_str()?;
- if protocols != PROXMOX_BACKUP_PROTOCOL_ID_V1 {
+ if protocols != PROXMOX_BACKUP_PROTOCOL_ID_V1!() {
bail!("invalid protocol name");
}
let response = Response::builder()
.status(StatusCode::SWITCHING_PROTOCOLS)
- .header(UPGRADE, HeaderValue::from_static(PROXMOX_BACKUP_PROTOCOL_ID_V1))
+ .header(UPGRADE, HeaderValue::from_static(PROXMOX_BACKUP_PROTOCOL_ID_V1!()))
.body(Body::empty())?;
Ok(Box::new(futures::future::ok(response)))
//!
//! Not sure if this is better. TODO
-pub const PROXMOX_BACKUP_PROTOCOL_ID_V1: &str = "proxmox-backup-protocol-v1";
+#[macro_export]
+macro_rules! PROXMOX_BACKUP_PROTOCOL_ID_V1 {
+ () => { "proxmox-backup-protocol-v1" }
+}
mod chunk_stream;
pub use chunk_stream::*;
use super::pipe_to_stream::*;
use super::merge_known_chunks::*;
+use crate::backup::*;
+
#[derive(Clone)]
struct AuthInfo {
let enc_ticket = format!("PBSAuthCookie={}", percent_encode(auth.ticket.as_bytes(), DEFAULT_ENCODE_SET));
req.headers_mut().insert("Cookie", HeaderValue::from_str(&enc_ticket).unwrap());
- req.headers_mut().insert("UPGRADE", HeaderValue::from_str(crate::backup::PROXMOX_BACKUP_PROTOCOL_ID_V1).unwrap());
+ req.headers_mut().insert("UPGRADE", HeaderValue::from_str(PROXMOX_BACKUP_PROTOCOL_ID_V1!()).unwrap());
client.request(req)
.map_err(Error::from)
let mut release_capacity = body.release_capacity().clone();
- crate::backup::DigestListDecoder::new(body.map_err(Error::from))
+ DigestListDecoder::new(body.map_err(Error::from))
.for_each(move |chunk| {
let _ = release_capacity.release_capacity(chunk.len());
println!("GOT DOWNLOAD {}", tools::digest_to_hex(&chunk));