pub struct MaintenanceSchedule {
pub next_full_maintenance: Option<DateTime<Utc>>,
pub next_quick_maintenance: Option<DateTime<Utc>>,
pub runs: BTreeMap<String, Vec<MaintenanceRun>>,
}Expand description
The schedule block: when maintenance next runs, plus the per-task run
history kopia keeps in the same blob.
runs is kopia’s map[TaskType][]RunInfo
(repo/maintenance/maintenance_schedule.go). It carries no omitempty,
so a repository that has never run maintenance emits "runs": null rather
than omitting the key — hence Self::runs must tolerate an explicit null,
which #[serde(default)] alone does NOT (a default applies only to an
ABSENT key). See the field for the deserializer that does.
kopia’s Schedule.ReportRun prepends each new run and truncates the
history to 50 entries per task. Never key a before/after comparison on index
or length: at saturation len(after) == len(before). Compare
MaintenanceRun::start instead — that is what
reclaimed_bytes_since does.
Fields§
§next_full_maintenance: Option<DateTime<Utc>>Next scheduled full maintenance, if known.
next_quick_maintenance: Option<DateTime<Utc>>Next scheduled quick maintenance, if known.
runs: BTreeMap<String, Vec<MaintenanceRun>>Per-task run history, newest first, capped at 50 entries per task.
The key is kopia’s TaskType string (full-delete-blobs,
snapshot-gc, …) — see the TASK_* constants. A BTreeMap (not a
typed enum) on purpose: a newer kopia adding a task must not fail the
parse of a maintenance info the mover’s lease decision depends on.
deserialize_with is not decoration: #[serde(default)] alone rejects
the explicit "runs": null a fresh repository really emits (proven by
null_runs_history_decodes_as_empty), because a default only applies to
an ABSENT key.
Trait Implementations§
Source§impl Clone for MaintenanceSchedule
impl Clone for MaintenanceSchedule
Source§fn clone(&self) -> MaintenanceSchedule
fn clone(&self) -> MaintenanceSchedule
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for MaintenanceSchedule
impl Debug for MaintenanceSchedule
Source§impl<'de> Deserialize<'de> for MaintenanceSchedule
impl<'de> Deserialize<'de> for MaintenanceSchedule
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl PartialEq for MaintenanceSchedule
impl PartialEq for MaintenanceSchedule
Source§fn eq(&self, other: &MaintenanceSchedule) -> bool
fn eq(&self, other: &MaintenanceSchedule) -> bool
self and other values to be equal, and is used by ==.