CP cl/247518556
Bug: 123894473
Test: atest acloud_test --host
Change-Id: If667d3de04fdb1a5a53e3ceacb0acf6b2792a628
diff --git a/public/acloud_main.py b/public/acloud_main.py
index 83a2573..c30837f 100644
--- a/public/acloud_main.py
+++ b/public/acloud_main.py
@@ -242,6 +242,24 @@
required=False,
default=None,
help="Tags to be set on to the created instance. e.g. https-server.")
+ create_gf_parser.add_argument(
+ "--kernel_build_id",
+ type=str,
+ dest="kernel_build_id",
+ help="Android kernel build id, e.g. 4586590. This is to test a new"
+ " kernel build with a particular Android build (--build_id). If neither"
+ " kernel_branch nor kernel_build_id are specified, the kernel that's"
+ " bundled with the Android build would be used.")
+ create_gf_parser.add_argument(
+ "--kernel_branch",
+ type=str,
+ dest="kernel_branch",
+ help="Android kernel build branch name, "
+ "e.g. kernel-common-android-4.14. This is to test a new kernel build "
+ "with a particular Android build (--build_id). If specified without "
+ "specifying kernel_build_id, the last green build in the branch will "
+ "be used. If neither kernel_branch nor kernel_build_id are specified, "
+ "the kernel that's bundled with the Android build would be used.")
create_args.AddCommonCreateArgs(create_gf_parser)
subparser_list.append(create_gf_parser)
@@ -422,6 +440,8 @@
emulator_build_id=args.emulator_build_id,
branch=args.branch,
emulator_branch=args.emulator_branch,
+ kernel_build_id=args.kernel_build_id,
+ kernel_branch=args.kernel_branch,
gpu=args.gpu,
num=args.num,
serial_log_file=args.serial_log_file,
diff --git a/public/actions/create_goldfish_action.py b/public/actions/create_goldfish_action.py
index d24cf87..b2591ea 100644
--- a/public/actions/create_goldfish_action.py
+++ b/public/actions/create_goldfish_action.py
@@ -64,6 +64,8 @@
build_id,
emulator_build_target,
emulator_build_id,
+ kernel_build_id=None,
+ kernel_branch=None,
gpu=None,
avd_spec=None,
tags=None,
@@ -109,6 +111,8 @@
build_target, build_id, branch)
self.emulator_build_info = self._build_client.GetBuildInfo(
emulator_build_target, emulator_build_id, emulator_branch)
+ self.kernel_build_info = self._build_client.GetBuildInfo(
+ cfg.kernel_build_target, kernel_build_id, kernel_branch)
def GetBuildInfoDict(self):
"""Get build info dictionary.
@@ -123,6 +127,12 @@
{"emulator_%s" % key: val
for key, val in self.emulator_build_info.__dict__.items() if val}
)
+
+ build_info_dict.update(
+ {"kernel_%s" % key: val
+ for key, val in self.kernel_build_info.__dict__.items() if val}
+ )
+
return build_info_dict
def CreateInstance(self):
@@ -146,6 +156,8 @@
build_id=self.build_info.build_id,
emulator_branch=self.emulator_build_info.branch,
emulator_build_id=self.emulator_build_info.gcs_bucket_build_id,
+ kernel_branch=self.kernel_build_info.branch,
+ kernel_build_id=self.kernel_build_info.build_id,
gpu=self._gpu,
blank_data_disk_size_gb=self._blank_data_disk_size_gb,
avd_spec=self._avd_spec,
@@ -210,12 +222,15 @@
return ParseBuildInfo(temp_filename)
+#pylint: disable=too-many-locals
def CreateDevices(avd_spec=None,
cfg=None,
build_target=None,
build_id=None,
emulator_build_id=None,
emulator_branch=None,
+ kernel_build_id=None,
+ kernel_branch=None,
gpu=None,
num=1,
serial_log_file=None,
@@ -235,6 +250,8 @@
emulator_build_id: String, emulator build id.
emulator_branch: String, Emulator branch name.
gpu: String, GPU to attach to the device or None. e.g. "nvidia-k80"
+ kernel_build_id: Kernel build id, a string.
+ kernel_branch: Kernel branch name, a string.
num: Integer, Number of devices to create.
serial_log_file: String, A path to a file where serial output should
be saved to.
@@ -295,17 +312,21 @@
"in %s" % _SYSIMAGE_INFO_FILENAME)
logger.info(
"Creating a goldfish device in project %s, build_target: %s, "
- "build_id: %s, emulator_bid: %s, GPU: %s, num: %s, "
+ "build_id: %s, emulator_bid: %s, kernel_build_id: %s, "
+ "kernel_branh: %s, GPU: %s, num: %s, "
"serial_log_file: %s, logcat_file: %s, "
"autoconnect: %s", cfg.project, build_target, build_id,
- emulator_build_id, gpu, num, serial_log_file, logcat_file, autoconnect)
+ emulator_build_id, kernel_build_id, kernel_branch, gpu, num,
+ serial_log_file, logcat_file, autoconnect)
device_factory = GoldfishDeviceFactory(cfg, build_target, build_id,
cfg.emulator_build_target,
emulator_build_id, gpu=gpu,
avd_spec=avd_spec, tags=tags,
branch=branch,
- emulator_branch=emulator_branch)
+ emulator_branch=emulator_branch,
+ kernel_build_id=kernel_build_id,
+ kernel_branch=kernel_branch)
return common_operations.CreateDevices("create_gf", cfg, device_factory,
num, constants.TYPE_GF,
diff --git a/public/actions/create_goldfish_action_test.py b/public/actions/create_goldfish_action_test.py
index dc6202a..d90c7f6 100644
--- a/public/actions/create_goldfish_action_test.py
+++ b/public/actions/create_goldfish_action_test.py
@@ -41,6 +41,9 @@
GPU = "nvidia-tesla-k80"
BRANCH = "fake-branch"
EMULATOR_BRANCH = "emu-fake-branch"
+ KERNEL_BRANCH = "fake-kernel-branch"
+ KERNEL_BUILD_ID = "54321"
+ KERNEL_BUILD_TARGET = "kernel"
GOLDFISH_HOST_IMAGE_NAME = "fake-stable-host-image-name"
GOLDFISH_HOST_IMAGE_PROJECT = "fake-stable-host-image-project"
EXTRA_DATA_DISK_GB = 4
@@ -109,7 +112,10 @@
self.BRANCH, self.BUILD_ID, self.BUILD_TARGET, self.BUILD_ID),
android_build_client.BuildInfo(
self.EMULATOR_BRANCH, self.EMULATOR_BUILD_ID,
- self.EMULATOR_BUILD_TARGET, self.EMULATOR_BUILD_ID)]
+ self.EMULATOR_BUILD_TARGET, self.EMULATOR_BUILD_ID),
+ android_build_client.BuildInfo(
+ self.KERNEL_BRANCH, self.KERNEL_BUILD_ID,
+ self.KERNEL_BUILD_TARGET, self.KERNEL_BUILD_ID)]
none_avd_spec = None
@@ -117,7 +123,7 @@
report = create_goldfish_action.CreateDevices(
none_avd_spec, cfg, build_target=self.BUILD_TARGET,
build_id=self.BUILD_ID, emulator_build_id=self.EMULATOR_BUILD_ID,
- gpu=self.GPU)
+ gpu=self.GPU, kernel_build_id=self.KERNEL_BUILD_ID)
# Verify
self.compute_client.CreateInstance.assert_called_with(
@@ -130,6 +136,8 @@
build_id=self.BUILD_ID,
emulator_branch=self.EMULATOR_BRANCH,
emulator_build_id=self.EMULATOR_BUILD_ID,
+ kernel_branch=self.KERNEL_BRANCH,
+ kernel_build_id=self.KERNEL_BUILD_ID,
gpu=self.GPU,
avd_spec=none_avd_spec,
extra_scopes=self.EXTRA_SCOPES,
@@ -148,6 +156,10 @@
"emulator_build_id": self.EMULATOR_BUILD_ID,
"emulator_build_target": self.EMULATOR_BUILD_TARGET,
"emulator_gcs_bucket_build_id": self.EMULATOR_BUILD_ID,
+ "kernel_branch": self.KERNEL_BRANCH,
+ "kernel_build_id": self.KERNEL_BUILD_ID,
+ "kernel_build_target": self.KERNEL_BUILD_TARGET,
+ "kernel_gcs_bucket_build_id": self.KERNEL_BUILD_ID,
},
],
})
@@ -165,7 +177,10 @@
self.BRANCH, self.BUILD_ID, self.BUILD_TARGET, self.BUILD_ID),
android_build_client.BuildInfo(
self.EMULATOR_BRANCH, self.EMULATOR_BUILD_ID,
- self.EMULATOR_BUILD_TARGET, self.EMULATOR_BUILD_ID)]
+ self.EMULATOR_BUILD_TARGET, self.EMULATOR_BUILD_ID),
+ android_build_client.BuildInfo(
+ self.KERNEL_BRANCH, self.KERNEL_BUILD_ID,
+ self.KERNEL_BUILD_TARGET, self.KERNEL_BUILD_ID)]
report = create_goldfish_action.CreateDevices(avd_spec=self.avd_spec)
# Verify
@@ -179,6 +194,8 @@
build_id=self.BUILD_ID,
emulator_branch=self.EMULATOR_BRANCH,
emulator_build_id=self.EMULATOR_BUILD_ID,
+ kernel_branch=self.KERNEL_BRANCH,
+ kernel_build_id=self.KERNEL_BUILD_ID,
gpu=self.GPU,
avd_spec=self.avd_spec,
extra_scopes=self.EXTRA_SCOPES,
@@ -203,7 +220,10 @@
self.BRANCH, self.BUILD_ID, self.BUILD_TARGET, self.BUILD_ID),
android_build_client.BuildInfo(
self.EMULATOR_BRANCH, self.EMULATOR_BUILD_ID,
- self.EMULATOR_BUILD_TARGET, self.EMULATOR_BUILD_ID)]
+ self.EMULATOR_BUILD_TARGET, self.EMULATOR_BUILD_ID),
+ android_build_client.BuildInfo(
+ self.KERNEL_BRANCH, self.KERNEL_BUILD_ID,
+ self.KERNEL_BUILD_TARGET, self.KERNEL_BUILD_ID)]
# Mock _FetchBuildIdFromFile method
self.Patch(
@@ -221,9 +241,8 @@
emulator_build_id=self.EMULATOR_BUILD_ID,
emulator_branch=None,
gpu=self.GPU,
- branch=None)
- # HACK HACK HACK
- # branch=self.BRANCH)
+ branch=None,
+ kernel_build_id=self.KERNEL_BUILD_ID)
# Verify
self.compute_client.CreateInstance.assert_called_with(
@@ -236,6 +255,8 @@
build_id=self.BUILD_ID,
emulator_branch=self.EMULATOR_BRANCH,
emulator_build_id=self.EMULATOR_BUILD_ID,
+ kernel_branch=self.KERNEL_BRANCH,
+ kernel_build_id=self.KERNEL_BUILD_ID,
gpu=self.GPU,
avd_spec=none_avd_spec,
extra_scopes=self.EXTRA_SCOPES,
@@ -253,6 +274,10 @@
"emulator_build_id": self.EMULATOR_BUILD_ID,
"emulator_build_target": self.EMULATOR_BUILD_TARGET,
"emulator_gcs_bucket_build_id": self.EMULATOR_BUILD_ID,
+ "kernel_branch": self.KERNEL_BRANCH,
+ "kernel_build_id": self.KERNEL_BUILD_ID,
+ "kernel_build_target": self.KERNEL_BUILD_TARGET,
+ "kernel_gcs_bucket_build_id": self.KERNEL_BUILD_ID
},],
})
self.assertEquals(report.command, "create_gf")
@@ -269,7 +294,10 @@
self.BRANCH, self.BUILD_ID, self.BUILD_TARGET, self.BUILD_ID),
android_build_client.BuildInfo(
self.EMULATOR_BRANCH, self.EMULATOR_BUILD_ID,
- self.EMULATOR_BUILD_TARGET, self.EMULATOR_BUILD_ID)]
+ self.EMULATOR_BUILD_TARGET, self.EMULATOR_BUILD_ID),
+ android_build_client.BuildInfo(
+ self.KERNEL_BRANCH, self.KERNEL_BUILD_ID,
+ self.KERNEL_BUILD_TARGET, self.KERNEL_BUILD_ID)]
report = create_goldfish_action.CreateDevices(avd_spec=self.avd_spec)
# Verify
@@ -283,6 +311,8 @@
build_id=self.BUILD_ID,
emulator_branch=self.EMULATOR_BRANCH,
emulator_build_id=self.EMULATOR_BUILD_ID,
+ kernel_branch=self.KERNEL_BRANCH,
+ kernel_build_id=self.KERNEL_BUILD_ID,
gpu=self.GPU,
avd_spec=self.avd_spec,
extra_scopes=self.EXTRA_SCOPES,
@@ -308,7 +338,10 @@
self.BRANCH, self.BUILD_ID, self.BUILD_TARGET, self.BUILD_ID),
android_build_client.BuildInfo(
self.EMULATOR_BRANCH, self.EMULATOR_BUILD_ID,
- self.EMULATOR_BUILD_TARGET, self.EMULATOR_BUILD_ID)]
+ self.EMULATOR_BUILD_TARGET, self.EMULATOR_BUILD_ID),
+ android_build_client.BuildInfo(
+ self.KERNEL_BRANCH, self.KERNEL_BUILD_ID,
+ self.KERNEL_BUILD_TARGET, self.KERNEL_BUILD_ID)]
# Mock _FetchBuildIdFromFile method
self.Patch(
@@ -334,6 +367,8 @@
build_id=self.BUILD_ID,
emulator_branch=self.EMULATOR_BRANCH,
emulator_build_id=self.EMULATOR_BUILD_ID,
+ kernel_branch=self.KERNEL_BRANCH,
+ kernel_build_id=self.KERNEL_BUILD_ID,
gpu=self.GPU,
avd_spec=none_avd_spec,
extra_scopes=self.EXTRA_SCOPES,
@@ -351,6 +386,10 @@
"emulator_build_id": self.EMULATOR_BUILD_ID,
"emulator_build_target": self.EMULATOR_BUILD_TARGET,
"emulator_gcs_bucket_build_id": self.EMULATOR_BUILD_ID,
+ "kernel_branch": self.KERNEL_BRANCH,
+ "kernel_build_id": self.KERNEL_BUILD_ID,
+ "kernel_build_target": self.KERNEL_BUILD_TARGET,
+ "kernel_gcs_bucket_build_id": self.KERNEL_BUILD_ID,
},],
})
self.assertEquals(report.command, "create_gf")
@@ -367,7 +406,10 @@
self.BRANCH, self.BUILD_ID, self.BUILD_TARGET, self.BUILD_ID),
android_build_client.BuildInfo(
self.EMULATOR_BRANCH, self.EMULATOR_BUILD_ID,
- self.EMULATOR_BUILD_TARGET, self.EMULATOR_BUILD_ID)]
+ self.EMULATOR_BUILD_TARGET, self.EMULATOR_BUILD_ID),
+ android_build_client.BuildInfo(
+ self.KERNEL_BRANCH, self.KERNEL_BUILD_ID,
+ self.KERNEL_BUILD_TARGET, self.KERNEL_BUILD_ID)]
report = create_goldfish_action.CreateDevices(avd_spec=self.avd_spec)
# Verify
@@ -381,6 +423,8 @@
build_id=self.BUILD_ID,
emulator_branch=self.EMULATOR_BRANCH,
emulator_build_id=self.EMULATOR_BUILD_ID,
+ kernel_branch=self.KERNEL_BRANCH,
+ kernel_build_id=self.KERNEL_BUILD_ID,
gpu=self.GPU,
avd_spec=self.avd_spec,
extra_scopes=self.EXTRA_SCOPES,