Build API: Allow building VM images from the ImageService.Create endpoint.
BUG=chromium:961431
TEST=manual, run_tests
Change-Id: I03b9fb9c00728afc6d29b5dedc5580fd865858fe
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/1603406
Reviewed-by: Alex Klein <saklein@chromium.org>
Tested-by: Alex Klein <saklein@chromium.org>
diff --git a/api/controller/test.py b/api/controller/test.py
index bdc089f..f284617 100644
--- a/api/controller/test.py
+++ b/api/controller/test.py
@@ -13,8 +13,9 @@
import os
from chromite.api.controller import controller_util
-from chromite.cbuildbot import commands
from chromite.api.gen.chromite.api import test_pb2
+from chromite.api.gen.chromiumos import common_pb2
+from chromite.cbuildbot import commands
from chromite.lib import constants
from chromite.lib import cros_build_lib
from chromite.lib import failures_lib
@@ -141,9 +142,14 @@
cros_build_lib.Die('build_target is required')
build_target = input_proto.build_target
- if not input_proto.HasField('vm_image'):
- cros_build_lib.Die('vm_image is required')
vm_image = input_proto.vm_image
+ test_vm_image = input_proto.test_vm_image
+ if not vm_image.path and not test_vm_image.path:
+ cros_build_lib.Die('vm_image or test_vm_image is required.')
+ if test_vm_image.path:
+ if test_vm_image.type != common_pb2.TEST_VM:
+ cros_build_lib.Die('Must provide a test VM image.')
+ vm_image = test_vm_image
test_harness = input_proto.test_harness
if test_harness == test_pb2.VmTestRequest.UNSPECIFIED: