sdk_subtools: Refactor into a build api endpoint.
Methods from scripts/build_sdk_subtools that are shared with the recipe
are moved mostly verbatim into chromite/service/sdk_subtools.py.
A `sudo` argument is added to setup_base_sdk, and the subtools chroot
sentinel file is created with osutils.WriteText(sudo=True) to reduce
friction when invoking from the build api layer.
api/controller/sdk_subtools.py is added with unit tests and a
call_scripts template, and the proto is registered with the router.
BUG=b:277992359
TEST=call_scripts/build_sdk_subtools__build_sdk_subtools
Change-Id: I5907e1a92050b0d781962eb4812112efe41b5684
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/4792625
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Commit-Queue: Trent Apted <tapted@chromium.org>
Tested-by: Trent Apted <tapted@chromium.org>
diff --git a/api/controller/controller_util.py b/api/controller/controller_util.py
index 04a6f5e..0b93ee4 100644
--- a/api/controller/controller_util.py
+++ b/api/controller/controller_util.py
@@ -10,6 +10,7 @@
from pathlib import Path
from typing import Iterable, Optional, TYPE_CHECKING, Union
+from chromite.api.gen.chromite.api import sdk_subtools_pb2
from chromite.api.gen.chromite.api import sysroot_pb2
from chromite.api.gen.chromite.api import test_pb2
from chromite.api.gen.chromiumos import common_pb2
@@ -243,6 +244,7 @@
output_proto: Union[
sysroot_pb2.InstallPackagesResponse,
sysroot_pb2.InstallToolchainResponse,
+ sdk_subtools_pb2.BuildSdkSubtoolsResponse,
test_pb2.BuildTargetUnitTestResponse,
],
target_sysroot: sysroot_lib.Sysroot,