Configure Android build targets by package instead of branch

Restructure configs such that the list of targets and artifacts to copy
are keyed by Android packages instead of branches. This is required to
support having multiple packages pointing to the same branch.

This change also modifies chromite API AndroidService/GetLatestBuild
such that users can no longer query by Android branch.

BUG=b:255705023,b:255688351
TEST=run_tests
TEST=./api/contrib/call_scripts/android__get_latest_build
TEST=cros_mark_android_as_stable --android_package android-vm-rvc

Change-Id: Ide46a5f7abe2a10ef662ee73a9999af19536d363
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/3983393
Tested-by: Shao-Chuan Lee <shaochuan@chromium.org>
Reviewed-by: Kazuhiro Inaba <kinaba@chromium.org>
Commit-Queue: Shao-Chuan Lee <shaochuan@chromium.org>
Reviewed-by: Madeleine Hardt <hardtmad@google.com>
diff --git a/api/controller/android.py b/api/controller/android.py
index 603c312..5047ef9 100644
--- a/api/controller/android.py
+++ b/api/controller/android.py
@@ -41,14 +41,10 @@
 
 @faux.success(_GetLatestBuildResponse)
 @faux.empty_error
-@validate.require_any("android_build_branch", "android_package")
+@validate.require("android_package")
 @validate.validation_complete
 def GetLatestBuild(input_proto, output_proto, _config):
-    branch = (
-        input_proto.android_build_branch
-        or android.GetAndroidBranchForPackage(input_proto.android_package)
-    )
-    build_id, _ = android.GetLatestBuild(branch)
+    build_id, _ = android.GetLatestBuild(input_proto.android_package)
     output_proto.android_version = build_id
 
 
diff --git a/api/controller/android_unittest.py b/api/controller/android_unittest.py
index 0cac8e1..8c37306 100644
--- a/api/controller/android_unittest.py
+++ b/api/controller/android_unittest.py
@@ -25,17 +25,10 @@
     def setUp(self):
         self._mock = self.PatchObject(service_android, "GetLatestBuild")
         self._mock.return_value = ("7123456", {})
-        self._mock_branch_for_package = self.PatchObject(
-            service_android,
-            "GetAndroidBranchForPackage",
-            return_value="android-branch-for-package",
-        )
         self._output_proto = android_pb2.GetLatestBuildResponse()
 
-    def _GetRequest(self, android_build_branch=None, android_package=None):
+    def _GetRequest(self, android_package=None):
         req = android_pb2.GetLatestBuildRequest()
-        if android_build_branch is not None:
-            req.android_build_branch = android_build_branch
         if android_package is not None:
             req.android_package = android_package
         return req
@@ -55,38 +48,18 @@
         self._mock.assert_not_called()
         self.assertEqual(self._output_proto.android_version, "7123456")
 
-    def testFailsIfBranchAndPackageMissing(self):
-        """Fails if both android_build_branch and android_package are missing."""
+    def testFailsIfPackageMissing(self):
+        """Fails if android_package is missing."""
         req = self._GetRequest()
         with self.assertRaises(cros_build_lib.DieSystemExit):
             android.GetLatestBuild(req, self._output_proto, self.api_config)
         self._mock.assert_not_called()
 
-    def testBranchSpecified(self):
-        """Test calling with Android branch specified."""
-        req = self._GetRequest(android_build_branch="android-branch")
-        android.GetLatestBuild(req, self._output_proto, self.api_config)
-        self._mock.assert_called_once_with("android-branch")
-        self._mock_branch_for_package.assert_not_called()
-        self.assertEqual(self._output_proto.android_version, "7123456")
-
-    def testPackageSpecified(self):
-        """Test calling with Android package specified."""
+    def testSuccess(self):
+        """Test a successful call."""
         req = self._GetRequest(android_package="android-package")
         android.GetLatestBuild(req, self._output_proto, self.api_config)
-        self._mock.assert_called_once_with("android-branch-for-package")
-        self._mock_branch_for_package.assert_called_once_with("android-package")
-        self.assertEqual(self._output_proto.android_version, "7123456")
-
-    def testBranchAndPackageSpecified(self):
-        """Test calling with both Android branch and package specified."""
-        req = self._GetRequest(
-            android_build_branch="android-branch",
-            android_package="android-package",
-        )
-        android.GetLatestBuild(req, self._output_proto, self.api_config)
-        self._mock.assert_called_once_with("android-branch")
-        self._mock_branch_for_package.assert_not_called()
+        self._mock.assert_called_once_with("android-package")
         self.assertEqual(self._output_proto.android_version, "7123456")