controller/packages: Simplify GetTargetVersions.
Simplify the controller function to only do input/output
translation, using the new service method instead.
BUG=b:194405049
TEST=run_tests
Change-Id: I83fffe7ac79534df2d474b083681e1783ee55fe8
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/3273762
Tested-by: Alex Klein <saklein@chromium.org>
Commit-Queue: Alex Klein <saklein@chromium.org>
Reviewed-by: Sergey Frolov <sfrolov@google.com>
diff --git a/api/controller/packages.py b/api/controller/packages.py
index 11062a7..3b0df05 100644
--- a/api/controller/packages.py
+++ b/api/controller/packages.py
@@ -169,51 +169,18 @@
def GetTargetVersions(input_proto, output_proto, _config):
"""Returns the target versions."""
build_target = controller_util.ParseBuildTarget(input_proto.build_target)
- # Look up the android package here once since the operation is so slow.
- android_package = packages.determine_android_package(build_target.name)
- if android_package:
- # Android version.
- android_version = packages.determine_android_version(
- build_target.name, package=android_package)
- logging.info('Found android version: %s', android_version)
- if android_version:
- output_proto.android_version = android_version
- # Android branch version.
- android_branch_version = packages.determine_android_branch(
- build_target.name, package=android_package)
- logging.info('Found android branch version: %s', android_branch_version)
- if android_branch_version:
- output_proto.android_branch_version = android_branch_version
- # Android target version.
- android_target_version = packages.determine_android_target(
- build_target.name, package=android_package)
- logging.info('Found android target version: %s', android_target_version)
- if android_target_version:
- output_proto.android_target_version = android_target_version
+ package_list = [
+ controller_util.PackageInfoToCPV(x) for x in input_proto.packages or []
+ ]
+ target_versions = packages.get_target_versions(build_target, package_list)
- # TODO(crbug/1019770): Investigate cases where builds_chrome is true but
- # chrome_version is None.
-
- # If input_proto.packages is empty, then the default set of packages will
- # be used as defined in dependency.GetBuildDependency.
- package_list = None
- if input_proto.packages:
- package_list = [
- controller_util.PackageInfoToCPV(x) for x in input_proto.packages
- ]
- builds_chrome = packages.builds(constants.CHROME_CP, build_target,
- packages=package_list)
- if builds_chrome:
- # Chrome version fetch.
- chrome_version = packages.determine_chrome_version(build_target)
- logging.info('Found chrome version: %s', chrome_version)
- if chrome_version:
- output_proto.chrome_version = chrome_version
-
- # The ChromeOS version info.
- output_proto.platform_version = packages.determine_platform_version()
- output_proto.milestone_version = packages.determine_milestone_version()
- output_proto.full_version = packages.determine_full_version()
+ output_proto.android_version = target_versions.android_version or ''
+ output_proto.android_branch_version = target_versions.android_branch or ''
+ output_proto.android_target_version = target_versions.android_target or ''
+ output_proto.chrome_version = target_versions.chrome_version or ''
+ output_proto.platform_version = target_versions.platform_version or ''
+ output_proto.milestone_version = target_versions.milestone_version or ''
+ output_proto.full_version = target_versions.full_version or ''
def _GetBuilderMetadataResponse(input_proto, output_proto, _config):