AndroidService: Refactor uprev and unpin endpoints.
The previous refactor caused errors, and was too out of date to
reland. Reimplemented in new CL with fixes and updates.
BUG=chromium:956244, chromium:982121
TEST=run_tests
TEST=android pfq tryjob
Change-Id: I1dc2aacfa68112d3b190d90eeb91e2db5aeb8674
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/1753024
Tested-by: Alex Klein <saklein@chromium.org>
Commit-Queue: Alex Klein <saklein@chromium.org>
Reviewed-by: David Burger <dburger@chromium.org>
diff --git a/api/controller/android.py b/api/controller/android.py
index c657d43..29e408b 100644
--- a/api/controller/android.py
+++ b/api/controller/android.py
@@ -10,12 +10,12 @@
import os
from chromite.api import validate
+from chromite.api.controller import controller_util
from chromite.api.gen.chromite.api import android_pb2
-# TODO(crbug/904939): implement service/android.
-from chromite.cbuildbot import commands
from chromite.lib import constants
from chromite.lib import osutils
from chromite.lib import portage_util
+from chromite.service import packages
ANDROIDPIN_MASK_PATH = os.path.join(constants.SOURCE_ROOT,
@@ -39,28 +39,28 @@
output_proto (MarkStableResponse): The output proto.
_config (api_config.ApiConfig): The call config.
"""
+ chroot = controller_util.ParseChroot(input_proto.chroot)
+ build_targets = controller_util.ParseBuildTargets(input_proto.build_targets)
tracking_branch = input_proto.tracking_branch
package_name = input_proto.package_name
android_build_branch = input_proto.android_build_branch
android_version = input_proto.android_version
android_gts_build_branch = input_proto.android_gts_build_branch
- boards = input_proto.boards
- buildroot = input_proto.buildroot
# Assume success.
output_proto.status = android_pb2.MARK_STABLE_STATUS_SUCCESS
# TODO(crbug/904939): This should move to service/android.py and the port
# should be finished.
try:
- android_atom_to_build = commands.MarkAndroidAsStable(
- buildroot=buildroot,
+ android_atom_to_build = packages.uprev_android(
tracking_branch=tracking_branch,
android_package=package_name,
android_build_branch=android_build_branch,
- boards=boards,
+ chroot=chroot,
+ build_targets=build_targets,
android_version=android_version,
android_gts_build_branch=android_gts_build_branch)
- except commands.AndroidIsPinnedUprevError as e:
+ except packages.AndroidIsPinnedUprevError as e:
# If the uprev failed due to a pin, CI needs to unpin and retry.
android_atom_to_build = e.new_android_atom
output_proto.status = android_pb2.MARK_STABLE_STATUS_PINNED