Build API: Add GetToolchainPaths endpoint
This endpoint uses the equery parser to get the immediate dependencies
of the `virtual/toolchain-packages` package in order to determine which
paths count as affecting the toolchain.
BUG=b:147234405
TEST=local call scripts show correct output
Change-Id: Ie32cb475e71f75011c7ff49d60900ffaf8906cf6
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/1991824
Tested-by: Chris McDonald <cjmcdonald@chromium.org>
Commit-Queue: Chris McDonald <cjmcdonald@chromium.org>
Reviewed-by: Alex Klein <saklein@chromium.org>
diff --git a/api/controller/dependency.py b/api/controller/dependency.py
index 0645bb5..2f725fb 100644
--- a/api/controller/dependency.py
+++ b/api/controller/dependency.py
@@ -73,3 +73,20 @@
json_map, sdk_json_map = dependency.GetBuildDependency(board, packages)
AugmentDepGraphProtoFromJsonMap(json_map, output_proto.dep_graph)
AugmentDepGraphProtoFromJsonMap(sdk_json_map, output_proto.sdk_dep_graph)
+
+
+def _DummyGetToolchainPathsResponse(_input_proto, output_proto, _config):
+ """Create a fake successful response for GetToolchainPaths."""
+ dummy_entry = output_proto.paths.add()
+ dummy_entry.path = 'src/third_party/dummy-package'
+
+
+@faux.success(_DummyGetToolchainPathsResponse)
+@faux.empty_error
+@validate.validation_complete
+def GetToolchainPaths(_input_proto, output_proto, _config):
+ """Get a list of paths that affect the toolchain."""
+ toolchain_paths = dependency.DetermineToolchainSourcePaths()
+ for p in toolchain_paths:
+ source_path = output_proto.paths.add()
+ source_path.path = p