canic-cli 0.35.11

Operator CLI for Canic fleet backup and restore workflows
Documentation
use super::{BackupCommandError, BackupVerifyOptions};
use crate::backup::reference::resolve_backup_dir;
use canic_backup::persistence::{BackupIntegrityReport, BackupLayout};

pub(super) fn verify_backup(
    options: &BackupVerifyOptions,
) -> Result<BackupIntegrityReport, BackupCommandError> {
    let layout = BackupLayout::new(resolve_backup_dir(
        options.dir.as_deref(),
        options.backup_ref.as_deref(),
    )?);
    if !layout.manifest_path().is_file() && layout.backup_plan_path().is_file() {
        let plan = layout.read_backup_plan()?;
        return Err(BackupCommandError::DryRunNotComplete {
            plan_id: plan.plan_id,
        });
    }

    layout.verify_integrity().map_err(BackupCommandError::from)
}