SysrootService: Add portage binhost logging.
The portage binhost is an important piece of information for a
lot of problems. Add logging to the two endpoints where the
problems most often manifest.
BUG=None
TEST=run_tests
Change-Id: I584eebde319134198be28ca427ce0957794da942
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/1618205
Tested-by: Sean Abraham <seanabraham@chromium.org>
Commit-Queue: Sean Abraham <seanabraham@chromium.org>
Reviewed-by: Alex Klein <saklein@chromium.org>
diff --git a/api/controller/sysroot.py b/api/controller/sysroot.py
index 518bac4..2560610 100644
--- a/api/controller/sysroot.py
+++ b/api/controller/sysroot.py
@@ -11,6 +11,8 @@
from chromite.api.controller import controller_util
from chromite.lib import build_target_util
from chromite.lib import cros_build_lib
+from chromite.lib import cros_logging as logging
+from chromite.lib import portage_util
from chromite.lib import sysroot_lib
from chromite.service import sysroot
@@ -61,6 +63,8 @@
if not target_sysroot.Exists():
cros_build_lib.Die('Sysroot has not been created. Run Create first.')
+ _LogBinhost(build_target.name)
+
try:
sysroot.InstallToolchain(build_target, target_sysroot, run_configs)
except sysroot_lib.ToolchainInstallError as e:
@@ -91,6 +95,8 @@
if not target_sysroot.IsToolchainInstalled():
cros_build_lib.Die('Toolchain must first be installed.')
+ _LogBinhost(build_target.name)
+
use_flags = [u.flag for u in input_proto.use_flags]
build_packages_config = sysroot.BuildPackagesRunConfig(
event_file=event_file, usepkg=not compile_source,
@@ -104,3 +110,13 @@
controller_util.CPVToPackageInfo(package, package_info)
return controller.RETURN_CODE_UNSUCCESSFUL_RESPONSE_AVAILABLE
+
+
+def _LogBinhost(board):
+ """Log the portage binhost for the given board."""
+ binhost = portage_util.PortageqEnvvar('PORTAGE_BINHOST', board=board,
+ allow_undefined=True)
+ if not binhost:
+ logging.warning('Portage Binhost not found.')
+ else:
+ logging.info('Portage Binhost: %s', binhost)
diff --git a/api/controller/sysroot_unittest.py b/api/controller/sysroot_unittest.py
index 35c0f55..6e9e4c4 100644
--- a/api/controller/sysroot_unittest.py
+++ b/api/controller/sysroot_unittest.py
@@ -108,6 +108,8 @@
def setUp(self):
self.PatchObject(cros_build_lib, 'IsInsideChroot', return_value=True)
+ # Avoid running the portageq command.
+ self.PatchObject(sysroot_controller, '_LogBinhost')
self.board = 'board'
self.sysroot = os.path.join(self.tempdir, 'board')
self.invalid_sysroot = os.path.join(self.tempdir, 'invalid', 'sysroot')
@@ -194,6 +196,8 @@
def setUp(self):
self.PatchObject(cros_build_lib, 'IsInsideChroot', return_value=True)
+ # Avoid running the portageq command.
+ self.PatchObject(sysroot_controller, '_LogBinhost')
self.build_target = 'board'
self.sysroot = os.path.join(self.tempdir, 'build', 'board')
osutils.SafeMakedirs(self.sysroot)