Build API TestService: Adding a new service container

Note: we do not want this failure to break builds, so even if it fails,
we will report success, just w/ no container info.

BUG=b:228645277
TEST=cq

Cq-Depend: chromium:3587331
Change-Id: Ic4ac5684d3bd78dc4e7f034c385e6efe83b281e7
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/3584349
Tested-by: Derek Beckett <dbeckett@chromium.org>
Auto-Submit: Derek Beckett <dbeckett@chromium.org>
Reviewed-by: Azizur Rahman <azrahman@google.com>
Commit-Queue: Azizur Rahman <azrahman@google.com>
diff --git a/api/controller/test.py b/api/controller/test.py
index a5f2e99..e7b7d37 100644
--- a/api/controller/test.py
+++ b/api/controller/test.py
@@ -172,6 +172,11 @@
             TEST_SERVICE_DIR,
             'plan/docker/build-dockerimage.sh',
         ),
+    'cros-test-cloud':
+        os.path.join(
+            PLATFORM_DEV_DIR,
+            'test/container/utils/cloudbuild-dockerimage.py'
+        ),
 }
 
 
@@ -269,7 +274,10 @@
 
       cmd += ['--tags', tags]
       cmd += ['--output', output_path]
-      cmd += labels
+
+      # Labels aren't support yet in cloudbuild script.
+      if human_name != 'cros-test-cloud':
+        cmd += labels
 
       result = test_pb2.TestServiceContainerBuildResult()
       result.name = human_name
@@ -288,11 +296,17 @@
             )
         )
       else:
-        result.failure.CopyFrom(
-            test_pb2.TestServiceContainerBuildResult.Failure(
-                error_message=cmd_result.stdout
-            )
-        )
+        # Do not fail on cros-test-cloud as it is experimental.
+        if human_name == 'cros-test-cloud':
+          result.success.CopyFrom(
+              test_pb2.TestServiceContainerBuildResult.Success()
+          )
+        else:
+          result.failure.CopyFrom(
+              test_pb2.TestServiceContainerBuildResult.Failure(
+                  error_message=cmd_result.stdout
+              )
+          )
 
       output_proto.results.append(result)