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

Classes aninhadas

enum CommandScheduler.HostState

Enums de diferentes status de host

Construtores públicos

CommandScheduler ()

Cria um CommandScheduler .

Métodos públicos

boolean 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.

void completeHandover ()

Informa ao agendador de comando que uma sequência de handover iniciada está totalmente concluída e deve reinicializar seu gerenciador remoto na porta padrã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.

void execCommand ( ICommandScheduler.IScheduledInvocationListener listener, ITestDevice device, String[] args)

Execute o comando diretamente no dispositivo já alocado.

void 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.

void 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 ()
void handoverInitiationComplete ()

Informa ao agendador de comandos que a troca inicial de transferência de dispositivos e comandos em uso foi concluída e pode iniciar a operação de agendamento.

boolean handoverShutdown (int handoverPort)

Inicia um shutdown() e entrega para outro processo tradefed neste mesmo host.

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 ()

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.

Métodos protegidos

void cleanUp ()

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

IConfiguration createConfiguration (String[] args)
IInvocationContext createInvocationContext ()
IConfigurationFactory getConfigFactory ()

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

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.

void initLogging ()

Inicializa o log ddmlib.

boolean isShutdown ()
boolean isShuttingDown ()
void processReadyCommands ( IDeviceManager manager)
void waitForAllInvocationThreads ()

Aguarde até que todos os threads de invocação sejam concluídos.

Construtores públicos

CommandScheduler

public CommandScheduler ()

Cria um CommandScheduler .

Nota: start deve ser chamado antes do uso.

Métodos públicos

adicionarComando

public boolean 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
boolean true se o comando foi adicionado com sucesso

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
ConfigurationException

transferência completa

public void completeHandover ()

Informa ao agendador de comando que uma sequência de handover iniciada está totalmente concluída e deve reinicializar seu gerenciador remoto na porta padrão.

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 void execCommand (ICommandScheduler.IScheduledInvocationListener listener, 
                ITestDevice device, 
                String[] args)

Execute o comando diretamente no dispositivo já alocado.

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

device ITestDevice : o ITestDevice a ser usado

args String : os argumentos do comando

Lança
ConfigurationException

execCommand

public void 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

Lança
ConfigurationException
NoDeviceException

execCommand

public void 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

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

handoverInitiationComplete

public void handoverInitiationComplete ()

Informa ao agendador de comandos que a troca inicial de transferência de dispositivos e comandos em uso foi concluída e pode iniciar a operação de agendamento.

transferênciaDesligamento

public boolean handoverShutdown (int handoverPort)

Inicia um shutdown() e entrega para outro processo tradefed neste mesmo host.

O agendador informará o processo de negociação remota que escuta naquela porta sobre os dispositivos liberados assim que estiverem disponíveis.

Parâmetros
handoverPort int

Devoluções
boolean true se o início da transferência foi bem-sucedido; false caso contrário

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 ()

Tente encerrar normalmente o agendador de comando.

Limpa comandos que aguardam testes e solicita que todas as invocações em andamento sejam encerradas normalmente.

Depois que o shutdown for chamado, o loop principal do agendador aguardará a conclusão de todas as invocações em andamento antes de sair completamente.

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

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

getConfigFactory

protected IConfigurationFactory getConfigFactory ()

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

Devoluções
IConfigurationFactory o IConfigurationFactory a ser usado

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

initLogging

protected void initLogging ()

Inicializa o log ddmlib.

Exposto para que os testes unitários possam simular.

éDesligado

protected boolean isShutdown ()

Devoluções
boolean

está desligando

protected boolean isShuttingDown ()

Devoluções
boolean

processReadyCommands

protected void processReadyCommands (IDeviceManager manager)

Parâmetros
manager IDeviceManager

waitForAllInvocationThreads

protected void waitForAllInvocationThreads ()

Aguarde até que todos os threads de invocação sejam concluídos.