acloud: Cherrypick cl/203969178

Bug: None
Test: ./run_tests.sh
Test: m acloud_test && acloud_test
Test: m acloud && acloud create_gf
Change-Id: I28e292f0406b631a20ce9fa95b5a51cd7822f59f
diff --git a/public/acloud_main.py b/public/acloud_main.py
index 196d404..1b0da84 100644
--- a/public/acloud_main.py
+++ b/public/acloud_main.py
@@ -310,14 +310,17 @@
             raise errors.CommandArgError(
                 "Must specify --build_id and --build_target at the same time.")
 
-    if parsed_args.which in [CMD_CREATE_CUTTLEFISH, CMD_CREATE_GOLDFISH]:
+    if parsed_args.which == CMD_CREATE_CUTTLEFISH:
         if not parsed_args.build_id or not parsed_args.build_target:
             raise errors.CommandArgError(
                 "Must specify --build_id and --build_target")
 
     if parsed_args.which == CMD_CREATE_GOLDFISH:
-        if not parsed_args.emulator_build_id:
-            raise errors.CommandArgError("Must specify --emulator_build_id")
+        if not parsed_args.emulator_build_id and not parsed_args.build_id:
+            raise errors.CommandArgError("Must specify either "
+                                         "--emulator_build_id or --build_id")
+        if not parsed_args.build_target:
+            raise errors.CommandArgError("Must specify --build_target")
 
     if parsed_args.which in [
             create_args.CMD_CREATE, CMD_CREATE_CUTTLEFISH, CMD_CREATE_GOLDFISH
@@ -414,7 +417,8 @@
             num=args.num,
             serial_log_file=args.serial_log_file,
             logcat_file=args.logcat_file,
-            autoconnect=args.autoconnect)
+            autoconnect=args.autoconnect,
+            branch=args.branch)
     elif args.which == CMD_DELETE:
         report = device_driver.DeleteAndroidVirtualDevices(
             cfg, args.instance_names)