remoteexec: Handle reclient logs
This CL add a functionalloity to collect the remoteexec logs, compress
them and return them to the caller on InstallPackages.
BUG=b:289878020
TEST=Ran `./generate.sh`
TEST=Ran `./run_tests lib/remoteexec_lib_unittest.py`
Cq-Depend: chromium:4835663
Change-Id: Ia18360f75959cacdad5739307262425f7491a133
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/4835662
Auto-Submit: Yoshiki Iguchi <yoshiki@chromium.org>
Commit-Queue: Eric Lok <lokeric@google.com>
Reviewed-by: Eric Lok <lokeric@google.com>
Tested-by: Yoshiki Iguchi <yoshiki@chromium.org>
Commit-Queue: Yoshiki Iguchi <yoshiki@chromium.org>
diff --git a/api/controller/sysroot.py b/api/controller/sysroot.py
index a1b60f0..1b74b7b 100644
--- a/api/controller/sysroot.py
+++ b/api/controller/sysroot.py
@@ -6,6 +6,7 @@
import logging
import os
+from pathlib import Path
import traceback
from chromite.api import controller
@@ -21,6 +22,7 @@
from chromite.lib import metrics_lib
from chromite.lib import osutils
from chromite.lib import portage_util
+from chromite.lib import remoteexec_lib
from chromite.lib import sysroot_lib
from chromite.service import sysroot
@@ -414,6 +416,15 @@
)
output_proto.goma_artifacts.log_files[:] = archiver_tuple.log_files
+ if input_proto.remoteexec_config.log_dir.dir:
+ archiver = remoteexec_lib.LogsArchiver(
+ dest_dir=Path(input_proto.remoteexec_config.log_dir.dir),
+ )
+ archived_logs = archiver.archive()
+ output_proto.remoteexec_artifacts.log_files[:] = [
+ str(x) for x in archived_logs
+ ]
+
# Return without populating the response if it is a dryrun.
if dryrun:
return controller.RETURN_CODE_SUCCESS