simplify backup lib structure (pub use xxx:*), improve doc
This commit is contained in:
		@ -10,7 +10,7 @@ use serde_json::{json, Value};
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
use crate::config::datastore;
 | 
					use crate::config::datastore;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
use crate::backup::datastore::*;
 | 
					use crate::backup::*;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
mod catar;
 | 
					mod catar;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -2,8 +2,7 @@ use failure::*;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
use crate::tools;
 | 
					use crate::tools;
 | 
				
			||||||
use crate::tools::wrapped_reader_stream::*;
 | 
					use crate::tools::wrapped_reader_stream::*;
 | 
				
			||||||
use crate::backup::datastore::*;
 | 
					use crate::backup::*;
 | 
				
			||||||
use crate::backup::dynamic_index::*;
 | 
					 | 
				
			||||||
//use crate::server::rest::*;
 | 
					//use crate::server::rest::*;
 | 
				
			||||||
use crate::api::schema::*;
 | 
					use crate::api::schema::*;
 | 
				
			||||||
use crate::api::router::*;
 | 
					use crate::api::router::*;
 | 
				
			||||||
 | 
				
			|||||||
@ -3,7 +3,7 @@ use failure::*;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
use crate::api::schema::*;
 | 
					use crate::api::schema::*;
 | 
				
			||||||
use crate::api::router::*;
 | 
					use crate::api::router::*;
 | 
				
			||||||
use crate::backup::chunk_store::*;
 | 
					use crate::backup::*;
 | 
				
			||||||
use serde_json::{json, Value};
 | 
					use serde_json::{json, Value};
 | 
				
			||||||
use std::path::PathBuf;
 | 
					use std::path::PathBuf;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -11,8 +11,17 @@
 | 
				
			|||||||
//! whereas the `FixedIndex*` format is an optimization to store a
 | 
					//! whereas the `FixedIndex*` format is an optimization to store a
 | 
				
			||||||
//! list of equal sized chunks.
 | 
					//! list of equal sized chunks.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
pub mod chunker;
 | 
					mod chunker;
 | 
				
			||||||
pub mod chunk_store;
 | 
					pub use chunker::*;
 | 
				
			||||||
pub mod fixed_index;
 | 
					
 | 
				
			||||||
pub mod dynamic_index;
 | 
					mod chunk_store;
 | 
				
			||||||
pub mod datastore;
 | 
					pub use chunk_store::*;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					mod fixed_index;
 | 
				
			||||||
 | 
					pub use fixed_index::*;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					mod dynamic_index;
 | 
				
			||||||
 | 
					pub use dynamic_index::*;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					mod datastore;
 | 
				
			||||||
 | 
					pub use datastore::*;
 | 
				
			||||||
 | 
				
			|||||||
@ -30,6 +30,7 @@ impl Default for GarbageCollectionStatus {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/// File system based chunk store
 | 
				
			||||||
pub struct ChunkStore {
 | 
					pub struct ChunkStore {
 | 
				
			||||||
    name: String, // used for error reporting
 | 
					    name: String, // used for error reporting
 | 
				
			||||||
    pub (crate) base: PathBuf,
 | 
					    pub (crate) base: PathBuf,
 | 
				
			||||||
 | 
				
			|||||||
@ -1,15 +1,16 @@
 | 
				
			|||||||
//! Slinding window chunker (Buzhash)
 | 
					 | 
				
			||||||
//!
 | 
					 | 
				
			||||||
//! This is a rewrite of *casync* chunker (cachunker.h) in rust.
 | 
					 | 
				
			||||||
//!
 | 
					 | 
				
			||||||
//! Hashing by cyclic polynomial (also called Buzhash) has the benefit
 | 
					 | 
				
			||||||
//! of avoiding multiplications, using barrel shifts instead. For more
 | 
					 | 
				
			||||||
//! information please take a look at the [Rolling
 | 
					 | 
				
			||||||
//! Hash](https://en.wikipedia.org/wiki/Rolling_hash) artikel from
 | 
					 | 
				
			||||||
//! wikipedia.
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
const CA_CHUNKER_WINDOW_SIZE: usize = 48;
 | 
					const CA_CHUNKER_WINDOW_SIZE: usize = 48;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/// Slinding window chunker (Buzhash)
 | 
				
			||||||
 | 
					///
 | 
				
			||||||
 | 
					/// This is a rewrite of *casync* chunker (cachunker.h) in rust.
 | 
				
			||||||
 | 
					///
 | 
				
			||||||
 | 
					/// Hashing by cyclic polynomial (also called Buzhash) has the benefit
 | 
				
			||||||
 | 
					/// of avoiding multiplications, using barrel shifts instead. For more
 | 
				
			||||||
 | 
					/// information please take a look at the [Rolling
 | 
				
			||||||
 | 
					/// Hash](https://en.wikipedia.org/wiki/Rolling_hash) artikel from
 | 
				
			||||||
 | 
					/// wikipedia.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
pub struct Chunker {
 | 
					pub struct Chunker {
 | 
				
			||||||
    h: u32,
 | 
					    h: u32,
 | 
				
			||||||
    window_size: usize,
 | 
					    window_size: usize,
 | 
				
			||||||
 | 
				
			|||||||
@ -15,15 +15,23 @@ use super::dynamic_index::*;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
use chrono::{Utc, TimeZone};
 | 
					use chrono::{Utc, TimeZone};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/// Datastore Management
 | 
				
			||||||
 | 
					///
 | 
				
			||||||
 | 
					/// A Datastore can store severals backups, and provides the
 | 
				
			||||||
 | 
					/// management interface for backup.
 | 
				
			||||||
pub struct DataStore {
 | 
					pub struct DataStore {
 | 
				
			||||||
    chunk_store: Arc<ChunkStore>,
 | 
					    chunk_store: Arc<ChunkStore>,
 | 
				
			||||||
    gc_mutex: Mutex<bool>,
 | 
					    gc_mutex: Mutex<bool>,
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/// Detailed Backup Information
 | 
				
			||||||
#[derive(Debug)]
 | 
					#[derive(Debug)]
 | 
				
			||||||
pub struct BackupInfo {
 | 
					pub struct BackupInfo {
 | 
				
			||||||
 | 
					    /// Type of backup
 | 
				
			||||||
    pub backup_type: String,
 | 
					    pub backup_type: String,
 | 
				
			||||||
 | 
					    /// Unique (for this type) ID
 | 
				
			||||||
    pub backup_id: String,
 | 
					    pub backup_id: String,
 | 
				
			||||||
 | 
					    /// Backup timestamp
 | 
				
			||||||
    pub backup_time: DateTime<Utc>,
 | 
					    pub backup_time: DateTime<Utc>,
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -12,9 +12,10 @@ use std::os::unix::io::AsRawFd;
 | 
				
			|||||||
use uuid::Uuid;
 | 
					use uuid::Uuid;
 | 
				
			||||||
//use chrono::{Local, TimeZone};
 | 
					//use chrono::{Local, TimeZone};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/// Header format definition for dynamic index files (`.dixd`)
 | 
				
			||||||
#[repr(C)]
 | 
					#[repr(C)]
 | 
				
			||||||
//pub struct DynamicIndexHeader {
 | 
					 | 
				
			||||||
pub struct DynamicIndexHeader {
 | 
					pub struct DynamicIndexHeader {
 | 
				
			||||||
 | 
					    /// The string `PROXMOX-DIDX`
 | 
				
			||||||
    pub magic: [u8; 12],
 | 
					    pub magic: [u8; 12],
 | 
				
			||||||
    pub version: u32,
 | 
					    pub version: u32,
 | 
				
			||||||
    pub uuid: [u8; 16],
 | 
					    pub uuid: [u8; 16],
 | 
				
			||||||
 | 
				
			|||||||
@ -10,8 +10,10 @@ use std::os::unix::io::AsRawFd;
 | 
				
			|||||||
use uuid::Uuid;
 | 
					use uuid::Uuid;
 | 
				
			||||||
use chrono::{Local, TimeZone};
 | 
					use chrono::{Local, TimeZone};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/// Header format definition for fixed index files (`.fixd`)
 | 
				
			||||||
#[repr(C)]
 | 
					#[repr(C)]
 | 
				
			||||||
pub struct FixedIndexHeader {
 | 
					pub struct FixedIndexHeader {
 | 
				
			||||||
 | 
					    /// The string `PROXMOX-FIDX`
 | 
				
			||||||
    pub magic: [u8; 12],
 | 
					    pub magic: [u8; 12],
 | 
				
			||||||
    pub version: u32,
 | 
					    pub version: u32,
 | 
				
			||||||
    pub uuid: [u8; 16],
 | 
					    pub uuid: [u8; 16],
 | 
				
			||||||
 | 
				
			|||||||
@ -1,6 +1,7 @@
 | 
				
			|||||||
extern crate proxmox_backup;
 | 
					extern crate proxmox_backup;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
use proxmox_backup::backup::chunker::*;
 | 
					//use proxmox_backup::backup::chunker::*;
 | 
				
			||||||
 | 
					use proxmox_backup::backup::*;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
fn main() {
 | 
					fn main() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user