Add SignerTest to BuildAPI's ImageService.

BUG=chromium:990487
TEST=manual, run_tests

Change-Id: I17d999992ee306ec1ae2bbcebf5daca43dc1f068
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/1737143
Reviewed-by: Alex Klein <saklein@chromium.org>
Tested-by: Michael Mortensen <mmortensen@google.com>
Commit-Queue: Michael Mortensen <mmortensen@google.com>
diff --git a/api/controller/image.py b/api/controller/image.py
index 97b7e8a..9099e02 100644
--- a/api/controller/image.py
+++ b/api/controller/image.py
@@ -161,6 +161,25 @@
     new_image.build_target.name = board
 
 
+@validate.require('build_target.name')
+@validate.exists('image.path')
+def SignerTest(input_proto, output_proto):
+  """Run image tests.
+
+  Args:
+    input_proto (image_pb2.ImageTestRequest): The input message.
+    output_proto (image_pb2.ImageTestResult): The output message.
+  """
+  board = input_proto.build_target.name
+  image_path = input_proto.image.path
+
+  result = image_lib.SecurityTest(board=board, image=image_path)
+  output_proto.success = result
+  if result:
+    return controller.RETURN_CODE_SUCCESS
+  else:
+    return controller.RETURN_CODE_COMPLETED_UNSUCCESSFULLY
+
 @validate.require('build_target.name', 'result.directory')
 @validate.exists('image.path')
 def Test(input_proto, output_proto):