api/controller: Convert manual BuildTarget instantiations
There are controller_util functions to construct BuildTargets from
the protobuf messages so we can have a single place to address changes
to the protobuf message. Convert all the BuildTarget instantiations
from manual constructions to calls to the util function.
BUG=chromium:1060351
TEST=run_tests, cq
Change-Id: I60c6720cf7bbc60f122f2fa1e2e81ab13368193f
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/2096818
Reviewed-by: Michael Mortensen <mmortensen@google.com>
Commit-Queue: Alex Klein <saklein@chromium.org>
Tested-by: Alex Klein <saklein@chromium.org>
diff --git a/api/controller/controller_util.py b/api/controller/controller_util.py
index 3199525..ccfac33 100644
--- a/api/controller/controller_util.py
+++ b/api/controller/controller_util.py
@@ -9,11 +9,12 @@
import sys
+from chromite.api.gen.chromite.api import sysroot_pb2
from chromite.api.gen.chromiumos import common_pb2
from chromite.cbuildbot import goma_util
from chromite.lib import constants
from chromite.lib import portage_util
-from chromite.lib.build_target_lib import BuildTarget
+from chromite.lib import build_target_lib
from chromite.lib.chroot_lib import Chroot
@@ -96,11 +97,12 @@
counterz_filename=counterz_filename)
-def ParseBuildTarget(build_target_message):
+def ParseBuildTarget(build_target_message, profile_message=None):
"""Create a BuildTarget object from a build_target message.
Args:
build_target_message (common_pb2.BuildTarget): The BuildTarget message.
+ profile_message (sysroot_pb2.Profile|None): The profile message.
Returns:
BuildTarget: The parsed instance.
@@ -109,8 +111,12 @@
AssertionError: When the field is not a BuildTarget message.
"""
assert isinstance(build_target_message, common_pb2.BuildTarget)
+ assert (profile_message is None or
+ isinstance(profile_message, sysroot_pb2.Profile))
- return BuildTarget(build_target_message.name)
+ profile_name = profile_message.name if profile_message else None
+ return build_target_lib.BuildTarget(
+ build_target_message.name, profile=profile_name)
def ParseBuildTargets(repeated_build_target_field):