CommandScheduler

public class CommandScheduler
extends Object implements ICommandScheduler

java.lang.Object
com.android.tradefed.command.CommandScheduler


Um agendador para executar comandos TradeFederation em todos os dispositivos disponíveis.

Tentará priorizar a execução dos comandos com base na contagem total do tempo de execução. por exemplo, comandos de execução pouco frequentes ou rápidos serão priorizados em relação a comandos de execução longa.

Funciona para sempre em segundo plano até o desligamento.

Resumo

Construtores públicos

CommandScheduler ()

Cria um CommandScheduler .

Métodos públicos

Pair <Boolean, Integer> addCommand (String[] args)

Adiciona um comando ao agendador.

void addCommandFile (String cmdFilePath, extraArgs) addCommandFile (String cmdFilePath, extraArgs)

Adiciona todos os comandos de determinado arquivo ao agendador

void await ()

Aguarda que o agendador comece a ser executado, incluindo a espera pela conclusão da transferência do TF antigo, se aplicável.

static TradefedDelegator checkDelegation (String[] args)

Crie um delegador baseado na linha de comando para ver se precisamos delegar a execução.

static createReleaseMap ( IInvocationContext context, Throwable e)

Crie um mapa do estado dos dispositivos para que possam ser liberados adequadamente.

ISandbox createSandbox ()

Crie um ISandbox que a invocação usará para ser executada.

void displayCommandQueue (PrintWriter printWriter)

Gere informações detalhadas de depuração sobre o estado da fila de execução de comandos.

void displayCommandsInfo (PrintWriter printWriter, String regex)

Produza uma lista de comandos atuais.

void displayInvocationsInfo (PrintWriter printWriter)

Exibe uma lista de invocações atuais.

void dumpCommandsXml (PrintWriter printWriter, String regex)

Despeja o arquivo xml expandido para o comando com todos os valores Option especificados para todos os comandos atuais.

long execCommand ( ICommandScheduler.IScheduledInvocationListener listener, reservedDevices, String[] args) execCommand ( ICommandScheduler.IScheduledInvocationListener listener, reservedDevices, String[] args)

Execute o comando diretamente em dispositivos já alocados.

long execCommand ( IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, String[] args)

Aloca diretamente um dispositivo e executa um comando sem adicioná-lo à fila de comandos usando um IInvocationContext já existente.

long execCommand ( ICommandScheduler.IScheduledInvocationListener listener, String[] args)

Aloca diretamente um dispositivo e executa um comando sem adicioná-lo à fila de comandos.

CommandFileWatcher getCommandFileWatcher ()

Obtenha o CommandFileWatcher apropriado para este agendador

int getExecutingCommandCount ()

Retorna o número de comandos em estado de execução.

CommandScheduler.HostState getHostState ()
String getInvocationInfo (int invocationId)

Retorna as informações sobre uma invocação bu especificando o ID da invocação.

CommandRunner.ExitCode getLastInvocationExitCode ()

Retorne o código de erro da última invocação executada.

Throwable getLastInvocationThrowable ()

Retorne o Throwable da última invocação executada.

int getReadyCommandCount ()

Retorna o número de comandos em estado pronto na fila.

long getShutdownTimeout ()
boolean isDeviceInInvocationThread ( ITestDevice device)

Retornará verdadeiro se o dispositivo for usado por um thread de invocação ativo.

boolean isShuttingDown ()
void notifyFileChanged (File cmdFile, extraArgs) notifyFileChanged (File cmdFile, extraArgs)
void removeAllCommands ()

Remova todos os comandos do agendador

void run ()

O principal bloco de execução deste thread.

void setClearcutClient (ClearcutClient client)

Configurar o cliente para relatar dados de arreios

boolean shouldShutdownOnCmdfileError ()

Retorne verdadeiro se precisarmos desligar o agendador em caso de erros de comando

void shutdown (boolean notifyStop)

Tente encerrar normalmente o agendador de comando.

void shutdownHard (boolean killAdb)

Tente desligar à força o agendador de comandos.

void shutdownHard ()

Tente desligar à força o agendador de comandos.

void shutdownOnEmpty ()

Semelhante a shutdown() , mas em vez disso esperará que todos os comandos sejam executados antes de sair.

void start ()

Inicia o agendador, incluindo configuração de registro, inicialização do DeviceManager , etc.

boolean stopInvocation ( ITestInvocation invocation)

Pare uma chamada em execução.

boolean stopInvocation (int invocationId, String cause)

Pare uma invocação em execução especificando seu ID.

void stopScheduling ()

Para de agendar e aceitar novos testes, mas não para o Tradefed.

Métodos protegidos

void cleanUp ()

Fecha os logs e faz qualquer outra limpeza necessária antes de encerrarmos.

IConfiguration createConfiguration (String[] args)
IInvocationContext createInvocationContext ()
void dryRunCommandReporting ( ICommandScheduler.IScheduledInvocationListener handler, IConfiguration config)

Determina se um determinado comando é uma simulação.

long execCommand ( IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, reservedDevices, String[] args) execCommand ( IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, reservedDevices, String[] args)
IConfigurationFactory getConfigFactory ()

Método de fábrica para obter uma referência ao IConfigurationFactory

DeviceManagementGrpcServer getDeviceManagementServer ()
IDeviceManager getDeviceManager ()

Método de fábrica para obter uma referência ao IDeviceManager

TradefedFeatureServer getFeatureServer ()
IHostOptions getHostOptions ()
IKeyStoreClient getKeyStoreClient ()

Busca um IKeyStoreClient usando o IKeyStoreFactory declarado em IGlobalConfiguration ou nulo se nenhum estiver definido.

TestInvocationManagementServer getTestInvocationManagementServer ()
void initLogging ()

Inicializa o log ddmlib.

boolean isShutdown ()
void processReadyCommands ( IDeviceManager manager)

Construtores públicos

CommandScheduler

public CommandScheduler ()

Cria um CommandScheduler .

Nota: start deve ser chamado antes do uso.

Métodos públicos

adicionarComando

public Pair<Boolean, Integer> addCommand (String[] args)

Adiciona um comando ao agendador.

Um comando é essencialmente uma instância de uma configuração a ser executada e seus argumentos associados.

Se o argumento "--help" for especificado, o texto de ajuda da configuração será enviado para stdout. Caso contrário, a configuração será adicionada à fila para execução.

Parâmetros
args String : os argumentos de configuração.

Devoluções
Pair <Boolean, Integer> Um par de valores, o primeiro valor é um booleano true se o comando foi adicionado com sucesso. O segundo valor é o ID do rastreador de comando conhecido (valor não negativo) se o comando foi adicionado com sucesso, retorne 0 quando o comando for adicionado para todos os dispositivos, caso contrário -1.

Lança
ConfigurationException

adicionarCommandFile

public void addCommandFile (String cmdFilePath, 
                 extraArgs)

Adiciona todos os comandos de determinado arquivo ao agendador

Parâmetros
cmdFilePath String : o caminho do sistema de arquivos do arquivo de comando

extraArgs : um ERROR(/List) de argumentos String a serem anexados a cada comando analisado do arquivo. Pode estar vazio, mas não deve ser nulo.

Lança
ConfigurationException

aguardam

public void await ()

Aguarda que o agendador comece a ser executado, incluindo a espera pela conclusão da transferência do TF antigo, se aplicável.

verificarDelegação

public static TradefedDelegator checkDelegation (String[] args)

Crie um delegador baseado na linha de comando para ver se precisamos delegar a execução.

Parâmetros
args String

Devoluções
TradefedDelegator

Lança
com.android.tradefed.config.ConfigurationException
ConfigurationException

createReleaseMap

public static  createReleaseMap (IInvocationContext context, 
                Throwable e)

Crie um mapa do estado dos dispositivos para que possam ser liberados adequadamente.

Parâmetros
context IInvocationContext

e Throwable

Devoluções

criarSandbox

public ISandbox createSandbox ()

Crie um ISandbox que a invocação usará para ser executada.

Devoluções
ISandbox

displayCommandQueue

public void displayCommandQueue (PrintWriter printWriter)

Gere informações detalhadas de depuração sobre o estado da fila de execução de comandos.

displayCommandsInfo

public void displayCommandsInfo (PrintWriter printWriter, 
                String regex)

Produza uma lista de comandos atuais.

Parâmetros
printWriter PrintWriter : o ERROR(/PrintWriter) para o qual a saída será gerada.

regex String : a expressão regular à qual os comandos devem corresponder para serem impressos. Se for nulo, todos os comandos serão impressos.

displayInvocationsInfo

public void displayInvocationsInfo (PrintWriter printWriter)

Exibe uma lista de invocações atuais.

Parâmetros
printWriter PrintWriter : o ERROR(/PrintWriter) para o qual a saída será gerada.

dumpCommandsXml

public void dumpCommandsXml (PrintWriter printWriter, 
                String regex)

Despeja o arquivo xml expandido para o comando com todos os valores Option especificados para todos os comandos atuais.

Parâmetros
printWriter PrintWriter : o ERROR(/PrintWriter) para o qual gerar o status.

regex String : a expressão regular com a qual os comandos devem corresponder para que o arquivo xml seja despejado. Se for nulo, todos os comandos serão descartados.

execCommand

public long execCommand (ICommandScheduler.IScheduledInvocationListener listener, 
                 reservedDevices, 
                String[] args)

Execute o comando diretamente em dispositivos já alocados.

Parâmetros
listener ICommandScheduler.IScheduledInvocationListener : o ICommandScheduler.IScheduledInvocationListener a ser informado

reservedDevices : o ERROR(/List ) ERROR(/List ) usar

args String : os argumentos do comando

Devoluções
long O ID de invocação do comando agendado.

Lança
ConfigurationException

execCommand

public long execCommand (IInvocationContext context, 
                ICommandScheduler.IScheduledInvocationListener listener, 
                String[] args)

Aloca diretamente um dispositivo e executa um comando sem adicioná-lo à fila de comandos usando um IInvocationContext já existente.

Parâmetros
context IInvocationContext : um IInvocationContext existente.

listener ICommandScheduler.IScheduledInvocationListener : o ICommandScheduler.IScheduledInvocationListener a ser informado

args String : os argumentos do comando

Devoluções
long

Lança
ConfigurationException
NoDeviceException

execCommand

public long execCommand (ICommandScheduler.IScheduledInvocationListener listener, 
                String[] args)

Aloca diretamente um dispositivo e executa um comando sem adicioná-lo à fila de comandos.

Parâmetros
listener ICommandScheduler.IScheduledInvocationListener : o ICommandScheduler.IScheduledInvocationListener a ser informado

args String : os argumentos do comando

Devoluções
long O ID de invocação do comando agendado.

Lança
ConfigurationException
NoDeviceException

getCommandFileWatcher

public CommandFileWatcher getCommandFileWatcher ()

Obtenha o CommandFileWatcher apropriado para este agendador

Devoluções
CommandFileWatcher

getExecutingCommandCount

public int getExecutingCommandCount ()

Retorna o número de comandos em estado de execução.

Devoluções
int

getHostState

public CommandScheduler.HostState getHostState ()

Devoluções
CommandScheduler.HostState

getInvocationInfo

public String getInvocationInfo (int invocationId)

Retorna as informações sobre uma invocação bu especificando o ID da invocação.

Parâmetros
invocationId int : o ID de rastreamento da invocação.

Devoluções
String Uma String contendo informações sobre a invocação.

getLastInvocationExitCode

public CommandRunner.ExitCode getLastInvocationExitCode ()

Retorne o código de erro da última invocação executada. Retorna 0 (sem erro), se nenhuma invocação tiver sido executada ainda.

Devoluções
CommandRunner.ExitCode

getLastInvocationThrowable

public Throwable getLastInvocationThrowable ()

Retorne o Throwable da última invocação executada. Retorne nulo, se nenhum lançável estiver disponível.

Devoluções
Throwable

getReadyCommandCount

public int getReadyCommandCount ()

Retorna o número de comandos em estado pronto na fila.

Devoluções
int

getShutdownTimeout

public long getShutdownTimeout ()

Devoluções
long

isDeviceInInvocationThread

public boolean isDeviceInInvocationThread (ITestDevice device)

Retornará verdadeiro se o dispositivo for usado por um thread de invocação ativo.

Parâmetros
device ITestDevice

Devoluções
boolean

está desligando

public boolean isShuttingDown ()

Devoluções
boolean

notificarFileChanged

public void notifyFileChanged (File cmdFile, 
                 extraArgs)

Parâmetros
cmdFile File

extraArgs

remover todos os comandos

public void removeAllCommands ()

Remova todos os comandos do agendador

correr

public void run ()

O principal bloco de execução deste thread.

setClearcutClient

public void setClearcutClient (ClearcutClient client)

Configurar o cliente para relatar dados de arreios

Parâmetros
client ClearcutClient

deveriaShutdownOnCmdfileError

public boolean shouldShutdownOnCmdfileError ()

Retorne verdadeiro se precisarmos desligar o agendador em caso de erros de comando

Devoluções
boolean

desligar

public void shutdown (boolean notifyStop)

Tente encerrar normalmente o agendador de comando.

Parâmetros
notifyStop boolean : se verdadeiro, notifica invocações de desligamento do TF.

desligamentoHard

public void shutdownHard (boolean killAdb)

Tente desligar à força o agendador de comandos.

Semelhante a shutdown() , mas também eliminará opcionalmente a conexão adb, em uma tentativa de 'inspirar' as invocações em andamento para serem concluídas mais rapidamente.

Parâmetros
killAdb boolean

desligamentoHard

public void shutdownHard ()

Tente desligar à força o agendador de comandos. O mesmo que shutdownHard(verdadeiro).

shutdownOnEmpty

public void shutdownOnEmpty ()

Semelhante a shutdown() , mas em vez disso esperará que todos os comandos sejam executados antes de sair.

Observe que se algum comando estiver no modo loop, o agendador nunca será encerrado.

começar

public void start ()

Inicia o agendador, incluindo configuração de registro, inicialização do DeviceManager , etc.

pararInvocação

public boolean stopInvocation (ITestInvocation invocation)

Pare uma chamada em execução.

Parâmetros
invocation ITestInvocation

Devoluções
boolean verdadeiro se a invocação foi interrompida, falso caso contrário

pararInvocação

public boolean stopInvocation (int invocationId, 
                String cause)

Pare uma invocação em execução especificando seu id.

Parâmetros
invocationId int : o ID de rastreamento da invocação.

cause String : a causa para interromper a invocação.

Devoluções
boolean verdadeiro se a invocação foi interrompida, falso caso contrário

parar Agendamento

public void stopScheduling ()

Para de agendar e aceitar novos testes, mas não para o Tradefed. O objetivo disso é permitir um desligamento em duas etapas, onde primeiro drenamos todos os testes em execução e, em seguida, encerramos o processo Tradefed.

Métodos protegidos

limpar

protected void cleanUp ()

Fecha os logs e faz qualquer outra limpeza necessária antes de encerrarmos.

Exposto para que os testes unitários possam simular.

createConfiguração

protected IConfiguration createConfiguration (String[] args)

Parâmetros
args String

Devoluções
IConfiguration

Lança
ConfigurationException

createInvocationContext

protected IInvocationContext createInvocationContext ()

Devoluções
IInvocationContext

Relatório dryRunCommand

protected void dryRunCommandReporting (ICommandScheduler.IScheduledInvocationListener handler, 
                IConfiguration config)

Determina se um determinado comando é uma simulação. Se o comando for uma simulação, valide-o. Se houver algum problema de configuração, será lançada uma ConfigurationException.

Parâmetros
handler ICommandScheduler.IScheduledInvocationListener : ERROR(/InvocationEventHandler) para relatar eventos para validação de simulação.

config IConfiguration

Devoluções
void verdadeiro se o comando for uma simulação; caso contrário, falso.

Lança
com.android.tradefed.config.ConfigurationException
ConfigurationException

execCommand

protected long execCommand (IInvocationContext context, 
                ICommandScheduler.IScheduledInvocationListener listener, 
                 reservedDevices, 
                String[] args)

Parâmetros
context IInvocationContext

listener ICommandScheduler.IScheduledInvocationListener

reservedDevices

args String

Devoluções
long

Lança
ConfigurationException

getConfigFactory

protected IConfigurationFactory getConfigFactory ()

Método de fábrica para obter uma referência ao IConfigurationFactory

Devoluções
IConfigurationFactory o IConfigurationFactory a ser usado

getDeviceManagementServer

protected DeviceManagementGrpcServer getDeviceManagementServer ()

Devoluções
DeviceManagementGrpcServer

getDeviceManager

protected IDeviceManager getDeviceManager ()

Método de fábrica para obter uma referência ao IDeviceManager

Devoluções
IDeviceManager o IDeviceManager a ser usado

getFeatureServer

protected TradefedFeatureServer getFeatureServer ()

Devoluções
TradefedFeatureServer

getHostOptions

protected IHostOptions getHostOptions ()

Devoluções
IHostOptions

getKeyStoreClient

protected IKeyStoreClient getKeyStoreClient ()

Busca um IKeyStoreClient usando o IKeyStoreFactory declarado em IGlobalConfiguration ou nulo se nenhum estiver definido.

Devoluções
IKeyStoreClient IKeyStoreClient

getTestInvocationManagementServer

protected TestInvocationManagementServer getTestInvocationManagementServer ()

Devoluções
TestInvocationManagementServer

initLogging

protected void initLogging ()

Inicializa o log ddmlib.

Exposto para que os testes unitários possam simular.

éDesligado

protected boolean isShutdown ()

Devoluções
boolean

processReadyCommands

protected void processReadyCommands (IDeviceManager manager)

Parâmetros
manager IDeviceManager