src/backup.rs; use a macro to define PROXMOX_BACKUP_PROTOCOL_ID_V1
So that we can include it in static doc strings.
This commit is contained in:
		@ -34,7 +34,7 @@ pub fn router() -> Router {
 | 
				
			|||||||
pub fn api_method_upgrade_backup() -> ApiAsyncMethod {
 | 
					pub fn api_method_upgrade_backup() -> ApiAsyncMethod {
 | 
				
			||||||
    ApiAsyncMethod::new(
 | 
					    ApiAsyncMethod::new(
 | 
				
			||||||
        upgrade_to_backup_protocol,
 | 
					        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("store", StringSchema::new("Datastore name."))
 | 
				
			||||||
            .required("backup-type", StringSchema::new("Backup type.")
 | 
					            .required("backup-type", StringSchema::new("Backup type.")
 | 
				
			||||||
                      .format(Arc::new(ApiStringFormat::Enum(&["vm", "ct", "host"]))))
 | 
					                      .format(Arc::new(ApiStringFormat::Enum(&["vm", "ct", "host"]))))
 | 
				
			||||||
@ -66,7 +66,7 @@ fn upgrade_to_backup_protocol(
 | 
				
			|||||||
        .ok_or_else(|| format_err!("missing Upgrade header"))?
 | 
					        .ok_or_else(|| format_err!("missing Upgrade header"))?
 | 
				
			||||||
        .to_str()?;
 | 
					        .to_str()?;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if protocols != PROXMOX_BACKUP_PROTOCOL_ID_V1 {
 | 
					    if protocols != PROXMOX_BACKUP_PROTOCOL_ID_V1!() {
 | 
				
			||||||
        bail!("invalid protocol name");
 | 
					        bail!("invalid protocol name");
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -143,7 +143,7 @@ fn upgrade_to_backup_protocol(
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    let response = Response::builder()
 | 
					    let response = Response::builder()
 | 
				
			||||||
        .status(StatusCode::SWITCHING_PROTOCOLS)
 | 
					        .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())?;
 | 
					        .body(Body::empty())?;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    Ok(Box::new(futures::future::ok(response)))
 | 
					    Ok(Box::new(futures::future::ok(response)))
 | 
				
			||||||
 | 
				
			|||||||
@ -102,7 +102,10 @@
 | 
				
			|||||||
//!
 | 
					//!
 | 
				
			||||||
//! Not sure if this is better. TODO
 | 
					//! 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;
 | 
					mod chunk_stream;
 | 
				
			||||||
pub use chunk_stream::*;
 | 
					pub use chunk_stream::*;
 | 
				
			||||||
 | 
				
			|||||||
@ -23,6 +23,8 @@ use crate::tools::{self, BroadcastFuture, tty};
 | 
				
			|||||||
use super::pipe_to_stream::*;
 | 
					use super::pipe_to_stream::*;
 | 
				
			||||||
use super::merge_known_chunks::*;
 | 
					use super::merge_known_chunks::*;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					use crate::backup::*;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#[derive(Clone)]
 | 
					#[derive(Clone)]
 | 
				
			||||||
struct AuthInfo {
 | 
					struct AuthInfo {
 | 
				
			||||||
@ -269,7 +271,7 @@ impl HttpClient {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
            let enc_ticket = format!("PBSAuthCookie={}", percent_encode(auth.ticket.as_bytes(), DEFAULT_ENCODE_SET));
 | 
					            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("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)
 | 
					            client.request(req)
 | 
				
			||||||
                .map_err(Error::from)
 | 
					                .map_err(Error::from)
 | 
				
			||||||
@ -635,7 +637,7 @@ impl BackupClient {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
                        let mut release_capacity = body.release_capacity().clone();
 | 
					                        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| {
 | 
					                            .for_each(move |chunk| {
 | 
				
			||||||
                                let _ = release_capacity.release_capacity(chunk.len());
 | 
					                                let _ = release_capacity.release_capacity(chunk.len());
 | 
				
			||||||
                                println!("GOT DOWNLOAD {}", tools::digest_to_hex(&chunk));
 | 
					                                println!("GOT DOWNLOAD {}", tools::digest_to_hex(&chunk));
 | 
				
			||||||
 | 
				
			|||||||
@ -14,6 +14,7 @@ pub mod pxar;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
pub mod section_config;
 | 
					pub mod section_config;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#[macro_use]
 | 
				
			||||||
pub mod backup;
 | 
					pub mod backup;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
pub mod config;
 | 
					pub mod config;
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user