m/t/launch: log LaunchNode errors in LaunchCluster

LaunchNode errors that were made available through Cluster.nodesDone,
returned by LaunchCluster, weren't actually logged anywhere in the
repo, resulting in a significant blind spot.

Change-Id: I12fd5a072330253e00cc57c0b6a29411a65c0d56
Reviewed-on: https://review.monogon.dev/c/monogon/+/700
Reviewed-by: Sergiusz Bazanski <serge@monogon.tech>
Tested-by: Jenkins CI
diff --git a/metropolis/test/launch/cluster/cluster.go b/metropolis/test/launch/cluster/cluster.go
index a25e992..e40f7b8 100644
--- a/metropolis/test/launch/cluster/cluster.go
+++ b/metropolis/test/launch/cluster/cluster.go
@@ -623,6 +623,9 @@
 	log.Printf("Cluster: Starting node %d...", 1)
 	go func() {
 		err := LaunchNode(ctxT, ld, sd, &nodeOpts[0])
+		if err != nil {
+			log.Printf("Node %d finished with an error: %v", 1, err)
+		}
 		done[0] <- err
 	}()
 
@@ -736,6 +739,9 @@
 		log.Printf("Cluster: Starting node %d...", i+1)
 		go func(i int) {
 			err := LaunchNode(ctxT, ld, sd, &nodeOpts[i])
+			if err != nil {
+				log.Printf("Node %d finished with an error: %v", i, err)
+			}
 			done[i] <- err
 		}(i)
 		var newNode *apb.Node
@@ -858,6 +864,9 @@
 	log.Printf("Cluster: restarting node %d (%s).", idx, id)
 	go func(n int) {
 		err := LaunchNode(c.ctxT, c.launchDir, c.socketDir, &c.nodeOpts[n])
+		if err != nil {
+			log.Printf("Node %d finished with an error: %v", n, err)
+		}
 		c.nodesDone[n] <- err
 	}(idx)