simplify backup lib structure (pub use xxx:*), improve doc

This commit is contained in:
Dietmar Maurer 2019-02-12 14:13:31 +01:00
parent d78345bcfc
commit e5064ba607
10 changed files with 42 additions and 20 deletions

View File

@ -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;

View File

@ -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::*;

View File

@ -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;

View File

@ -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::*;

View File

@ -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,

View File

@ -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,

View File

@ -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>,
} }

View File

@ -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],

View File

@ -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],

View File

@ -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() {