Adding dlc images to Get artifacts
BUG=b:182002718
TEST="./artifacts__get" in "chromite/api/contrib/call_scripts"
Change-Id: Ifb86fbdfc6f9cf5c2b70187a8e897d026e6492b1
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/2822073
Tested-by: Jaques Clapauch <jaquesc@google.com>
Auto-Submit: Jaques Clapauch <jaquesc@google.com>
Reviewed-by: LaMont Jones <lamontjones@chromium.org>
Reviewed-by: George Engelbrecht <engeg@google.com>
Commit-Queue: George Engelbrecht <engeg@google.com>
diff --git a/api/controller/artifacts.py b/api/controller/artifacts.py
index e64ae41..fefc172 100644
--- a/api/controller/artifacts.py
+++ b/api/controller/artifacts.py
@@ -15,12 +15,14 @@
from chromite.api.controller import controller_util
from chromite.api.gen.chromite.api import artifacts_pb2
from chromite.api.gen.chromite.api import toolchain_pb2
+from chromite.api.gen.chromiumos import common_pb2
from chromite.lib import chroot_lib
from chromite.lib import constants
from chromite.lib import cros_build_lib
from chromite.lib import cros_logging as logging
from chromite.lib import sysroot_lib
from chromite.service import artifacts
+from chromite.service import image as image_service
def _GetResponse(_input_proto, _output_proto, _config):
@@ -33,7 +35,7 @@
@faux.empty_error
@validate.exists('result_path.path.path')
@validate.validation_complete
-def Get(_input_proto, _output_proto, _config):
+def Get(input_proto, output_proto, _config):
"""Get all artifacts.
Get all artifacts for the build.
@@ -43,10 +45,28 @@
individual bundler function.
Args:
- _input_proto (GetRequest): The input proto.
- _output_proto (GetResponse): The output proto.
+ input_proto (GetRequest): The input proto.
+ output_proto (GetResponse): The output proto.
_config (api_config.ApiConfig): The API call config.
"""
+
+ image_proto = input_proto.artifact_info.image
+ base_path = os.path.join(input_proto.chroot.path,
+ input_proto.sysroot.path[1:])
+ output_dir = input_proto.result_path.path.path
+
+ images_list = image_service.Get(image_proto, base_path, output_dir)
+
+ for artifact_dict in images_list:
+ output_proto.artifacts.image.artifacts.add(
+ artifact_type=artifact_dict['type'],
+ paths=[
+ common_pb2.Path(
+ path=x,
+ location=common_pb2.Path.Location.OUTSIDE)
+ for x in artifact_dict['paths']
+ ])
+
return controller.RETURN_CODE_SUCCESS