api: Retrieve PORTAGE_LOGDIR variable from sysroot
Use PORTAGE_LOGDIR variable to interact with a given sysroot's log
directory. This property replaces hard-coded paths to Portage build
logs.
BUG=b:204816060
TEST=unit
Change-Id: I2dafdc88aea57c925fda1b654f937f72eff16b3a
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/3291945
Commit-Queue: Lizzy Presland <zland@google.com>
Auto-Submit: Lizzy Presland <zland@google.com>
Tested-by: Lizzy Presland <zland@google.com>
Reviewed-by: Chris McDonald <cjmcdonald@chromium.org>
diff --git a/api/controller/sysroot_unittest.py b/api/controller/sysroot_unittest.py
index cfae62d..b1bd4e0 100644
--- a/api/controller/sysroot_unittest.py
+++ b/api/controller/sysroot_unittest.py
@@ -248,7 +248,8 @@
self.invalid_sysroot = os.path.join(self.tempdir, 'invalid', 'sysroot')
osutils.SafeMakedirs(self.sysroot)
# Set up portage log directory.
- self.portage_dir = os.path.join(self.sysroot, 'tmp', 'portage', 'logs')
+ self.target_sysroot = sysroot_lib.Sysroot(self.sysroot)
+ self.portage_dir = self.target_sysroot.portage_logdir
osutils.SafeMakedirs(self.portage_dir)
def _InputProto(self, build_target=None, sysroot_path=None,
@@ -268,15 +269,15 @@
"""Helper to build output proto instance."""
return sysroot_pb2.InstallToolchainResponse()
- def _CreatePortageLogFile(self, root, pkg_info, timestamp):
+ def _CreatePortageLogFile(self, log_path, pkg_info, timestamp):
"""Creates a log file for testing for individual packages built by Portage.
Args:
- root (pathlike): the sysroot path
+ log_path (pathlike): the PORTAGE_LOGDIR path
pkg_info (PackageInfo): name components for log file.
timestamp (datetime): timestamp used to name the file.
"""
- path = os.path.join(root, 'tmp', 'portage', 'logs',
+ path = os.path.join(log_path,
f'{pkg_info.category}:{pkg_info.package}:' \
f'{timestamp.strftime("%Y%m%d-%H%M%S")}.log')
osutils.WriteFile(path,
@@ -369,9 +370,9 @@
new_logs = {}
for i, pkg in enumerate(err_pkgs):
- self._CreatePortageLogFile(self.sysroot, err_cpvs[i],
+ self._CreatePortageLogFile(self.portage_dir, err_cpvs[i],
datetime.datetime(2021, 6, 9, 13, 37, 0))
- new_logs[pkg] = self._CreatePortageLogFile(self.sysroot, err_cpvs[i],
+ new_logs[pkg] = self._CreatePortageLogFile(self.portage_dir, err_cpvs[i],
datetime.datetime(2021, 6, 9,
16, 20, 0)
)
@@ -412,7 +413,8 @@
self.sysroot = os.path.join(self.tempdir, 'build', 'board')
osutils.SafeMakedirs(self.sysroot)
# Set up portage log directory.
- self.portage_dir = os.path.join(self.sysroot, 'tmp', 'portage', 'logs')
+ self.target_sysroot = sysroot_lib.Sysroot(self.sysroot)
+ self.portage_dir = self.target_sysroot.portage_logdir
osutils.SafeMakedirs(self.portage_dir)
# Set up goma directories.
self.goma_dir = os.path.join(self.tempdir, 'goma_dir')
@@ -470,15 +472,15 @@
path,
timestamp.strftime('Goma log file created at: %Y/%m/%d %H:%M:%S'))
- def _CreatePortageLogFile(self, root, pkg_info, timestamp):
+ def _CreatePortageLogFile(self, log_path, pkg_info, timestamp):
"""Creates a log file for testing for individual packages built by Portage.
Args:
- root (pathlike): the root path, taken from a BuildTarget object.
+ log_path (pathlike): the PORTAGE_LOGDIR path
pkg_info (PackageInfo): name components for log file.
timestamp (datetime): timestamp used to name the file.
"""
- path = os.path.join(root, 'tmp', 'portage', 'logs',
+ path = os.path.join(log_path,
f'{pkg_info.category}:{pkg_info.package}:' \
f'{timestamp.strftime("%Y%m%d-%H%M%S")}.log')
osutils.WriteFile(path, f'Test log file for package {pkg_info.category}/'
@@ -747,9 +749,9 @@
new_logs = {}
for i, pkg in enumerate(err_pkgs):
- self._CreatePortageLogFile(self.sysroot, err_cpvs[i],
+ self._CreatePortageLogFile(self.portage_dir, err_cpvs[i],
datetime.datetime(2021, 6, 9, 13, 37, 0))
- new_logs[pkg] = self._CreatePortageLogFile(self.sysroot, err_cpvs[i],
+ new_logs[pkg] = self._CreatePortageLogFile(self.portage_dir, err_cpvs[i],
datetime.datetime(2021, 6, 9,
16, 20, 0)
)