Reland "AndroidService: Refactor uprev and unpin endpoints."
This is a reland of f878992e96bd45cd5c42fc55a19b7c338276aa8a
The uprev script doesn't always uprev the package, fix the
commands.py implementation to handle the no-op case.
Original change's description:
> 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>
BUG=chromium:956244, chromium:982121
TEST=run_tests
TEST=android pfq tryjob
Change-Id: Ie7a5a6d4997eb74624ea0909f812fe7a441930ea
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/1762279
Tested-by: Alex Klein <saklein@chromium.org>
Auto-Submit: Alex Klein <saklein@chromium.org>
Reviewed-by: David Burger <dburger@chromium.org>
Commit-Queue: Alex Klein <saklein@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