GceManager
public
class
GceManager
extends Object
java.lang.Object | |
↳ | com.android.tradefed.device.cloud.GceManager |
管理 GCE 呼叫的輔助程式,用於啟動/停止及收集 GCE 記錄。
摘要
欄位 | |
---|---|
public
static
final
String |
GCE_HOSTNAME_KEY
|
public
static
final
String |
GCE_INSTANCE_CLEANED_KEY
|
public
static
final
String |
GCE_INSTANCE_NAME_KEY
|
public
static
final
String |
GCE_IP_PRECONFIGURED_KEY
|
公用建構函式 | |
---|---|
GceManager(DeviceDescriptor deviceDesc, TestDeviceOptions deviceOptions, IBuildInfo buildInfo)
建構函式 |
|
GceManager(DeviceDescriptor deviceDesc, TestDeviceOptions deviceOptions, IBuildInfo buildInfo,
This constructor is deprecated. 請使用其他建構函式,我們會暫時保留這個函式,以便回溯相容性。 |
|
GceManager(DeviceDescriptor deviceDesc, TestDeviceOptions deviceOptions, IBuildInfo buildInfo, String gceInstanceName, String gceHost)
Ctor,可以提供直接使用的 GCE 執行個體名稱。 |
公用方法 | |
---|---|
static
boolean
|
AcloudShutdown(TestDeviceOptions options, IRunUtil runUtil, String instanceName, String hostname, boolean isIpPreconfigured)
實際執行 Acloud 來關閉虛擬裝置。 |
void
|
cleanUp()
|
static
File
|
getBugreportzWithSsh(GceAvdInfo gceAvd, TestDeviceOptions options, IRunUtil runUtil)
使用 ssh 從裝置取得 bugreportz,以避免任何 ADB 連線潛在問題。 |
static
String
|
getInstanceSerialLog(GceAvdInfo infos, File avdConfigFile, File jsonKeyFile, IRunUtil runUtil)
讀取 Gce Avd 執行個體序列記錄檔的目前內容。 |
static
File
|
getNestedDeviceSshBugreportz(GceAvdInfo gceAvd, TestDeviceOptions options, IRunUtil runUtil)
透過 SSH 取得巢狀執行個體的錯誤報告。 |
static
void
|
logAndDeleteFile(File tempFile, String dataName, ITestLogger logger)
|
static
void
|
logDirectory(File remoteDirectory, String baseName, ITestLogger logger, LogDataType type)
|
static
boolean
|
logNestedRemoteFile(ITestLogger logger, GceAvdInfo gceAvd, TestDeviceOptions options, IRunUtil runUtil, String remoteFilePath, LogDataType type)
從巢狀例項擷取遠端檔案並記錄。 |
static
boolean
|
logNestedRemoteFile(ITestLogger logger, GceAvdInfo gceAvd, TestDeviceOptions options, IRunUtil runUtil, String remoteFilePath, LogDataType type, String baseName)
從巢狀例項擷取遠端檔案並記錄。 |
void
|
logSerialOutput(GceAvdInfo infos, ITestLogger logger)
記錄 |
static
CommandResult
|
remoteSshCommandExecution(GceAvdInfo gceAvd, TestDeviceOptions options, IRunUtil runUtil, long timeoutMs, String... command)
在執行個體上透過 SSH 執行遠端指令。 |
boolean
|
shutdownGce()
關閉與 |
GceAvdInfo
|
startGce(String ipDevice, String user, Integer offset, MultiMap<String, String> attributes, ITestLogger logger)
嘗試使用 Acloud 或 Oxygen 啟動 gce 執行個體。 |
GceAvdInfo
|
startGce()
|
GceAvdInfo
|
startGce(String ipDevice, MultiMap<String, String> attributes)
嘗試啟動 gce 執行個體。 |
GceAvdInfo
|
startGce(String ipDevice, String user, Integer offset, MultiMap<String, String> attributes)
嘗試使用 Acloud 或 Oxygen 啟動 gce 執行個體。 |
|
startMultiDevicesGce(
這個方法已淘汰。 主分支更新後請移除此行。 |
|
startMultiDevicesGce(
嘗試使用 Oxygen 啟動多裝置 gce 執行個體。 |
受保護的方法 | |
---|---|
static
|
buildShutdownCommand(File config, TestDeviceOptions options, String instanceName, String hostname, boolean isIpPreconfigured)
|
String
|
extractInstanceName(String bootupLogs)
從 gce 開機記錄中擷取執行個體名稱。 |
欄位
GCE_HOSTNAME_KEY
public static final String GCE_HOSTNAME_KEY
GCE_INSTANCE_CLEANED_KEY
public static final String GCE_INSTANCE_CLEANED_KEY
GCE_INSTANCE_NAME_KEY
public static final String GCE_INSTANCE_NAME_KEY
GCE_IP_PRECONFIGURED_KEY
public static final String GCE_IP_PRECONFIGURED_KEY
公用建構函式
GceManager
public GceManager (DeviceDescriptor deviceDesc, TestDeviceOptions deviceOptions, IBuildInfo buildInfo)
建構函式
參數 | |
---|---|
deviceDesc |
DeviceDescriptor :與 GCE 裝置相關聯的 DeviceDescriptor 。 |
deviceOptions |
TestDeviceOptions :與裝置相關聯的 TestDeviceOptions 。 |
buildInfo |
IBuildInfo :說明要啟動的 gce 建構作業的 IBuildInfo 。 |
GceManager
public GceManager (DeviceDescriptor deviceDesc, TestDeviceOptions deviceOptions, IBuildInfo buildInfo,testResourceBuildInfos)
This constructor is deprecated.
請使用其他建構函式,我們會暫時保留這個函式以維持回溯相容性。
參數 | |
---|---|
deviceDesc |
DeviceDescriptor |
deviceOptions |
TestDeviceOptions |
buildInfo |
IBuildInfo |
testResourceBuildInfos |
|
GceManager
public GceManager (DeviceDescriptor deviceDesc, TestDeviceOptions deviceOptions, IBuildInfo buildInfo, String gceInstanceName, String gceHost)
建構函式,可用來提供要直接使用的 GCE 執行個體名稱。
參數 | |
---|---|
deviceDesc |
DeviceDescriptor :將與 GCE 裝置建立關聯的 DeviceDescriptor 。 |
deviceOptions |
TestDeviceOptions :與裝置相關聯的 TestDeviceOptions |
buildInfo |
IBuildInfo :說明要啟動的 gce 建構作業的 IBuildInfo 。 |
gceInstanceName |
String :要使用的執行個體名稱。 |
gceHost |
String :要使用的執行個體主機名稱或 IP。 |
公用方法
AcloudShutdown
public static boolean AcloudShutdown (TestDeviceOptions options, IRunUtil runUtil, String instanceName, String hostname, boolean isIpPreconfigured)
實際的 Acloud 執行程序,用於關閉虛擬裝置。
參數 | |
---|---|
options |
TestDeviceOptions :Acloud 選項的 TestDeviceOptions |
runUtil |
IRunUtil :執行 Acloud 的 IRunUtil |
instanceName |
String :要關閉的執行個體。 |
hostname |
String :執行個體的主機名稱,僅適用於 Oxygen cuttlefish。 |
isIpPreconfigured |
boolean :AVD 是在具有預先設定 IP 的遠端裝置上建立 |
傳回 | |
---|---|
boolean |
成功時傳回 True |
清理
public void cleanUp ()
getBugreportzWithSsh
public static File getBugreportzWithSsh (GceAvdInfo gceAvd, TestDeviceOptions options, IRunUtil runUtil)
請使用 ssh 從裝置取得 bugreportz,以免發生任何 ADB 連線問題。
參數 | |
---|---|
gceAvd |
GceAvdInfo :描述裝置的 GceAvdInfo 。 |
options |
TestDeviceOptions :一個 TestDeviceOptions ,描述要用於 GCE 裝置的裝置選項。 |
runUtil |
IRunUtil :用於執行指令的 IRunUtil 。 |
傳回 | |
---|---|
File |
指向 ZIP 錯誤報告的檔案,如果發生問題,則為空值。 |
擲回 | |
---|---|
|
IOException |
getInstanceSerialLog
public static String getInstanceSerialLog (GceAvdInfo infos, File avdConfigFile, File jsonKeyFile, IRunUtil runUtil)
讀取 Gce Avd 執行個體序列記錄的目前內容。
參數 | |
---|---|
infos |
GceAvdInfo :描述執行個體的 GceAvdInfo 。 |
avdConfigFile |
File :avd 設定檔 |
jsonKeyFile |
File :服務帳戶 JSON 金鑰檔案。 |
runUtil |
IRunUtil :用於執行指令的 IRunUtil 。 |
傳回 | |
---|---|
String |
序列記錄輸出內容,如果發生錯誤則為空值。 |
取得 NestedDeviceSshBugreportz
public static File getNestedDeviceSshBugreportz (GceAvdInfo gceAvd, TestDeviceOptions options, IRunUtil runUtil)
透過 SSH 取得巢狀執行個體的錯誤報告。這項作業需要在巢狀虛擬執行個體中要求 ADB。
參數 | |
---|---|
gceAvd |
GceAvdInfo :描述裝置的 GceAvdInfo 。 |
options |
TestDeviceOptions :TestDeviceOptions ,說明要用於 GCE 裝置的裝置選項。 |
runUtil |
IRunUtil :用於執行指令的 IRunUtil 。 |
傳回 | |
---|---|
File |
指向 ZIP 錯誤報告的檔案,如果發生問題,則為空值。 |
擲回 | |
---|---|
|
IOException |
logAndDeleteFile
public static void logAndDeleteFile (File tempFile, String dataName, ITestLogger logger)
參數 | |
---|---|
tempFile |
File |
dataName |
String |
logger |
ITestLogger |
logDirectory
public static void logDirectory (File remoteDirectory, String baseName, ITestLogger logger, LogDataType type)
參數 | |
---|---|
remoteDirectory |
File |
baseName |
String |
logger |
ITestLogger |
type |
LogDataType |
logNestedRemoteFile
public static boolean logNestedRemoteFile (ITestLogger logger, GceAvdInfo gceAvd, TestDeviceOptions options, IRunUtil runUtil, String remoteFilePath, LogDataType type)
從巢狀執行個體擷取遠端檔案並加以記錄。
參數 | |
---|---|
logger |
ITestLogger :用於記錄檔案的 ITestLogger 。 |
gceAvd |
GceAvdInfo :描述裝置的 GceAvdInfo 。 |
options |
TestDeviceOptions :一個 TestDeviceOptions ,描述要用於 GCE 裝置的裝置選項。 |
runUtil |
IRunUtil :用於執行指令的 IRunUtil 。 |
remoteFilePath |
String :檔案的遠端路徑。 |
type |
LogDataType :記錄檔案的 LogDataType 。 |
傳回 | |
---|---|
boolean |
檢查是否成功記錄檔案 |
logNestedRemoteFile
public static boolean logNestedRemoteFile (ITestLogger logger, GceAvdInfo gceAvd, TestDeviceOptions options, IRunUtil runUtil, String remoteFilePath, LogDataType type, String baseName)
從巢狀執行個體擷取遠端檔案並加以記錄。
參數 | |
---|---|
logger |
ITestLogger :記錄檔案的 ITestLogger 。 |
gceAvd |
GceAvdInfo :描述裝置的 GceAvdInfo 。 |
options |
TestDeviceOptions :一個 TestDeviceOptions ,描述要用於 GCE 裝置的裝置選項。 |
runUtil |
IRunUtil :用於執行指令的 IRunUtil 。 |
remoteFilePath |
String :檔案的遠端路徑。 |
type |
LogDataType :記錄檔案的 LogDataType 。 |
baseName |
String :用於記錄檔案的基本名稱。如果為空值,系統會使用實際的檔案名稱。 |
傳回 | |
---|---|
boolean |
是否已成功記錄檔案。 |
logSerialOutput
public void logSerialOutput (GceAvdInfo infos, ITestLogger logger)
記錄 GceAvdInfo
所描述裝置的序列輸出內容。
參數 | |
---|---|
infos |
GceAvdInfo :描述執行個體的 GceAvdInfo 。 |
logger |
ITestLogger :記錄序列記錄的 ITestLogger 。 |
remoteSshCommandExecution
public static CommandResult remoteSshCommandExecution (GceAvdInfo gceAvd, TestDeviceOptions options, IRunUtil runUtil, long timeoutMs, String... command)
在執行個體上透過 SSH 執行遠端指令。
參數 | |
---|---|
gceAvd |
GceAvdInfo :描述裝置的 GceAvdInfo 。 |
options |
TestDeviceOptions :TestDeviceOptions ,說明要用於 GCE 裝置的裝置選項。 |
runUtil |
IRunUtil :用於執行指令的 IRunUtil 。 |
timeoutMs |
long :指令的逾時時間,以毫秒為單位。0 表示沒有逾時時間。 |
command |
String :要執行的遠端指令。 |
傳回 | |
---|---|
CommandResult |
CommandResult ,其中包含執行結果。 |
關機
public boolean shutdownGce ()
關閉與 startGce()
相關聯的 GCE 執行個體。
傳回 | |
---|---|
boolean |
如果 gce 因非阻塞而要求關閉,則會傳回 true。 |
startGce
public GceAvdInfo startGce (String ipDevice, String user, Integer offset, MultiMap<String, String> attributes, ITestLogger logger)
嘗試透過 Acloud 或 Oxygen 啟動 gce 執行個體。
參數 | |
---|---|
ipDevice |
String :執行 AVD 的 GCE 執行個體初始 IP,如果不適用,則為 null |
user |
String :AVD 的執行中主機使用者,如果不適用,則為 null |
offset |
Integer :主機中 AVD 的裝置數量偏移量,如果不適用,則為 null |
attributes |
MultiMap :與目前叫用相關聯的屬性,用於將適用的資訊傳遞至 GCE 執行個體,以便新增為 VM 中繼資料 |
logger |
ITestLogger :用來記錄裝置啟動記錄的 ITestLogger 。 |
傳回 | |
---|---|
GceAvdInfo |
描述 GCE 執行個體的 GceAvdInfo 。可能是 BOOT_FAIL 例項。 |
擲回 | |
---|---|
|
com.android.tradefed.targetprep.TargetSetupError |
TargetSetupError |
startGce
public GceAvdInfo startGce (String ipDevice, MultiMap<String, String> attributes)
嘗試啟動 gce 執行個體。
參數 | |
---|---|
ipDevice |
String :用於執行 AVD 的 GCE 執行個體的初始 IP,null (如適用) |
attributes |
MultiMap :與目前叫用相關聯的屬性,用於將適用的資訊傳遞至 GCE 執行個體,以便新增為 VM 中繼資料 |
傳回 | |
---|---|
GceAvdInfo |
描述 GCE 執行個體的 GceAvdInfo 。可能是 BOOT_FAIL 例項。 |
擲回 | |
---|---|
|
com.android.tradefed.targetprep.TargetSetupError |
TargetSetupError |
startGce
public GceAvdInfo startGce (String ipDevice, String user, Integer offset, MultiMap<String, String> attributes)
嘗試透過 Acloud 或 Oxygen 啟動 gce 執行個體。
參數 | |
---|---|
ipDevice |
String :執行 AVD 的 GCE 執行個體初始 IP,如果不適用,則為 null |
user |
String :AVD 的執行中主機使用者,如果不適用,則為 null |
offset |
Integer :主機中 AVD 的裝置數量偏移量,如果不適用,則為 null |
attributes |
MultiMap :與目前叫用相關聯的屬性,用來將適用資訊向下傳遞至要新增為 VM 中繼資料的 GCE 執行個體 |
傳回 | |
---|---|
GceAvdInfo |
描述 GCE 執行個體的 GceAvdInfo 。可能是 BOOT_FAIL 例項。 |
擲回 | |
---|---|
|
com.android.tradefed.targetprep.TargetSetupError |
TargetSetupError |
啟動 MultiDeviceGce
publicstartMultiDevicesGce ( buildInfos)
This method is deprecated.
主分支更新後,請移除此項目。
參數 | |
---|---|
buildInfos |
|
傳回 | |
---|---|
|
擲回 | |
---|---|
TargetSetupError |
startMultiDevicesGce
publicstartMultiDevicesGce ( buildInfos, MultiMap<String, String> attributes)
嘗試使用 Oxygen 啟動多裝置 gce 執行個體。
參數 | |
---|---|
buildInfos |
:ERROR(/List |
attributes |
MultiMap :與目前叫用相關聯的屬性 |
傳回 | |
---|---|
|
描述 GCE Avd 資訊的 ERROR(/List 。 |
擲回 | |
---|---|
TargetSetupError |
保護方法
buildShutdownCommand
protected staticbuildShutdownCommand (File config, TestDeviceOptions options, String instanceName, String hostname, boolean isIpPreconfigured)
參數 | |
---|---|
config |
File |
options |
TestDeviceOptions |
instanceName |
String |
hostname |
String |
isIpPreconfigured |
boolean |
傳回 | |
---|---|
|
extractInstanceName
protected String extractInstanceName (String bootupLogs)
從 gce 開機記錄檔中擷取執行個體名稱。搜尋「name」:「gce-
參數 | |
---|---|
bootupLogs |
String |
傳回 | |
---|---|
String |