m/test/launch: consistently use 0-based node indices
Previously, the first node was sometimes called node 1 in the logs, and
sometimes node 0. Now it is always called node 0.
Once all nodes are up, node info is now printed in the order of node
numbers. Previously this was random as this was iterating over a map
(cluster.Nodes).
Change-Id: I0757c89951d7292f2f720237604a3554af4bf404
Reviewed-on: https://review.monogon.dev/c/monogon/+/3293
Tested-by: Jenkins CI
Reviewed-by: Serge Bazanski <serge@monogon.tech>
diff --git a/metropolis/test/launch/cluster.go b/metropolis/test/launch/cluster.go
index 7ae5f83..ac8a017 100644
--- a/metropolis/test/launch/cluster.go
+++ b/metropolis/test/launch/cluster.go
@@ -793,18 +793,18 @@
PcapDump: true,
}
if opts.NodeLogsToFiles {
- path := path.Join(ld, "node-1.txt")
+ path := path.Join(ld, "node-0.txt")
port, err := NewSerialFileLogger(path)
if err != nil {
- return nil, fmt.Errorf("could not open log file for node 1: %w", err)
+ return nil, fmt.Errorf("could not open log file for node 0: %w", err)
}
- launch.Log("Node 1 logs at %s", path)
+ launch.Log("Node 0 logs at %s", path)
nodeOpts[0].SerialPort = port
}
// Start the first node.
ctxT, ctxC := context.WithCancel(ctx)
- launch.Log("Cluster: Starting node %d...", 1)
+ launch.Log("Cluster: Starting node %d...", 0)
if err := LaunchNode(ctxT, ld, sd, tpmf, &nodeOpts[0], done[0]); err != nil {
ctxC()
return nil, fmt.Errorf("failed to launch first node: %w", err)
@@ -987,22 +987,22 @@
SerialPort: newPrefixedStdio(i),
}
if opts.NodeLogsToFiles {
- path := path.Join(ld, fmt.Sprintf("node-%d.txt", i+1))
+ path := path.Join(ld, fmt.Sprintf("node-%d.txt", i))
port, err := NewSerialFileLogger(path)
if err != nil {
- return nil, fmt.Errorf("could not open log file for node %d: %w", i+1, err)
+ return nil, fmt.Errorf("could not open log file for node %d: %w", i, err)
}
- launch.Log("Node %d logs at %s", i+1, path)
+ launch.Log("Node %d logs at %s", i, path)
nodeOpts[i].SerialPort = port
}
}
// Now run the rest of the nodes.
for i := 1; i < opts.NumNodes; i++ {
- launch.Log("Cluster: Starting node %d...", i+1)
+ launch.Log("Cluster: Starting node %d...", i)
err := LaunchNode(ctxT, ld, sd, tpmf, &nodeOpts[i], done[i])
if err != nil {
- return nil, fmt.Errorf("failed to launch node %d: %w", i+1, err)
+ return nil, fmt.Errorf("failed to launch node %d: %w", i, err)
}
}
@@ -1089,7 +1089,7 @@
}
}
- launch.Log("Cluster: want %d up nodes, have %d", opts.NumNodes-1, len(upNodes))
+ launch.Log("Cluster: want %d up nodes, have %d", opts.NumNodes, len(upNodes)+1)
if len(upNodes) == opts.NumNodes-1 {
break
}
@@ -1098,8 +1098,8 @@
}
launch.Log("Cluster: all nodes up:")
- for _, node := range cluster.Nodes {
- launch.Log("Cluster: - %s at %s", node.ID, node.ManagementAddress)
+ for i, nodeID := range cluster.NodeIDs {
+ launch.Log("Cluster: %d. %s at %s", i, nodeID, cluster.Nodes[nodeID].ManagementAddress)
}
launch.Log("Cluster: starting tests...")