packages: Add HasPrebuilt endpoint.
BUG=None
TEST=cq
Change-Id: Iaa7a53d4ad9e703912e80d4ae9ab562f8a24c905
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/2116663
Tested-by: Alex Klein <saklein@chromium.org>
Tested-by: George Engelbrecht <engeg@google.com>
Reviewed-by: George Engelbrecht <engeg@google.com>
Commit-Queue: George Engelbrecht <engeg@google.com>
diff --git a/api/controller/packages.py b/api/controller/packages.py
index de9f29d..89ada03 100644
--- a/api/controller/packages.py
+++ b/api/controller/packages.py
@@ -192,12 +192,12 @@
output_proto.full_version = packages.determine_full_version()
-def _HasChromePrebuiltSuccess(_input_proto, output_proto, _config):
+def _HasPrebuiltSuccess(_input_proto, output_proto, _config):
"""The mock success case for HasChromePrebuilt."""
output_proto.has_prebuilt = True
-@faux.success(_HasChromePrebuiltSuccess)
+@faux.success(_HasPrebuiltSuccess)
@faux.empty_error
@validate.require('build_target.name')
@validate.validation_complete
@@ -211,6 +211,21 @@
output_proto.has_prebuilt = exists
+@faux.success(_HasPrebuiltSuccess)
+@faux.empty_error
+@validate.require('build_target.name', 'package.category', 'package.name')
+@validate.validation_complete
+def HasPrebuilt(input_proto, output_proto, _config):
+ """Checks if the most recent version of Chrome has a prebuilt."""
+ build_target = controller_util.ParseBuildTarget(input_proto.build_target)
+ package = controller_util.PackageInfoToCPV(input_proto.package_info).cp
+ useflags = 'chrome_internal' if input_proto.chrome else None
+ exists = packages.has_prebuilt(
+ package, build_target=build_target, useflags=useflags)
+
+ output_proto.has_prebuilt = exists
+
+
def _BuildsChromeSuccess(_input_proto, output_proto, _config):
"""Mock success case for BuildsChrome."""
output_proto.builds_chrome = True