diff --git a/Cargo.lock b/Cargo.lock index bee7325..e62a609 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -279,7 +279,7 @@ checksum = "a1d728cc89cf3aee9ff92b05e62b19ee65a02b5702cff7d5a377e32c6ae29d8d" [[package]] name = "cm-dashboard" -version = "0.1.216" +version = "0.1.217" dependencies = [ "anyhow", "chrono", @@ -301,7 +301,7 @@ dependencies = [ [[package]] name = "cm-dashboard-agent" -version = "0.1.216" +version = "0.1.217" dependencies = [ "anyhow", "async-trait", @@ -324,7 +324,7 @@ dependencies = [ [[package]] name = "cm-dashboard-shared" -version = "0.1.216" +version = "0.1.217" dependencies = [ "chrono", "serde", diff --git a/agent/src/collectors/backup.rs b/agent/src/collectors/backup.rs index 2c81568..cfc9718 100644 --- a/agent/src/collectors/backup.rs +++ b/agent/src/collectors/backup.rs @@ -142,12 +142,17 @@ impl BackupCollector { // Build service list for this disk let services: Vec = backup_status.services.keys().cloned().collect(); - // Get archive count per service (use minimum to show if any service has fewer backups) - let total_archives: i64 = backup_status.services.values() + // Get min and max archive counts to detect inconsistencies + let archives_min: i64 = backup_status.services.values() .map(|service| service.archive_count) .min() .unwrap_or(0); + let archives_max: i64 = backup_status.services.values() + .map(|service| service.archive_count) + .max() + .unwrap_or(0); + // Create disk data let disk_data = BackupDiskData { serial: backup_status.disk_serial_number.unwrap_or_else(|| "Unknown".to_string()), @@ -161,7 +166,8 @@ impl BackupCollector { disk_total_gb: total_gb, usage_status, services, - total_archives, + archives_min, + archives_max, }; disks.push(disk_data); diff --git a/dashboard/src/ui/widgets/system.rs b/dashboard/src/ui/widgets/system.rs index fe0b271..87acbfc 100644 --- a/dashboard/src/ui/widgets/system.rs +++ b/dashboard/src/ui/widgets/system.rs @@ -566,9 +566,15 @@ impl SystemWidget { } // Show usage with status and archive count + let archive_display = if disk.archives_min == disk.archives_max { + format!("{}", disk.archives_min) + } else { + format!("{}-{}", disk.archives_min, disk.archives_max) + }; + let usage_text = format!( "Usage: ({}) {:.0}% {:.0}GB/{:.0}GB", - disk.total_archives, + archive_display, disk.disk_usage_percent, disk.disk_used_gb, disk.disk_total_gb diff --git a/shared/src/agent_data.rs b/shared/src/agent_data.rs index 347dd27..295b4dc 100644 --- a/shared/src/agent_data.rs +++ b/shared/src/agent_data.rs @@ -195,7 +195,8 @@ pub struct BackupDiskData { pub disk_total_gb: f32, pub usage_status: Status, pub services: Vec, - pub total_archives: i64, + pub archives_min: i64, + pub archives_max: i64, } impl AgentData {