Test statement
IMEX: Across the nodes of an allocated multi-node NVLink domain of at least two members, the domain reports an operational state and every member observes mutual connectivity with every other expected member, with no unexpected members present.
Source: docs/test-plan.yaml, SDN21-01.
What to assert
- The domain reports an operational state.
- At least two expected members. Below that the check FAILS with a message naming the environment as too small, because a single-node connectivity matrix is trivially complete and would otherwise pass vacuously.
- Set equality between expected members and the nodes actually reporting membership. Missing members fail, and unexpected members fail too: a node we were not allocated appearing in the domain is a tenancy finding.
- Mutual connectivity computed in the validation for every pair, rather than trusting a provider-reported
fully_connected boolean, so that a one-way fault cannot pass.
Step output contract
The check consumes normalized JSON from a provider step. All parsing of vendor
output happens in the provider script; the validation sees only this shape.
{
"success": true,
"platform": "provider",
"domain": {
"domain_id": "domain-a",
"state": "up",
"expected_members": ["node-01", "node-02", "node-03", "node-04"],
"fully_connected": true
},
"nodes_checked": 4,
"nodes_validated": 4,
"nodes": [
{
"node_id": "node-01",
"service_state": "active",
"domain_member": true,
"peers_reachable": ["node-02", "node-03", "node-04"]
}
]
}
Scope
In scope: domain state, membership set equality against what was allocated, and mutual pairwise connectivity.
Out of scope: performance or bandwidth of the links, and the lifecycle of the service itself.
Notes
Decide where the expected member set comes from (config membership, NVLink partition, or the allocation record) before coding.
Test statement
Source:
docs/test-plan.yaml,SDN21-01.What to assert
fully_connectedboolean, so that a one-way fault cannot pass.Step output contract
The check consumes normalized JSON from a provider step. All parsing of vendor
output happens in the provider script; the validation sees only this shape.
{ "success": true, "platform": "provider", "domain": { "domain_id": "domain-a", "state": "up", "expected_members": ["node-01", "node-02", "node-03", "node-04"], "fully_connected": true }, "nodes_checked": 4, "nodes_validated": 4, "nodes": [ { "node_id": "node-01", "service_state": "active", "domain_member": true, "peers_reachable": ["node-02", "node-03", "node-04"] } ] }Scope
In scope: domain state, membership set equality against what was allocated, and mutual pairwise connectivity.
Out of scope: performance or bandwidth of the links, and the lifecycle of the service itself.
Notes
Decide where the expected member set comes from (config membership, NVLink partition, or the allocation record) before coding.