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)
                                                  )