|
dc-region-topology.sh: the plane-topology builder the repo never had
A read-only survey found THREE dc0 carve components with no repo tool at all -- the named plane fabrics, the six v4 plane subnets, and the site placement tag were created ad-hoc in the Stage-4 window, with the mutations landing only in ~/as-executed/2026-07-23-stage4-carve.log, which is not in the repo. When D-132 q1 required rebuilding that carve on a new region there was nothing to re-run. This closes the gap so dc1 and every Roosevelt DC standup rebuild from a tool rather than a transcript. check/apply over: five named plane fabrics, six spaces, six v4 plane subnets on the right VLANs with the ruled gateways, VLAN->space bindings, and the openstack-<site> tag. Expected values derive from lib-net.sh; fabric names derive from the site token. Numeric MAAS ids are resolved per-run by name or CIDR and never persisted -- the pre-migration capture's id= values are database row ids, not 802.1Q tags, and nothing reads them. metal-admin deliberately keeps MAAS's own auto-created fabric: it is a discovery artifact created when the rack registers, Juju binds spaces rather than fabrics, and renaming it would fight MAAS for ownership of its own object for no functional gain. The check asserts only that it does not share a fabric with a named plane. Every mutating path is gated by maas-profile-assert.sh first -- against the wrong profile this apply is an idempotent no-op that prints PASS. --profile has NO default, because the repo-wide default 'admin' resolves to the Office1 region. Harness 35/35; 4 mutations each killed tests (region gate removed, profile defaulted to admin, space-binding assertion, fabric-placement assertion). Fixtures corrected against a live read: MAAS reports an unbound VLAN as the string "undefined", not null, so the first fixtures graded a payload MAAS never emits. Live read-only check against the new dc0 region: 5 passed, 22 failed, exit 1 -- the expected shape of a region that has only auto-discovered its own two NICs. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HvCyrwvYTTcDYnRErfMsNf |
|---|
|
|
| scripts/dc-region-topology.sh 0 → 100644 |
|---|
| tests/HARNESS-MANIFEST |
|---|
| tests/dc-region-topology/run-tests.sh 0 → 100644 |
|---|