LIVE: OSD carve + D-104 controllers complete across both DCs (two agents)
Operator directed two background agents: one to finish dc0 storage-02/03/04,
one for all of dc1. Both completed.

Eight re-commissions, every one the same single-change diff: vdb at
536870912000 bytes (500 GiB) added; links 12 -> 12; per-interface MACs and
link lists identical. dc0 at 204/196/202s, dc1 all ~182s. dc1's substrate
applied 6 add / 4 change / 0 destroy with MAC drift 0 and re-converged to
ZERO DIFF.

I verified every claim from MAAS directly rather than accepting the reports:
fleet 22 (18 Ready + 2 Deployed + 2 New), 216 links all static, both DCs
blockdevs {1:5, 2:4}, tagcount {2:9}. All matched. I also diffed a raw dc1
before/after pair myself -- exactly the vdb hunk plus one power_state line.

Captures promoted from voffice1:/tmp (which does not survive a reboot) to
docs/audit/osd-carve-20260729/. Both agents were barred from repo writes, so
dc1 would otherwise have had no audit record at all.

Two unprompted agent findings worth keeping: MAAS tags SURVIVED
re-commissioning on all 18 nodes (checked because the snapshot code
structurally could not see tags -- removes a would-be Stage-5 placement
blocker); and lib_hosts_select_dc's one-DC-per-shell guard fires correctly
but can be muted with 2>&1, silently yielding one DC's data labelled as the
other's.

One disclosed judgment call, and it was correct: three dc1 pairs also showed
power_state moving off/error. Agent B declared a STOP, re-measured, then
excluded power_state from its verdict while still printing it, because 8 of 9
dc1 nodes read error BEFORE any mutation. Vindicated -- all 18 role nodes now
read off, including five dc1 nodes never commissioned. A transient MAAS
power-query flap.

Still blocking for both controllers: power_type is EMPTY, the state that
stalled all nine role nodes on 2026-07-20. Now fixable since both are in
lib-hosts at the ruled .5 with MACs pinned.

Gauntlet ALL GREEN (87) on vcloud; repo-lint 0 fail.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HvCyrwvYTTcDYnRErfMsNf
1 parent ab1e790 commit 75e3657471556b0433e08b8f28fe0d8e57b0b027
@JANeumatrix JANeumatrix authored 15 hours ago
Showing 21 changed files
View
docs/CURRENT-STATE.md
View
docs/audit/osd-carve-20260729/README.txt 0 → 100644
View
docs/audit/osd-carve-20260729/after-storage-02.json 0 → 100644
View
docs/audit/osd-carve-20260729/after-storage-03.json 0 → 100644
View
docs/audit/osd-carve-20260729/after-storage-04.json 0 → 100644
View
docs/audit/osd-carve-20260729/after.json 0 → 100644
View
docs/audit/osd-carve-20260729/before-storage-02.json 0 → 100644
View
docs/audit/osd-carve-20260729/before-storage-03.json 0 → 100644
View
docs/audit/osd-carve-20260729/before-storage-04.json 0 → 100644
View
docs/audit/osd-carve-20260729/before.json 0 → 100644
View
docs/audit/osd-carve-20260729/dc1-phase1-apply.txt 0 → 100644
View
docs/audit/osd-carve-20260729/dc1-phase1-plan.txt 0 → 100644
View
docs/audit/osd-carve-20260729/s01.after.json 0 → 100644
View
docs/audit/osd-carve-20260729/s01.before.json 0 → 100644
View
docs/audit/osd-carve-20260729/s02.after.json 0 → 100644
View
docs/audit/osd-carve-20260729/s02.before.json 0 → 100644
View
docs/audit/osd-carve-20260729/s03.after.json 0 → 100644
View
docs/audit/osd-carve-20260729/s03.before.json 0 → 100644
View
docs/audit/osd-carve-20260729/s04.after.json 0 → 100644
View
docs/audit/osd-carve-20260729/s04.before.json 0 → 100644
View
docs/changelog-20260728-vip-arity-gate.md