CommandScheduler
public
class
CommandScheduler
extends Object
implements
ICommandScheduler
java.lang.Object | |
↳ | com.android.tradefed.command.CommandScheduler |
Un programmatore per l'esecuzione dei comandi TradeFederation su tutti i dispositivi disponibili.
Cercherà di dare la priorità ai comandi da eseguire in base a un conteggio totale del tempo di esecuzione. Ad esempio, i comandi con esecuzione frequente o rapida avranno la priorità sui comandi con esecuzione lunga.
Viene eseguito in background fino all'arresto.
Riepilogo
Classi nidificate | |
---|---|
enum |
CommandScheduler.HostState
Enum di diversi stati dell'host |
Costruttori pubblici | |
---|---|
CommandScheduler()
Crea un |
Metodi pubblici | |
---|---|
boolean
|
addCommand(String[] args)
Aggiunge un comando al programma di pianificazione. |
void
|
addCommandFile(String cmdFilePath,
Aggiunge tutti i comandi del file specificato all'organizzatore |
void
|
await()
Attende l'avvio dello scheduler, inclusa l'attesa del completamento del trasferimento dall'TF precedente, se applicabile. |
static
TradefedDelegator
|
checkDelegation(String[] args)
Crea un delegante basato sulla riga di comando per verificare se è necessario delegare l'esecuzione. |
void
|
completeHandover()
Informa lo scheduler dei comandi che una sequenza di trasferimento avviata è completamente completata e che deve inizializzare nuovamente il gestore remoto sulla porta predefinita. |
static
|
createReleaseMap(IInvocationContext context, Throwable e)
Crea una mappa dello stato dei dispositivi in modo che possano essere rilasciati in modo appropriato. |
ISandbox
|
createSandbox()
Crea un |
void
|
displayCommandQueue(PrintWriter printWriter)
Mostra informazioni di debug dettagliate sullo stato della coda di esecuzione dei comandi. |
void
|
displayCommandsInfo(PrintWriter printWriter, String regex)
Stampa un elenco dei comandi correnti. |
void
|
displayInvocationsInfo(PrintWriter printWriter)
Visualizza un elenco delle chiamate correnti. |
void
|
dumpCommandsXml(PrintWriter printWriter, String regex)
Esegui il dump del file XML espanso per il comando con tutti
|
void
|
execCommand(ICommandScheduler.IScheduledInvocationListener listener, ITestDevice device, String[] args)
Esegui direttamente il comando sul dispositivo già allocato. |
void
|
execCommand(IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Alloca direttamente un dispositivo ed esegue un comando senza aggiungerlo alla coda dei comandi utilizzando un |
void
|
execCommand(ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Alloca direttamente un dispositivo ed esegue un comando senza aggiungerlo alla coda dei comandi. |
CommandFileWatcher
|
getCommandFileWatcher()
Ottieni il valore |
int
|
getExecutingCommandCount()
Restituisce il numero di comandi in stato di esecuzione. |
CommandScheduler.HostState
|
getHostState()
|
String
|
getInvocationInfo(int invocationId)
Restituisce le informazioni su un'invocazione specificando l'ID di chiamata. |
CommandRunner.ExitCode
|
getLastInvocationExitCode()
Restituisce il codice di errore dell'ultima chiamata eseguita. |
Throwable
|
getLastInvocationThrowable()
Restituisce |
int
|
getReadyCommandCount()
Restituisce il numero di comandi in stato di attesa nella coda. |
long
|
getShutdownTimeout()
|
void
|
handoverInitiationComplete()
Comunica allo scheduler dei comandi che lo scambio iniziale dei dispositivi e dei comandi in uso è stato completato e che può iniziare l'operazione di pianificazione. |
boolean
|
handoverShutdown(int handoverPort)
Avvia un |
void
|
notifyFileChanged(File cmdFile,
|
void
|
removeAllCommands()
Rimuovi tutti i comandi dal programmatore |
void
|
run()
Il blocco di esecuzione principale di questo thread. |
void
|
setClearcutClient(ClearcutClient client)
Impostare il client in modo che registri i dati del cablaggio |
boolean
|
shouldShutdownOnCmdfileError()
Restituisce true se è necessario arrestare il programma di pianificazione in caso di errori di comando |
void
|
shutdown()
Prova ad arrestare in modo corretto lo scheduler dei comandi. |
void
|
shutdownHard(boolean killAdb)
Tenta di arrestare forzatamente il programmatore dei comandi. |
void
|
shutdownHard()
Tenta di arrestare forzatamente il programmatore dei comandi. |
void
|
shutdownOnEmpty()
È simile a |
void
|
start()
Avvia il programmatore, inclusa la configurazione del logging, l'inizializzazione di |
boolean
|
stopInvocation(ITestInvocation invocation)
Interrompi un'invocazione in esecuzione. |
boolean
|
stopInvocation(int invocationId, String cause)
Interrompi un'invocazione in esecuzione specificandone l'ID. |
Metodi protetti | |
---|---|
void
|
cleanUp()
Chiude i log ed esegue qualsiasi altra operazione di pulizia necessaria prima di uscire. |
IConfiguration
|
createConfiguration(String[] args)
|
IInvocationContext
|
createInvocationContext()
|
IConfigurationFactory
|
getConfigFactory()
Metodo di fabbrica per ottenere un riferimento a |
IDeviceManager
|
getDeviceManager()
Metodo di fabbrica per ottenere un riferimento a |
TradefedFeatureServer
|
getFeatureServer()
|
IHostOptions
|
getHostOptions()
|
IKeyStoreClient
|
getKeyStoreClient()
Recupera un |
void
|
initLogging()
Inizializza il log ddmlib. |
boolean
|
isShutdown()
|
boolean
|
isShuttingDown()
|
void
|
processReadyCommands(IDeviceManager manager)
|
void
|
waitForAllInvocationThreads()
Attendi il completamento di tutti i thread di chiamata. |
Costruttori pubblici
CommandScheduler
public CommandScheduler ()
Crea un CommandScheduler
.
Nota: start deve essere chiamato prima dell'uso.
Metodi pubblici
addCommand
public boolean addCommand (String[] args)
Aggiunge un comando al programma di pianificazione.
Un comando è essenzialmente un'istanza di una configurazione da eseguire e dei relativi argomenti associati.
Se viene specificato l'argomento "--help", il testo della guida per la configurazione verrà visualizzato in output. In caso contrario, la configurazione verrà aggiunta alla coda per essere eseguita.
Parametri | |
---|---|
args |
String : gli argomenti di configurazione. |
Ritorni | |
---|---|
boolean |
true se il comando è stato aggiunto correttamente |
Lanci | |
---|---|
ConfigurationException |
addCommandFile
public void addCommandFile (String cmdFilePath,extraArgs)
Aggiunge tutti i comandi del file specificato all'organizzatore
Parametri | |
---|---|
cmdFilePath |
String : il percorso del file del file di comando |
extraArgs |
: un ERROR(/List) di argomenti String da aggiungere a ogni comando analizzato
dal file. Può essere vuoto, ma non deve essere null. |
Lanci | |
---|---|
ConfigurationException |
attendere
public void await ()
Attende l'avvio dello scheduler, inclusa l'attesa del completamento del trasferimento dall'TF precedente, se applicabile.
checkDelegation
public static TradefedDelegator checkDelegation (String[] args)
Crea un delegante basato sulla riga di comando per verificare se è necessario delegare l'esecuzione.
Parametri | |
---|---|
args |
String |
Ritorni | |
---|---|
TradefedDelegator |
Lanci | |
---|---|
ConfigurationException |
completeHandover
public void completeHandover ()
Informa lo scheduler dei comandi che una sequenza di trasferimento avviata è completamente completata e che deve inizializzare nuovamente il gestore remoto sulla porta predefinita.
createReleaseMap
public staticcreateReleaseMap (IInvocationContext context, Throwable e)
Crea una mappa dello stato dei dispositivi in modo che possano essere rilasciati in modo appropriato.
Parametri | |
---|---|
context |
IInvocationContext |
e |
Throwable |
Ritorni | |
---|---|
|
createSandbox
public ISandbox createSandbox ()
Crea un ISandbox
che verrà utilizzato dall'esecuzione dell'invocazione.
Ritorni | |
---|---|
ISandbox |
displayCommandQueue
public void displayCommandQueue (PrintWriter printWriter)
Mostra informazioni di debug dettagliate sullo stato della coda di esecuzione dei comandi.
displayCommandsInfo
public void displayCommandsInfo (PrintWriter printWriter, String regex)
Stampa un elenco dei comandi correnti.
Parametri | |
---|---|
printWriter |
PrintWriter : il ERROR(/PrintWriter) in cui eseguire l'output. |
regex |
String : l'espressione regolare a cui devono corrispondere i comandi per essere stampati. Se è null, verranno stampati tutti i comandi.
|
displayInvocationsInfo
public void displayInvocationsInfo (PrintWriter printWriter)
Visualizza un elenco delle chiamate correnti.
Parametri | |
---|---|
printWriter |
PrintWriter : il ERROR(/PrintWriter) in cui eseguire l'output.
|
dumpCommandsXml
public void dumpCommandsXml (PrintWriter printWriter, String regex)
Esegui il dump del file XML espanso per il comando con tutti
Option
i valori specificati per tutti i comandi correnti.
Parametri | |
---|---|
printWriter |
PrintWriter : il ERROR(/PrintWriter) a cui stampare lo stato. |
regex |
String : l'espressione regolare a cui devono corrispondere i comandi per eseguire il dump del file XML. Se è null, verranno sottoposti a dump tutti i comandi.
|
execCommand
public void execCommand (ICommandScheduler.IScheduledInvocationListener listener, ITestDevice device, String[] args)
Esegui direttamente il comando sul dispositivo già allocato.
Parametri | |
---|---|
listener |
ICommandScheduler.IScheduledInvocationListener : il ICommandScheduler.IScheduledInvocationListener da informare |
device |
ITestDevice : il ITestDevice da utilizzare |
args |
String : gli argomenti del comando |
Lanci | |
---|---|
ConfigurationException |
execCommand
public void execCommand (IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Alloca direttamente un dispositivo ed esegue un comando senza aggiungerlo alla coda dei comandi utilizzando un IInvocationContext
già esistente.
Parametri | |
---|---|
context |
IInvocationContext : un IInvocationContext esistente. |
listener |
ICommandScheduler.IScheduledInvocationListener : il ICommandScheduler.IScheduledInvocationListener da informare |
args |
String : gli argomenti del comando |
Lanci | |
---|---|
ConfigurationException |
|
NoDeviceException |
execCommand
public void execCommand (ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Alloca direttamente un dispositivo ed esegue un comando senza aggiungerlo alla coda dei comandi.
Parametri | |
---|---|
listener |
ICommandScheduler.IScheduledInvocationListener : il ICommandScheduler.IScheduledInvocationListener da informare |
args |
String : gli argomenti del comando |
Lanci | |
---|---|
ConfigurationException |
|
NoDeviceException |
getCommandFileWatcher
public CommandFileWatcher getCommandFileWatcher ()
Ottieni il valore CommandFileWatcher
appropriato per questo programmatore
Ritorni | |
---|---|
CommandFileWatcher |
getExecutingCommandCount
public int getExecutingCommandCount ()
Restituisce il numero di comandi in stato di esecuzione.
Ritorni | |
---|---|
int |
getInvocationInfo
public String getInvocationInfo (int invocationId)
Restituisce le informazioni su un'invocazione specificando l'ID di chiamata.
Parametri | |
---|---|
invocationId |
int : l'ID monitoraggio dell'invocazione. |
Ritorni | |
---|---|
String |
Un String contenente informazioni sull'invocazione.
|
getLastInvocationExitCode
public CommandRunner.ExitCode getLastInvocationExitCode ()
Restituisce il codice di errore dell'ultima chiamata eseguita. Restituisce 0 (nessun errore) se non è stata ancora eseguita alcuna chiamata.
Ritorni | |
---|---|
CommandRunner.ExitCode |
getLastInvocationThrowable
public Throwable getLastInvocationThrowable ()
Restituisce Throwable
dall'ultima chiamata eseguita.
Restituisce null se non è disponibile alcun oggetto throwable.
Ritorni | |
---|---|
Throwable |
getReadyCommandCount
public int getReadyCommandCount ()
Restituisce il numero di comandi in stato di attesa nella coda.
Ritorni | |
---|---|
int |
getShutdownTimeout
public long getShutdownTimeout ()
Ritorni | |
---|---|
long |
handoverInitiationComplete
public void handoverInitiationComplete ()
Comunica allo scheduler dei comandi che lo scambio iniziale dei dispositivi e dei comandi in uso è stato completato e che può iniziare l'operazione di pianificazione.
handoverShutdown
public boolean handoverShutdown (int handoverPort)
Avvia un shutdown()
e il trasferimento a un'altra procedura di importazione dei dati commerciali sullo stesso host.
Lo scheduler informerà il processo di importazione di app remota in ascolto su quella porta dei dispositivi liberati non appena saranno disponibili.
Parametri | |
---|---|
handoverPort |
int |
Ritorni | |
---|---|
boolean |
true se l'avvio del trasferimento è andato a buon fine, false
in caso contrario
|
notifyFileChanged
public void notifyFileChanged (File cmdFile,extraArgs)
Parametri | |
---|---|
cmdFile |
File |
extraArgs |
|
removeAllCommands
public void removeAllCommands ()
Rimuovi tutti i comandi dal programmatore
run
public void run ()
Il blocco di esecuzione principale di questo thread.
setClearcutClient
public void setClearcutClient (ClearcutClient client)
Impostare il client in modo che registri i dati del cablaggio
Parametri | |
---|---|
client |
ClearcutClient |
shouldShutdownOnCmdfileError
public boolean shouldShutdownOnCmdfileError ()
Restituisce true se è necessario arrestare il programma di pianificazione in caso di errori di comando
Ritorni | |
---|---|
boolean |
arresto
public void shutdown ()
Prova ad arrestare in modo corretto lo scheduler dei comandi.
Cancella i comandi in attesa di essere testati e richiede che tutte le invocazioni in corso si arrestino in modo corretto.
Dopo aver chiamato il metodo di arresto, il loop principale dell'organizzatore attenderà il completamento di tutte le chiamate in corso prima di uscire completamente.
shutdownHard
public void shutdownHard (boolean killAdb)
Tenta di arrestare forzatamente il programmatore dei comandi.
Simile a shutdown()
, ma facoltativamente termina anche la connessione adb, nel tentativo di "incentivare" il completamento più rapido delle chiamate in corso.
Parametri | |
---|---|
killAdb |
boolean |
shutdownHard
public void shutdownHard ()
Tenta di arrestare forzatamente il programmatore dei comandi. Uguale a shutdownHard(true).
shutdownOnEmpty
public void shutdownOnEmpty ()
È simile a shutdown()
, ma attende l'esecuzione di tutti i comandi prima di uscire.
Tieni presente che se alcuni comandi sono in modalità di loop, lo scheduler non uscirà mai.
partenza
public void start ()
Avvia il programmatore, inclusa la configurazione del logging, l'inizializzazione di DeviceManager
e così via
stopInvocation
public boolean stopInvocation (ITestInvocation invocation)
Interrompi un'invocazione in esecuzione.
Parametri | |
---|---|
invocation |
ITestInvocation |
Ritorni | |
---|---|
boolean |
true se l'invocazione è stata interrotta, false in caso contrario |
stopInvocation
public boolean stopInvocation (int invocationId, String cause)
Interrompi un'invocazione in esecuzione specificandone l'ID.
Parametri | |
---|---|
invocationId |
int : l'ID monitoraggio dell'invocazione. |
cause |
String : la causa dell'interruzione dell'invocazione. |
Ritorni | |
---|---|
boolean |
true se l'invocazione è stata interrotta, false in caso contrario |
Metodi protetti
cleanUp
protected void cleanUp ()
Chiude i log ed esegue qualsiasi altra operazione di pulizia necessaria prima di uscire.
Esposto in modo che i test delle unità possano essere simulati.
createConfiguration
protected IConfiguration createConfiguration (String[] args)
Parametri | |
---|---|
args |
String |
Ritorni | |
---|---|
IConfiguration |
Lanci | |
---|---|
ConfigurationException |
createInvocationContext
protected IInvocationContext createInvocationContext ()
Ritorni | |
---|---|
IInvocationContext |
getConfigFactory
protected IConfigurationFactory getConfigFactory ()
Metodo di fabbrica per ottenere un riferimento a IConfigurationFactory
Ritorni | |
---|---|
IConfigurationFactory |
il IConfigurationFactory da utilizzare
|
getDeviceManager
protected IDeviceManager getDeviceManager ()
Metodo di fabbrica per ottenere un riferimento a IDeviceManager
Ritorni | |
---|---|
IDeviceManager |
il IDeviceManager da utilizzare
|
getHostOptions
protected IHostOptions getHostOptions ()
Ritorni | |
---|---|
IHostOptions |
getKeyStoreClient
protected IKeyStoreClient getKeyStoreClient ()
Recupera un IKeyStoreClient
utilizzando il IKeyStoreFactory
dichiarato in IGlobalConfiguration
o null se non è definito nessuno.
Ritorni | |
---|---|
IKeyStoreClient |
IKeyStoreClient |
initLogging
protected void initLogging ()
Inizializza il log ddmlib.
Esposto in modo che i test delle unità possano essere simulati.
isShutdown
protected boolean isShutdown ()
Ritorni | |
---|---|
boolean |
isShuttingDown
protected boolean isShuttingDown ()
Ritorni | |
---|---|
boolean |
processReadyCommands
protected void processReadyCommands (IDeviceManager manager)
Parametri | |
---|---|
manager |
IDeviceManager |
waitForAllInvocationThreads
protected void waitForAllInvocationThreads ()
Attendi il completamento di tutti i thread di chiamata.