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
Costruttori pubblici | |
---|---|
CommandScheduler()
Crea un |
Metodi pubblici | |
---|---|
Pair<Boolean, Integer>
|
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. |
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
|
long
|
execCommand(ICommandScheduler.IScheduledInvocationListener listener,
Esegui direttamente il comando sui dispositivi già allocati. |
long
|
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 |
long
|
execCommand(ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Alloca direttamente un dispositivo ed esegue un comando senza aggiungerlo alla coda dei comandi. |
CommandFileWatcher
|
getCommandFileWatcher()
Ottieni il CommandFileWatcher appropriato per questo scheduler |
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()
|
boolean
|
isDeviceInInvocationThread(ITestDevice device)
Restituisce true se il dispositivo è utilizzato da un thread di chiamata attivo. |
boolean
|
isShuttingDown()
|
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(boolean notifyStop)
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. |
void
|
stopScheduling()
Interrompe la pianificazione e l'accettazione di nuovi test, ma non interrompe la transazione. |
Costruttori pubblici
Pianificazione comando
public CommandScheduler ()
Crea un CommandScheduler
.
Nota: è necessario chiamare start prima dell'uso.
Metodi pubblici
addCommand
public Pair<Boolean, Integer> addCommand (String[] args)
Aggiunge un comando allo scheduler.
Un comando è essenzialmente un'istanza di una configurazione da eseguire e le sue argomenti.
Se "--help" viene specificato, il testo della guida per la configurazione verrà inviato a stdout. In caso contrario, la configurazione verrà aggiunta alla coda per essere eseguita.
Parametri | |
---|---|
args |
String : gli argomenti della configurazione. |
Ritorni | |
---|---|
Pair<Boolean, Integer> |
Una coppia di valori, il primo è un valore booleano true se è stato aggiunto il comando
correttamente. Il secondo valore è l'ID del tracker dei comandi noto(valore non negativo) se
il comando è stato aggiunto correttamente, restituisce 0 quando il comando viene aggiunto per tutti i dispositivi, altrimenti
-1. |
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 | |
---|---|
|
com.android.tradefed.config.ConfigurationEccezione |
ConfigurationException |
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 long execCommand (ICommandScheduler.IScheduledInvocationListener listener,reservedDevices, String[] args)
Esegui direttamente il comando sui dispositivi già allocati.
Parametri | |
---|---|
listener |
ICommandScheduler.IScheduledInvocationListener : ICommandScheduler.IScheduledInvocationListener da informarti |
reservedDevices |
: i ERROR(/List da utilizzare |
args |
String : gli argomenti del comando |
Ritorni | |
---|---|
long |
L'ID di chiamata del comando pianificato. |
Lanci | |
---|---|
ConfigurationException |
execCommand
public long 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 : ICommandScheduler.IScheduledInvocationListener da informarti |
args |
String : gli argomenti del comando |
Ritorni | |
---|---|
long |
Lanci | |
---|---|
ConfigurationException |
|
NoDeviceException |
execCommand
public long 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 |
Ritorni | |
---|---|
long |
L'ID di chiamata del comando pianificato. |
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 |
Thread diInvocazionePeri dispositivi
public boolean isDeviceInInvocationThread (ITestDevice device)
Restituisce true se il dispositivo è utilizzato da un thread di chiamata attivo.
Parametri | |
---|---|
device |
ITestDevice |
Ritorni | |
---|---|
boolean |
èarresto
public boolean isShuttingDown ()
Ritorni | |
---|---|
boolean |
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 (boolean notifyStop)
Tenta di chiudere delicatamente lo scheduler.
Parametri | |
---|---|
notifyStop |
boolean : se true, avvisa le chiamate alla chiusura di TF. |
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 |
interrompi programmazione
public void stopScheduling ()
Interrompe la pianificazione e l'accettazione di nuovi test, ma non interrompe la transazione. Questo ha lo scopo di abilitare un arresto in due passaggi dove prima svuotamo tutti i test in esecuzione e poi interrompiamo Tradefed e il processo di sviluppo.
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 |
dryRunCommandReporting
protected void dryRunCommandReporting (ICommandScheduler.IScheduledInvocationListener handler, IConfiguration config)
Determina se un determinato comando è una prova. Se il comando è in modalità dry run, convalidalo. Se se ci sono problemi di configurazione, verrà generata un'eccezione ConfigurationException.
Parametri | |
---|---|
handler |
ICommandScheduler.IScheduledInvocationListener : ERROR(/InvocationEventHandler) per segnalare eventi per la convalida dry run. |
config |
IConfiguration |
Ritorni | |
---|---|
void |
true se i comandi sono una prova, false negli altri casi. |
Lanci | |
---|---|
|
com.android.tradefed.config.ConfigurationEccezione |
ConfigurationException |
execCommand
protected long execCommand (IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener,reservedDevices, String[] args)
Parametri | |
---|---|
context |
IInvocationContext |
listener |
ICommandScheduler.IScheduledInvocationListener |
reservedDevices |
|
args |
String |
Ritorni | |
---|---|
long |
Lanci | |
---|---|
ConfigurationException |
getConfigFAB
protected IConfigurationFactory getConfigFactory ()
Metodo di fabbrica per ottenere un riferimento a IConfigurationFactory
Ritorni | |
---|---|
IConfigurationFactory |
IConfigurationFactory per utilizzare |
getDeviceManagementServer
protected DeviceManagementGrpcServer getDeviceManagementServer ()
Ritorni | |
---|---|
DeviceManagementGrpcServer |
getDeviceManager
protected IDeviceManager getDeviceManager ()
Metodo di fabbrica per ottenere un riferimento a IDeviceManager
Ritorni | |
---|---|
IDeviceManager |
IDeviceManager per utilizzare |
getKeyStoreClient
protected IKeyStoreClient getKeyStoreClient ()
Recupera un valore IKeyStoreClient
utilizzando il valore IKeyStoreFactory
dichiarato in IGlobalConfiguration
o nullo se non ne viene definito nessuno.
Ritorni | |
---|---|
IKeyStoreClient |
Cliente archivio chiavi |
getTestInvocationManagementServer
protected TestInvocationManagementServer getTestInvocationManagementServer ()
Ritorni | |
---|---|
TestInvocationManagementServer |
initLogging
protected void initLogging ()
Inizializza il log ddmlib.
Esposto in modo da simulare i test delle unità.
èArresta
protected boolean isShutdown ()
Ritorni | |
---|---|
boolean |
processReadyCommands
protected void processReadyCommands (IDeviceManager manager)
Parametri | |
---|---|
manager |
IDeviceManager |