|
dc-node-carve.sh: the v4 node interface carve, mutation-proven 40/40
The last no-tool gap between the dc0 region migration and the Juju deploy: 60 NIC re-homes, 9 OVS br-ex bridges, 54 statics. The Stage-4 equivalent was done ad-hoc and logged outside the repo, so there was nothing to re-run when D-132 q1 forced a re-enrolment. Proved the four-call MAAS cycle on ONE live interface (canary 6q4syf enp3s0) before writing the tool -- nothing had exercised `interface update vlan=` on a link_up-only interface on an auto fabric, which is the state all 60 NICs are in. Measured in passing: link-subnet REPLACES a link_up link, so only the br-ex member needs an explicit unlink. No default profile; maas-profile-assert.sh before any read or write; every id resolved live by stable key (boot MAC / CIDR / interface name); every mutation read back and compared. Role asymmetry derived from the host token, and the controller's deliberately-uncarved NICs are asserted ABSENT. Mutation pass found the br-ex static compare could not fail -- Pattern B was being caught by the type/parent assertions instead. Added the brexip fixture and re-proved the kill. Also found that neutering an assertion's MESSAGE only proves it exists, not that its predicate works. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HvCyrwvYTTcDYnRErfMsNf |
|---|
|
|
| docs/CURRENT-STATE.md |
|---|
| docs/changelog-20260730-dc0-node-carve.md 0 → 100644 |
|---|
| scripts/dc-node-carve.sh 0 → 100755 |
|---|
| tests/HARNESS-MANIFEST |
|---|
| tests/dc-node-carve/run-tests.sh 0 → 100755 |
|---|