metropolis/test/launch: write nanoswitch logs to correct dir

Change-Id: I9ef4f39d0ca279b9b16158453b9e9b7774426480
Reviewed-on: https://review.monogon.dev/c/monogon/+/4053
Tested-by: Jenkins CI
Reviewed-by: Lorenz Brun <lorenz@monogon.tech>
diff --git a/metropolis/test/launch/cluster.go b/metropolis/test/launch/cluster.go
index 7acb738..d8eb8cd 100644
--- a/metropolis/test/launch/cluster.go
+++ b/metropolis/test/launch/cluster.go
@@ -784,6 +784,12 @@
 	if err != nil {
 		return nil, fmt.Errorf("failed to create the launch directory: %w", err)
 	}
+
+	nodeLogDir := ld
+	if os.Getenv("TEST_UNDECLARED_OUTPUTS_DIR") != "" {
+		nodeLogDir = os.Getenv("TEST_UNDECLARED_OUTPUTS_DIR")
+	}
+
 	// Create the metroctl config directory. We keep it in /tmp because in some
 	// scenarios it's end-user visible and we want it short.
 	md, err := os.MkdirTemp("/tmp", "metroctl-*")
@@ -822,10 +828,6 @@
 	}
 
 	if opts.NodeLogsToFiles {
-		nodeLogDir := ld
-		if os.Getenv("TEST_UNDECLARED_OUTPUTS_DIR") != "" {
-			nodeLogDir = os.Getenv("TEST_UNDECLARED_OUTPUTS_DIR")
-		}
 		for i := range opts.NumNodes {
 			path := path.Join(nodeLogDir, fmt.Sprintf("node-%d.txt", i))
 			port, err := NewSerialFileLogger(path)
@@ -881,7 +883,8 @@
 		var serialPort io.ReadWriter
 		var err error
 		if opts.NodeLogsToFiles {
-			loggerPath := path.Join(ld, "nanoswitch.txt")
+
+			loggerPath := path.Join(nodeLogDir, "nanoswitch.txt")
 			serialPort, err = NewSerialFileLogger(loggerPath)
 			if err != nil {
 				logf("Could not open log file for nanoswitch: %v", err)
@@ -899,7 +902,7 @@
 			PortMap:                portMap,
 			GuestServiceMap:        guestSvcMap,
 			SerialPort:             serialPort,
-			PcapDump:               path.Join(ld, "nanoswitch.pcap"),
+			PcapDump:               path.Join(nodeLogDir, "nanoswitch.pcap"),
 		}); err != nil {
 			if !errors.Is(err, ctxT.Err()) {
 				logf("Failed to launch nanoswitch: %v", err)