管理器

public class GceManager
extends 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

公共構造函數

GceManager (DeviceDescriptor deviceDesc, TestDeviceOptions deviceOptions, IBuildInfo buildInfo)

科特

GceManager (DeviceDescriptor deviceDesc, TestDeviceOptions deviceOptions, IBuildInfo buildInfo, testResourceBuildInfos) GceManager (DeviceDescriptor deviceDesc, TestDeviceOptions deviceOptions, IBuildInfo buildInfo, testResourceBuildInfos)

此構造函數已棄用。使用其他構造函數,為了向後兼容,我們暫時保留它。

GceManager (DeviceDescriptor deviceDesc, TestDeviceOptions deviceOptions, IBuildInfo buildInfo, String gceInstanceName, String gceHost)

ctor,可用於提供 GCE 實例名稱以直接使用的變體。

公共方法

static boolean AcloudShutdown (TestDeviceOptions options, IRunUtil runUtil, String instanceName, String hostname)

實際運行 Acloud 以關閉虛擬設備。

void cleanUp ()
static File getBugreportzWithSsh ( GceAvdInfo gceAvd, TestDeviceOptions options, IRunUtil runUtil)

使用 ssh 從設備獲取錯誤報告以避免任何 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 logNestedRemoteFile (ITestLogger logger, GceAvdInfo gceAvd, TestDeviceOptions options, IRunUtil runUtil, String remoteFilePath, LogDataType type)

從嵌套實例中獲取遠程文件並記錄它。

static void logNestedRemoteFile (ITestLogger logger, GceAvdInfo gceAvd, TestDeviceOptions options, IRunUtil runUtil, String remoteFilePath, LogDataType type, String baseName)

從嵌套實例中獲取遠程文件並記錄它。

void logSerialOutput ( GceAvdInfo infos, ITestLogger logger)

記錄由所描述的設備的串行輸出GceAvdInfo

static CommandResult remoteSshCommandExecution ( GceAvdInfo gceAvd, TestDeviceOptions options, IRunUtil runUtil, long timeoutMs, String... command)

在實例上通過 ssh 執行遠程命令。

boolean shutdownGce ()

關閉與相關的GCE實例startGce()

GceAvdInfo startGce ()
GceAvdInfo startGce (String ipDevice, MultiMap<String, String> attributes)

嘗試啟動一個 gce 實例

受保護的方法

buildGceCmd (File reportFile, IBuildInfo b, String ipDevice, MultiMap<String, String> attributes)

構建並返回命令以啟動 GCE。

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

公共構造函數

管理器

public GceManager (DeviceDescriptor deviceDesc, 
                TestDeviceOptions deviceOptions, 
                IBuildInfo buildInfo)

科特

參數
deviceDesc DeviceDescriptor :該DeviceDescriptor將與GCE設備相關聯。

deviceOptions TestDeviceOptions :甲TestDeviceOptions與設備相關聯。

buildInfo IBuildInfo :一個IBuildInfo描述GCE構建啟動。

管理器

public GceManager (DeviceDescriptor deviceDesc, 
                TestDeviceOptions deviceOptions, 
                IBuildInfo buildInfo, 
                 testResourceBuildInfos)

此構造函數已棄用。
使用其他構造函數,為了向後兼容,我們暫時保留它。

參數
deviceDesc DeviceDescriptor

deviceOptions TestDeviceOptions

buildInfo IBuildInfo

testResourceBuildInfos

管理器

public GceManager (DeviceDescriptor deviceDesc, 
                TestDeviceOptions deviceOptions, 
                IBuildInfo buildInfo, 
                String gceInstanceName, 
                String gceHost)

ctor,可用於提供 GCE 實例名稱以直接使用的變體。

參數
deviceDesc DeviceDescriptor :該DeviceDescriptor將與GCE設備相關聯。

deviceOptions TestDeviceOptions :甲TestDeviceOptions與設備相關聯

buildInfo IBuildInfo :一個IBuildInfo描述GCE構建啟動。

gceInstanceName String :要使用的實例名。

gceHost String :主機名或實例使用的IP。

公共方法

雲關閉

public static boolean AcloudShutdown (TestDeviceOptions options, 
                IRunUtil runUtil, 
                String instanceName, 
                String hostname)

實際運行 Acloud 以關閉虛擬設備。

參數
options TestDeviceOptions :該TestDeviceOptions為Acloud選項

runUtil IRunUtil :本IRunUtil運行Acloud

instanceName String :實例關閉。

hostname String :實例的主機名,僅用於氧烏賊。

退貨
boolean如果成功則為真

清理

public void cleanUp ()

getBugreportzWithSsh

public static File getBugreportzWithSsh (GceAvdInfo gceAvd, 
                TestDeviceOptions options, 
                IRunUtil runUtil)

使用 ssh 從設備獲取錯誤報告以避免任何 adb 連接潛在問題。

參數
gceAvd GceAvdInfo :該GceAvdInfo描述的設備。

options TestDeviceOptions :一個TestDeviceOptions描述設備選項用於GCE設備。

runUtil IRunUtil :一個IRunUtil執行命令。

退貨
File指向 zip 錯誤報告的文件,如果出現問題,則為 null。

獲取實例串行日誌

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如果出現問題,串行日誌輸出或 null。

getNestedDeviceSshBugreportz

public static File getNestedDeviceSshBugreportz (GceAvdInfo gceAvd, 
                TestDeviceOptions options, 
                IRunUtil runUtil)

通過 ssh 獲取嵌套實例的錯誤報告。這需要在嵌套的虛擬實例中請求 adb。

參數
gceAvd GceAvdInfo :該GceAvdInfo描述的設備。

options TestDeviceOptions :一個TestDeviceOptions描述設備選項用於GCE設備。

runUtil IRunUtil :一個IRunUtil執行命令。

退貨
File指向 zip 錯誤報告的文件,如果出現問題,則為 null。

日誌嵌套遠程文件

public static void 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的文件中記錄的。

日誌嵌套遠程文件

public static void 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 :基本名稱用來登錄文件。如果為 null,將使用實際文件名。

日誌串行輸出

public void logSerialOutput (GceAvdInfo infos, 
                ITestLogger logger)

記錄由所描述的設備的串行輸出GceAvdInfo

參數
infos GceAvdInfo :該GceAvdInfo描述實例。

logger ITestLogger :本ITestLogger何處記錄串行日誌。

遠程Ssh命令執行

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包含執行的結果。

關閉Gce

public boolean shutdownGce ()

關閉與相關的GCE實例startGce()

退貨
boolean如果 gce 關閉請求為非阻塞,則返回 true。

啟動Gce

public GceAvdInfo startGce ()

退貨
GceAvdInfo

投擲
TargetSetupError

啟動Gce

public GceAvdInfo startGce (String ipDevice, 
                MultiMap<String, String> attributes)

嘗試啟動一個 gce 實例

參數
ipDevice String :在GCE實例的初始IP來運行AVD, null ,如果不適用

attributes MultiMap :屬性與當前調用,用於傳遞信息適用下降到GCE實例被添加為VM元數據相關聯

退貨
GceAvdInfo一個GceAvdInfo描述GCE實例。可能是 BOOT_FAIL 實例。

投擲
TargetSetupError

受保護的方法

buildGceCmd

protected  buildGceCmd (File reportFile, 
                IBuildInfo b, 
                String ipDevice, 
                MultiMap<String, String> attributes)

構建並返回命令以啟動 GCE。暴露用於測試。

參數
reportFile File

b IBuildInfo

ipDevice String

attributes MultiMap

退貨

提取實例名稱

protected String extractInstanceName (String bootupLogs)

從 gce 引導日誌中檢索實例名稱。搜索“名稱”:“gce- ' 模式來提取它的名稱。我們從日誌而不是結果文件中提取,因為在 gce 啟動失敗時,嘗試的實例名稱不會顯示在 json 中。

參數
bootupLogs String

退貨
String