Support to provide emulator build target for remote goldfish instance

Insert emulator build target into GCE metadata for fetch_cvd to download
emulator images.

Bug: 235388356
Test: acloud-dev create --avd-type goldfish --build-target \
sdk_gphone_x86_64-userdebug --branch git_master

Change-Id: Ie25c75e40de53ad4e13ec4ab49f7cf46ed5f32c6
diff --git a/internal/lib/goldfish_compute_client.py b/internal/lib/goldfish_compute_client.py
index 33de884..9ae7922 100644
--- a/internal/lib/goldfish_compute_client.py
+++ b/internal/lib/goldfish_compute_client.py
@@ -159,6 +159,7 @@
                        kernel_build_target=None,
                        emulator_branch=None,
                        emulator_build_id=None,
+                       emulator_build_target=None,
                        blank_data_disk_size_gb=None,
                        gpu=None,
                        avd_spec=None,
@@ -180,6 +181,7 @@
             kernel_build_target: kernel target, e.g. "kernel_x86_64"
             emulator_branch: String, emulator branch name, e.g."aosp-emu-master-dev"
             emulator_build_id: String, emulator build id, a string, e.g. "2263051", "P2804227"
+            emulator_build_target: String, emulator build target.
             blank_data_disk_size_gb: Integer, size of the blank data disk in GB.
             gpu: String, GPU that should be attached to the instance, or None of no
                  acceleration is needed. e.g. "nvidia-tesla-k80"
@@ -220,6 +222,8 @@
             metadata[
                 "cvd_01_fetch_emulator_bid"] = "{branch}/{build_id}".format(
                     branch=emulator_branch, build_id=emulator_build_id)
+        if emulator_build_target:
+            metadata["cvd_01_fetch_emulator_build_target"] = emulator_build_target
         if launch_args:
             metadata["launch_args"] = launch_args
         metadata["cvd_01_launch"] = "1"
diff --git a/internal/lib/goldfish_compute_client_test.py b/internal/lib/goldfish_compute_client_test.py
index e0ab45d..02f649a 100644
--- a/internal/lib/goldfish_compute_client_test.py
+++ b/internal/lib/goldfish_compute_client_test.py
@@ -60,6 +60,7 @@
     KERNEL_BUILD_ARTIFACT = "bzImage"
     EMULATOR_BRANCH = "aosp-emu-master-dev"
     EMULATOR_BUILD_ID = "1234567"
+    EMULATOR_BUILD_TARGET = "emulator-linux_x64_nolocationui"
     DPI = 160
     X_RES = 720
     Y_RES = 1280
@@ -162,6 +163,7 @@
                 "{branch}/{build_id}".format(
                     branch=self.EMULATOR_BRANCH,
                     build_id=self.EMULATOR_BUILD_ID),
+            "cvd_01_fetch_emulator_build_target": self.EMULATOR_BUILD_TARGET,
             "cvd_01_launch": "1",
             "cvd_01_dpi": str(self.DPI),
             "cvd_01_x_res": str(self.X_RES),
@@ -178,7 +180,9 @@
             self.KERNEL_BUILD_ID,
             self.KERNEL_BUILD_TARGET,
             self.EMULATOR_BRANCH,
-            self.EMULATOR_BUILD_ID, self.EXTRA_DATA_DISK_SIZE_GB, self.GPU,
+            self.EMULATOR_BUILD_ID,
+            self.EMULATOR_BUILD_TARGET,
+            self.EXTRA_DATA_DISK_SIZE_GB, self.GPU,
             extra_scopes=self.EXTRA_SCOPES,
             tags=self.TAGS,
             launch_args=self.LAUNCH_ARGS)
@@ -218,6 +222,7 @@
                 "{branch}/{build_id}".format(
                     branch=self.EMULATOR_BRANCH,
                     build_id=self.EMULATOR_BUILD_ID),
+            "cvd_01_fetch_emulator_build_target": self.EMULATOR_BUILD_TARGET,
             "cvd_01_launch": "1",
             "display":
                 "{x}x{y} ({dpi})".format(
@@ -246,16 +251,12 @@
 
         self.goldfish_compute_client.CreateInstance(
             self.INSTANCE, self.IMAGE, self.IMAGE_PROJECT, self.TARGET,
-            self.BRANCH, self.BUILD_ID,
-            self.KERNEL_BRANCH,
-            self.KERNEL_BUILD_ID,
-            self.KERNEL_BUILD_TARGET,
-            self.EMULATOR_BRANCH,
-            self.EMULATOR_BUILD_ID, self.EXTRA_DATA_DISK_SIZE_GB, self.GPU,
-            avd_spec=mock_avd_spec,
-            extra_scopes=self.EXTRA_SCOPES,
-            tags=self.TAGS,
-            launch_args=self.LAUNCH_ARGS)
+            self.BRANCH, self.BUILD_ID, self.KERNEL_BRANCH,
+            self.KERNEL_BUILD_ID, self.KERNEL_BUILD_TARGET,
+            self.EMULATOR_BRANCH, self.EMULATOR_BUILD_ID,
+            self.EMULATOR_BUILD_TARGET, self.EXTRA_DATA_DISK_SIZE_GB, self.GPU,
+            avd_spec=mock_avd_spec, extra_scopes=self.EXTRA_SCOPES,
+            tags=self.TAGS, launch_args=self.LAUNCH_ARGS)
 
         self._mock_create_instance.assert_called_with(
             self.goldfish_compute_client,
diff --git a/public/actions/create_goldfish_action.py b/public/actions/create_goldfish_action.py
index 069b9d9..9210cce 100644
--- a/public/actions/create_goldfish_action.py
+++ b/public/actions/create_goldfish_action.py
@@ -159,6 +159,7 @@
             build_id=self.build_info.build_id,
             emulator_branch=self.emulator_build_info.branch,
             emulator_build_id=self.emulator_build_info.build_id,
+            emulator_build_target=self.emulator_build_info.build_target,
             kernel_branch=self.kernel_build_info.branch,
             kernel_build_id=self.kernel_build_info.build_id,
             kernel_build_target=self.kernel_build_info.build_target,
diff --git a/public/actions/create_goldfish_action_test.py b/public/actions/create_goldfish_action_test.py
index dbc47b5..7256231 100644
--- a/public/actions/create_goldfish_action_test.py
+++ b/public/actions/create_goldfish_action_test.py
@@ -144,6 +144,7 @@
             build_id=self.BUILD_ID,
             emulator_branch=self.EMULATOR_BRANCH,
             emulator_build_id=self.EMULATOR_BUILD_ID,
+            emulator_build_target=self.EMULATOR_BUILD_TARGET,
             kernel_branch=self.KERNEL_BRANCH,
             kernel_build_id=self.KERNEL_BUILD_ID,
             kernel_build_target=self.KERNEL_BUILD_TARGET,
@@ -201,6 +202,7 @@
             build_id=self.BUILD_ID,
             emulator_branch=self.EMULATOR_BRANCH,
             emulator_build_id=self.EMULATOR_BUILD_ID,
+            emulator_build_target=self.EMULATOR_BUILD_TARGET,
             kernel_branch=self.KERNEL_BRANCH,
             kernel_build_id=self.KERNEL_BUILD_ID,
             kernel_build_target=self.KERNEL_BUILD_TARGET,
@@ -266,6 +268,7 @@
             build_id=self.BUILD_ID,
             emulator_branch=self.EMULATOR_BRANCH,
             emulator_build_id=self.EMULATOR_BUILD_ID,
+            emulator_build_target=self.EMULATOR_BUILD_TARGET,
             kernel_branch=self.KERNEL_BRANCH,
             kernel_build_id=self.KERNEL_BUILD_ID,
             kernel_build_target=self.KERNEL_BUILD_TARGET,
@@ -321,6 +324,7 @@
             build_id=self.BUILD_ID,
             emulator_branch=self.EMULATOR_BRANCH,
             emulator_build_id=self.EMULATOR_BUILD_ID,
+            emulator_build_target=self.EMULATOR_BUILD_TARGET,
             kernel_branch=self.KERNEL_BRANCH,
             kernel_build_id=self.KERNEL_BUILD_ID,
             kernel_build_target=self.KERNEL_BUILD_TARGET,
@@ -379,6 +383,7 @@
             build_id=self.BUILD_ID,
             emulator_branch=self.EMULATOR_BRANCH,
             emulator_build_id=self.EMULATOR_BUILD_ID,
+            emulator_build_target=self.EMULATOR_BUILD_TARGET,
             kernel_branch=self.KERNEL_BRANCH,
             kernel_build_id=self.KERNEL_BUILD_ID,
             kernel_build_target=self.KERNEL_BUILD_TARGET,
@@ -434,6 +439,7 @@
             build_id=self.BUILD_ID,
             emulator_branch=self.EMULATOR_BRANCH,
             emulator_build_id=self.EMULATOR_BUILD_ID,
+            emulator_build_target=self.EMULATOR_BUILD_TARGET,
             kernel_branch=self.KERNEL_BRANCH,
             kernel_build_id=self.KERNEL_BUILD_ID,
             kernel_build_target=self.KERNEL_BUILD_TARGET,