v0.112.0 — E-2: GET /disks flags the backup-target drive

Additive backup_target field, true for the drive backing the PRIMARY tier.

The controller cannot work this out itself: settings.StoragePath.BackupTarget is
customer INTENT, and on the two boxes migrated by hand in E-1 that intent was
never recorded -- intent is empty while the drive really IS the target. Without
this flag the absent-target alarm could not name the drive on exactly the boxes
that currently have one.

omitempty + false on an older agent, so an old controller degrades to the generic
disconnect alarm rather than a wrong one.

Test asserts the target IS flagged AND the non-target is NOT, as a pair -- a
blanket true would satisfy a naive one-sided check.
This commit is contained in:
2026-07-29 08:20:27 +02:00
parent 38176ada9d
commit 958e54f6a6
3 changed files with 65 additions and 0 deletions
+13
View File
@@ -1,3 +1,16 @@
## v0.112.0 — E-2: GET /disks flags the backup-target drive (2026-07-29)
Additive field `backup_target` on each `/disks` entry, true for the drive backing the PRIMARY tier.
**The controller cannot work this out for itself.** Its `settings.StoragePath.BackupTarget` is
customer INTENT, and on the two boxes migrated by hand in E-1 that intent was never recorded — so
intent is empty while the drive really is the target. Without this flag the absent-target alarm could
not name the drive on exactly the boxes that currently have one. `omitempty` + false on an older
agent, so an old controller degrades to the generic disconnect alarm rather than a wrong one.
Test asserts the target IS flagged **and** the non-target is NOT, as a pair — a blanket `true` would
satisfy a naive one-sided check.
## v0.111.0 — E-2c: the backup-target drive can no longer be ejected out from under the backup (2026-07-29)
**A regression guard on a configuration that is live right now.** E-1 (2026-07-28) moved each demo