Add GetBuilderMetadata method to Packages controller.
Ran api/compile_build_api_proto. This provides a basic entry point stub
and faux unit tests. Implementation with service methods to follow.
BUG=chromium:1071620
TEST=manual, run_tests
Change-Id: I639bbced2b7d3392fb2fb2d02e9a2a832ea1e2c0
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/2175017
Commit-Queue: Michael Mortensen <mmortensen@google.com>
Tested-by: Michael Mortensen <mmortensen@google.com>
Reviewed-by: Alex Klein <saklein@chromium.org>
diff --git a/api/controller/packages.py b/api/controller/packages.py
index 4f29b78..26c6247 100644
--- a/api/controller/packages.py
+++ b/api/controller/packages.py
@@ -192,6 +192,29 @@
output_proto.full_version = packages.determine_full_version()
+def _GetBuilderMetadataResponse(input_proto, output_proto, _config):
+ """Add fake metadata fields to a successful response."""
+ # Populate only a few fields to validate faux testing.
+ build_target_metadata = output_proto.build_target_metadata.add()
+ build_target_metadata.build_target = input_proto.build_target.name
+ build_target_metadata.android_container_branch = 'git_pi-arc'
+ model_metadata = output_proto.model_metadata.add()
+ model_metadata.model_name = 'astronaut'
+ model_metadata.ec_firmware_version = 'coral_v1.1.1234-56789f'
+
+
+@faux.success(_GetBuilderMetadataResponse)
+@faux.empty_error
+@validate.require('build_target.name')
+@validate.validation_complete
+def GetBuilderMetadata(input_proto, output_proto, _config):
+ """Returns the target builder metadata."""
+ build_target = controller_util.ParseBuildTarget(input_proto.build_target)
+ build_target_metadata = output_proto.build_target_metadata.add()
+ build_target_metadata.build_target = build_target.name
+ # TODO(crbug/1071620): Add service layer calls to fill out the rest of
+ # build_target_metadata and model_metadata.
+
def _HasPrebuiltSuccess(_input_proto, output_proto, _config):
"""The mock success case for HasChromePrebuilt."""
output_proto.has_prebuilt = True