diff --git a/lix/legacy/build-remote.cc b/lix/legacy/build-remote.cc index 9803f37a0..416b4fb38 100644 --- a/lix/legacy/build-remote.cc +++ b/lix/legacy/build-remote.cc @@ -96,7 +96,7 @@ static std::tuple selectBestMachine( uint64_t bestLoad = 0; for (auto & m : machines) { - debug("considering building on remote machine '%s'", m.storeUri); + debug("considering building on remote machine '%s'", m.name); if (m.enabled && m.systemSupported(neededSystem) && m.allSupported(requiredFeatures) && m.mandatoryMet(requiredFeatures)) @@ -329,9 +329,8 @@ try { Pipe logPipe; try { - auto act = logger->startActivity( - lvlTalkative, actUnknown, fmt("connecting to '%s'", bestMachine->storeUri) - ); + auto act = + logger->startActivity(lvlTalkative, actUnknown, fmt("connecting to '%s'", bestMachine->name)); std::tie(sshStore, logPipe) = TRY_AWAIT(bestMachine->openStore()); TRY_AWAIT(sshStore->connect()); @@ -341,10 +340,7 @@ try { } catch (std::exception & e) { // NOLINT(lix-foreign-exceptions) std::string msg = logPipe.readSide ? chomp(drainFD(logPipe.readSide.get(), false)) : ""; printError( - "cannot build on '%s': %s%s", - bestMachine->storeUri, - e.what(), - msg.empty() ? "" : ": " + msg + "cannot build on '%s': %s%s", bestMachine->name, e.what(), msg.empty() ? "" : ": " + msg ); bestMachine->enabled = false; } diff --git a/tests/functional2/build/test_remote.py b/tests/functional2/build/test_remote.py index b44511ef0..b28c2e854 100644 --- a/tests/functional2/build/test_remote.py +++ b/tests/functional2/build/test_remote.py @@ -1,3 +1,7 @@ +from testlib.fixtures.file_helper import CopyFile +from testlib.fixtures.file_helper import File +from pathlib import Path +from textwrap import dedent import pytest import re import textwrap @@ -150,3 +154,35 @@ def test_remote_trustless_ca( out_path = (env.dirs.home / "result").readlink() assert nix.physical_store_path_for(out_path).read_text() == "FOO BAR BAZ\n" + + +@with_files( + { + "check-reqs.nix": CopyFile("assets/check-reqs.nix"), + "config.nix": get_global_asset("config.nix"), + "builders.toml": File( + dedent(""" + [machines.fox] + uri = "file://test-home/fox-store" + supported-features = ["kvm", "big", "benchmark"] + + [machines.dragon] + uri = "file:///dev/null/" + supported-features = ["kvm", "big", "benchmark"] + + [machines.plushie] + uri = "ssh-ng://plushie@example.com" + + """) + ), + } +) +def test_logging_uses_machine_name(nix: Nix, files: Path): + nix.settings["builders"] = f"@{files}/builders.toml" + nix.settings["max-jobs"] = 0 + + res = nix.nix_build(["check-reqs.nix", "-vvvvv"]).run().expect(1) + for builder in ["fox", "dragon", "plushie"]: + assert f"considering building on remote machine '{builder}'" in res.stderr_plain + assert f"cannot build on '{builder}': error: " in res.stderr_plain + assert f"connecting to '{builder}'..." in res.stderr_plain