backup_recovery - OmniCloudOrg/OmniOrchestrator GitHub Wiki

recovery (src/backup)

Path: src/backup/recovery.rs

Table of Contents

Public Items

struct RecoveryJobStatus

Definition

pub struct RecoveryJobStatus {
    pub node_id: String,
    pub component_type: String,
    pub status: String, 
    pub progress: f32,
    pub error: Option<String>,
    pub started_at: chrono::DateTime<Utc>,
    pub completed_at: Option<chrono::DateTime<Utc>>,
}

Documentation

Status tracking for recovery jobs

struct BackupRecovery

Definition

pub struct BackupRecovery {
    network_client: Arc<NetworkClient>,
    iso_manager: IsoManager,
    recovery_dir: PathBuf,
}

Documentation

Manages the recovery process for OmniCloud environments

fn new

Definition

    pub fn new(network_client: Arc<NetworkClient>, temp_dir: impl Into<PathBuf>) -> Self {
        let temp_dir = temp_dir.into();

Documentation

Create a new BackupRecovery instance

async fn start_recovery

Definition

    pub async fn start_recovery(
        &self, 
        backup: &mut Backup, 
        target_environment: &str,
        recovery_options: Option<Value>
    ) -> Result<()> {
    // ... function body
}

Documentation

Start recovery from a backup

fn get_recovery_status

Definition

    pub fn get_recovery_status(&self, backup_id: i32) -> Result<Value> {
        // In a real implementation, this would query the database for status
        // For this example, we'll return a simulated status
        
        Ok(json!({
    // ... function body
}

Documentation

Get recovery status and progress

async fn cancel_recovery

Definition

    pub async fn cancel_recovery(&self, backup_id: i32) -> Result<()> {
        info!("Cancelling recovery for backup ID: {}", backup_id);

Documentation

Cancel an in-progress recovery

⚠️ **GitHub.com Fallback** ⚠️