Pianificazione comando
public
class
CommandScheduler
extends Object
implements
ICommandScheduler
java.lang.Object | |
🎞 | com.android.tradefed.command.CommandScheduler |
Uno scheduler per eseguire i comandi TradeFederation su tutti i dispositivi disponibili.
Tenteremo di dare la priorità ai comandi da eseguire in base al conteggio totale della loro esecuzione nel tempo. ad es. I comandi poco frequenti o a esecuzione veloce avranno la priorità sui comandi a lunga esecuzione.
Esecuzione in background per sempre 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 allo scheduler. |
void
|
addCommandFile(String cmdFilePath,
Aggiunge tutti i comandi di un determinato file allo scheduler |
void
|
await()
Attende l'avvio dello scheduler, inclusa l'attesa del passaggio dal vecchio TF per il completamento se applicabile. |
static
TradefedDelegator
|
checkDelegation(String[] args)
Crea un delegante in base alla riga di comando per vedere se dobbiamo delegare l'esecuzione. |
void
|
completeHandover()
Informa lo scheduler dei comandi che una sequenza di trasferimento avviata è completamente completa deve reinizializzare il proprio gestore remoto sulla porta predefinita. |
static
|
createReleaseMap(IInvocationContext context, Throwable e)
Creare una mappa dello stato dei dispositivi in modo che possano essere rilasciati in modo appropriato. |
ISandbox
|
createSandbox()
Crea un elemento |
void
|
displayCommandQueue(PrintWriter printWriter)
Restituisce informazioni di debug dettagliate sullo stato della coda di esecuzione dei comandi. |
void
|
displayCommandsInfo(PrintWriter printWriter, String regex)
Restituisce 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 elemento |
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 |
int
|
getExecutingCommandCount()
Restituisce il numero di comandi in stato di esecuzione. |
CommandScheduler.HostState
|
getHostState()
|
String
|
getInvocationInfo(int invocationId)
Restituisce le informazioni su un bu di chiamata che specifica 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 pronto nella coda. |
long
|
getShutdownTimeout()
|
void
|
handoverInitiationComplete()
Informa lo scheduler dei comandi che lo scambio iniziale del trasferimento di dispositivi e dei comandi in uso è completa e può iniziare l'operazione di pianificazione. |
boolean
|
handoverShutdown(int handoverPort)
Avvia un |
void
|
notifyFileChanged(File cmdFile,
|
void
|
removeAllCommands()
Rimuovi tutti i comandi dallo scheduler |
void
|
run()
Il blocco di esecuzione principale di questo thread. |
void
|
setClearcutClient(ClearcutClient client)
Imposta il cliente in modo che generi report sui dati del database |
boolean
|
shouldShutdownOnCmdfileError()
Restituisce true se è necessario arrestare lo scheduler in caso di errori dei comandi |
void
|
shutdown()
Tenta di chiudere delicatamente lo scheduler. |
void
|
shutdownHard(boolean killAdb)
Tentativo di chiudere forzatamente lo scheduler dei comandi. |
void
|
shutdownHard()
Tentativo di chiudere forzatamente lo scheduler dei comandi. |
void
|
shutdownOnEmpty()
Simile a |
void
|
start()
Avvia lo scheduler, inclusa la configurazione del logging, l'init di |
boolean
|
stopInvocation(ITestInvocation invocation)
Interrompi una chiamata in esecuzione. |
boolean
|
stopInvocation(int invocationId, String cause)
Interrompi una chiamata in esecuzione specificando il relativo ID. |
Metodi protetti | |
---|---|
void
|
cleanUp()
Chiude i log ed esegue eventuali altre operazioni di pulizia necessarie 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
Pianificazione comando
public CommandScheduler ()
Crea un CommandScheduler
.
Nota: è necessario chiamare start prima dell'uso.
Metodi pubblici
addCommand
public boolean addCommand (String[] args)
Aggiunge un comando allo scheduler.
Un comando è essenzialmente un'istanza di una configurazione da eseguire e gli argomenti associati.
Se "--help" viene specificato il testo di aiuto la configurazione verrà inviata a stdout. In caso contrario, la configurazione verrà aggiunta alla coda per vengono eseguiti tutti i test delle unità.
Parametri | |
---|---|
args |
String : gli argomenti della configurazione. |
Ritorni | |
---|---|
boolean |
true se il comando è stato aggiunto |
Lanci | |
---|---|
ConfigurationException |
addCommandFile
public void addCommandFile (String cmdFilePath,extraArgs)
Aggiunge tutti i comandi di un determinato file allo scheduler
Parametri | |
---|---|
cmdFilePath |
String : il percorso del file system del file comand |
extraArgs |
: ERROR(/List) di String argomenti da aggiungere a ogni comando analizzato
da file. Il campo può essere vuoto, ma non può essere null. |
Lanci | |
---|---|
ConfigurationException |
aspetta
public void await ()
Attende l'avvio dello scheduler, inclusa l'attesa del passaggio dal vecchio TF per il completamento se applicabile.
checkDelega
public static TradefedDelegator checkDelegation (String[] args)
Crea un delegante in base alla riga di comando per vedere se dobbiamo delegare l'esecuzione.
Parametri | |
---|---|
args |
String |
Ritorni | |
---|---|
TradefedDelegator |
Lanci | |
---|---|
ConfigurationException |
passaggio completo
public void completeHandover ()
Informa lo scheduler dei comandi che una sequenza di trasferimento avviata è completamente completa deve reinizializzare il proprio gestore remoto sulla porta predefinita.
createReleaseMap
public staticcreateReleaseMap (IInvocationContext context, Throwable e)
Creare 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 elemento ISandbox
che verrà utilizzato per l'esecuzione della chiamata.
Ritorni | |
---|---|
ISandbox |
displayCommandQueue
public void displayCommandQueue (PrintWriter printWriter)
Restituisce informazioni di debug dettagliate sullo stato della coda di esecuzione dei comandi.
displayCommandsInfo
public void displayCommandsInfo (PrintWriter printWriter, String regex)
Restituisce un elenco dei comandi correnti.
Parametri | |
---|---|
printWriter |
PrintWriter : il ERROR(/PrintWriter) a cui inviare l'output. |
regex |
String : l'espressione regolare a cui devono corrispondere i comandi per essere
stampati. Se il valore è null, verranno stampati tutti i comandi.
|
displayInvocationsInfo
public void displayInvocationsInfo (PrintWriter printWriter)
Visualizza un elenco delle chiamate correnti.
Parametri | |
---|---|
printWriter |
PrintWriter : il ERROR(/PrintWriter) a cui inviare l'output.
|
dumpCommandsXml
public void dumpCommandsXml (PrintWriter printWriter, String regex)
Esegui il dump del file XML espanso per il comando con tutti
Option
valori specificati per tutti i comandi attuali.
Parametri | |
---|---|
printWriter |
PrintWriter : il valore ERROR(/PrintWriter) a cui inviare lo stato. |
regex |
String : l'espressione regolare a cui devono corrispondere i comandi per generare
XML da scaricare. Se il valore è 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 aggiornare |
device |
ITestDevice : i 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 elemento IInvocationContext
già esistente.
Parametri | |
---|---|
context |
IInvocationContext : un IInvocationContext esistente. |
listener |
ICommandScheduler.IScheduledInvocationListener : il ICommandScheduler.IScheduledInvocationListener da aggiornare |
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 aggiornare |
args |
String : gli argomenti del comando |
Lanci | |
---|---|
ConfigurationException |
|
NoDeviceException |
getCommandFileWatcher
public CommandFileWatcher getCommandFileWatcher ()
Ottieni il CommandFileWatcher
appropriato per questo scheduler
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 bu di chiamata che specifica l'ID di chiamata.
Parametri | |
---|---|
invocationId |
int : l'ID di monitoraggio della chiamata. |
Ritorni | |
---|---|
String |
Un elemento String contenente informazioni sulla chiamata.
|
getLastInvocationExitCode
public CommandRunner.ExitCode getLastInvocationExitCode ()
Restituisce il codice di errore dell'ultima chiamata eseguita. Restituisce 0 (nessun errore) se non è ancora stata eseguita alcuna chiamata.
Ritorni | |
---|---|
CommandRunner.ExitCode |
getLastInvocationThrowable
public Throwable getLastInvocationThrowable ()
Restituisce Throwable
dall'ultima chiamata eseguita.
Restituisce un valore nullo se non sono disponibili elementi lanciabili.
Ritorni | |
---|---|
Throwable |
getReadyCommandCount
public int getReadyCommandCount ()
Restituisce il numero di comandi in stato pronto nella coda.
Ritorni | |
---|---|
int |
getShutdownTimeout
public long getShutdownTimeout ()
Ritorni | |
---|---|
long |
avvio_invio completato
public void handoverInitiationComplete ()
Informa lo scheduler dei comandi che lo scambio iniziale del trasferimento di dispositivi e dei comandi in uso è completa e può iniziare l'operazione di pianificazione.
passaggioarresto
public boolean handoverShutdown (int handoverPort)
Avvia un shutdown()
e passa a un altro processo trasferito sullo stesso host.
Lo scheduler comunicherà al processo di trasferimento remoto in ascolto su quella porta di dispositivi liberati man mano che diventano disponibili.
Parametri | |
---|---|
handoverPort |
int |
Ritorni | |
---|---|
boolean |
true se l'avvio del passaggio è riuscito, false
altrimenti
|
notificaFileChanged
public void notifyFileChanged (File cmdFile,extraArgs)
Parametri | |
---|---|
cmdFile |
File |
extraArgs |
|
rimuovereTuttiComandi
public void removeAllCommands ()
Rimuovi tutti i comandi dallo scheduler
run
public void run ()
Il blocco di esecuzione principale di questo thread.
ImpostaClienteCancella
public void setClearcutClient (ClearcutClient client)
Imposta il cliente in modo che generi report sui dati del database
Parametri | |
---|---|
client |
ClearcutClient |
dovrebbeArrestoSuCmdfileError
public boolean shouldShutdownOnCmdfileError ()
Restituisce true se è necessario arrestare lo scheduler in caso di errori dei comandi
Ritorni | |
---|---|
boolean |
chiusura
public void shutdown ()
Tenta di chiudere delicatamente lo scheduler.
Cancella i comandi in attesa di essere testati e richiede che tutte le chiamate in corso arresta con grazia.
Dopo la chiamata dell'arresto, il loop principale dello scheduler attenderà tutte le chiamate in corso da completare prima di uscire del tutto.
chiusuraDifficile
public void shutdownHard (boolean killAdb)
Tentativo di chiudere forzatamente lo scheduler dei comandi.
Simile a shutdown()
, ma facoltativamente interrompe anche la connessione ADB in un
tentare di "ispirare" di chiamate in corso da completare più rapidamente.
Parametri | |
---|---|
killAdb |
boolean |
chiusuraDifficile
public void shutdownHard ()
Tentativo di chiudere forzatamente lo scheduler dei comandi. Uguale a shutdownHard(true).
ArrestoOnVuoto
public void shutdownOnEmpty ()
Simile a shutdown()
, ma attenderà l'esecuzione di tutti i comandi
prima di uscire.
Tieni presente che se alcuni comandi sono in modalità loop, lo scheduler non uscirà mai.
partenza
public void start ()
Avvia lo scheduler, inclusa la configurazione del logging, l'init di DeviceManager
e così via
stopChiama
public boolean stopInvocation (ITestInvocation invocation)
Interrompi una chiamata in esecuzione.
Parametri | |
---|---|
invocation |
ITestInvocation |
Ritorni | |
---|---|
boolean |
true se la chiamata è stata interrotta, false in caso contrario |
stopChiama
public boolean stopInvocation (int invocationId, String cause)
Interrompi una chiamata in esecuzione specificando il relativo ID.
Parametri | |
---|---|
invocationId |
int : l'ID di monitoraggio della chiamata. |
cause |
String : la causa dell'interruzione della chiamata. |
Ritorni | |
---|---|
boolean |
true se la chiamata è stata interrotta, false in caso contrario |
Metodi protetti
pulizia
protected void cleanUp ()
Chiude i log ed esegue eventuali altre operazioni di pulizia necessarie prima di uscire.
Esposto in modo da simulare i test delle unità.
creaConfigurazione
protected IConfiguration createConfiguration (String[] args)
Parametri | |
---|---|
args |
String |
Ritorni | |
---|---|
IConfiguration |
Lanci | |
---|---|
ConfigurationException |
createInvocationContext
protected IInvocationContext createInvocationContext ()
Ritorni | |
---|---|
IInvocationContext |
getConfigFAB
protected IConfigurationFactory getConfigFactory ()
Metodo di fabbrica per ottenere un riferimento a IConfigurationFactory
Ritorni | |
---|---|
IConfigurationFactory |
IConfigurationFactory per utilizzare
|
getDeviceManager
protected IDeviceManager getDeviceManager ()
Metodo di fabbrica per ottenere un riferimento a IDeviceManager
Ritorni | |
---|---|
IDeviceManager |
IDeviceManager per utilizzare
|
getHostOpzioni
protected IHostOptions getHostOptions ()
Ritorni | |
---|---|
IHostOptions |
getKeyStoreClient
protected IKeyStoreClient getKeyStoreClient ()
Recupera un IKeyStoreClient
utilizzando IKeyStoreFactory
dichiarato in IGlobalConfiguration
o nullo se non ne viene definito nessuno.
Ritorni | |
---|---|
IKeyStoreClient |
Cliente archivio chiavi |
initLogging
protected void initLogging ()
Inizializza il log ddmlib.
Esposto in modo da simulare i test delle unità.
èArresta
protected boolean isShutdown ()
Ritorni | |
---|---|
boolean |
èarresto
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.