Build API: Add validation decorators.
Simplify the easy proto validation tasks by providing decorators
that can handle the simple validation cases.
BUG=None
TEST=run_tests
Change-Id: Ib799d43c7d0dca5312a58771ff67b610e9ff4f2c
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/1669636
Reviewed-by: Alex Klein <saklein@chromium.org>
Tested-by: Alex Klein <saklein@chromium.org>
Commit-Queue: Alex Klein <saklein@chromium.org>
Auto-Submit: Alex Klein <saklein@chromium.org>
diff --git a/api/controller/android.py b/api/controller/android.py
index 4dc55b8..cdbb9aa 100644
--- a/api/controller/android.py
+++ b/api/controller/android.py
@@ -9,11 +9,11 @@
import os
+from chromite.api import validate
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 cros_build_lib
from chromite.lib import osutils
from chromite.lib import portage_util
@@ -24,6 +24,7 @@
'package.mask', 'androidpin')
+@validate.require('tracking_branch', 'package_name', 'android_build_branch')
def MarkStable(input_proto, output_proto):
"""Uprev Android, if able.
@@ -44,15 +45,6 @@
boards = input_proto.boards
buildroot = input_proto.buildroot
- if not tracking_branch:
- cros_build_lib.Die('Tracking_branch is required.')
-
- if not package_name:
- cros_build_lib.Die('Package_name is required.')
-
- if not android_build_branch:
- cros_build_lib.Die('Android_build_branch is required.')
-
# Assume success.
output_proto.status = android_pb2.MARK_STABLE_STATUS_SUCCESS
# TODO(crbug/904939): This should move to service/android.py and the port
@@ -79,6 +71,7 @@
else:
output_proto.status = android_pb2.MARK_STABLE_STATUS_EARLY_EXIT
+
def UnpinVersion(_input_proto, _output_proto):
"""Unpin the Android version.