chromite changes for remoteexec builder support.

BUG=chromium:1256966
TEST=./run_tests

Change-Id: Id3f5494cb4603ba2974529e04ee3fdd341d432d8
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/3259256
Tested-by: Joanna Wang <jojwang@chromium.org>
Commit-Queue: Joanna Wang <jojwang@chromium.org>
Reviewed-by: Alex Klein <saklein@chromium.org>
diff --git a/api/controller/controller_util.py b/api/controller/controller_util.py
index 20474b8..b7b7de1 100644
--- a/api/controller/controller_util.py
+++ b/api/controller/controller_util.py
@@ -13,6 +13,7 @@
 from chromite.lib import constants
 from chromite.lib.parser import package_info
 from chromite.lib import chroot_lib
+from chromite.lib import remoteexec_util
 from chromite.lib import sysroot_lib
 
 if TYPE_CHECKING:
@@ -81,6 +82,18 @@
   return sysroot_lib.Sysroot(sysroot_message.path)
 
 
+def ParseRemoteexecConfig(remoteexec_message: common_pb2.RemoteexecConfig):
+  """Parse a remoteexec config message."""
+  assert isinstance(remoteexec_message, common_pb2.RemoteexecConfig)
+
+  if not (remoteexec_message.reclient_dir or
+          remoteexec_message.reproxy_cfg_file):
+    return None
+
+  return remoteexec_util.Remoteexec(remoteexec_message.reclient_dir,
+                                    remoteexec_message.reproxy_cfg_file)
+
+
 def ParseGomaConfig(goma_message, chroot_path):
   """Parse a goma config message."""
   assert isinstance(goma_message, common_pb2.GomaConfig)