CommandScheduler
public
class
CommandScheduler
extends Object
implements
ICommandScheduler
| java.lang.Object | |
| ↳ | com.android.tradefed.command.CommandScheduler |
Uno strumento di pianificazione per l'esecuzione dei comandi TradeFederation su tutti i dispositivi disponibili.
Tenterà di dare la priorità ai comandi da eseguire in base a un conteggio totale del tempo di esecuzione. Ad esempio, i comandi eseguiti di rado o rapidamente avranno la priorità rispetto a quelli eseguiti a lungo.
Viene eseguito per sempre in background fino allo spegnimento.
Riepilogo
Costruttori pubblici | |
|---|---|
CommandScheduler()
Crea un |
|
Metodi pubblici | |
|---|---|
Pair<Boolean, Integer>
|
addCommand(String[] args)
Aggiunge un comando al programma di pianificazione. |
void
|
addCommandFile(String cmdFilePath,
Aggiunge tutti i comandi del file specificato allo scheduler |
void
|
await()
Attende l'avvio dello scheduler, inclusa l'attesa del completamento del trasferimento dal vecchio TF se applicabile. |
static
TradefedDelegator
|
checkDelegation(String[] args)
Crea un delegato in base alla riga di comando per verificare se è necessario delegare l'esecuzione. |
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)
Output di informazioni di debug dettagliate sullo stato della coda di esecuzione dei comandi. |
void
|
displayCommandsInfo(PrintWriter printWriter, String regex)
Restituisce un elenco dei comandi attuali. |
void
|
displayInvocationsInfo(PrintWriter printWriter)
Visualizza un elenco delle invocazioni correnti. |
void
|
dumpCommandsXml(PrintWriter printWriter, String regex)
Esegui il dump del file XML espanso per il comando con tutti i valori di |
long
|
execCommand(ICommandScheduler.IScheduledInvocationListener listener, ITestDevice device, String[] args)
Esegui direttamente il comando sul dispositivo già allocato. |
long
|
execCommand(ICommandScheduler.IScheduledInvocationListener listener,
Esegui direttamente il comando sui dispositivi già assegnati. |
long
|
execCommand(IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Alloca direttamente un dispositivo ed esegue un comando senza aggiungerlo alla coda di comandi
utilizzando un |
long
|
execCommand(ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Alloca direttamente un dispositivo ed esegue un comando senza aggiungerlo alla coda dei comandi. |
CommandFileWatcher
|
getCommandFileWatcher()
Ottieni CommandFileWatcher appropriato per questo scheduler |
int
|
getExecutingCommandCount()
Restituisce il numero di comandi nello stato di esecuzione. |
CommandScheduler.HostState
|
getHostState()
|
String
|
getInvocationInfo(int invocationId)
Restituisce le informazioni su una chiamata specificando l'ID 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 il valore True se il dispositivo viene utilizzato da un thread di chiamata attivo. |
boolean
|
isShuttingDown()
|
void
|
notifyFileChanged(File cmdFile,
|
void
|
removeAllCommands()
Rimuovere tutti i comandi dal pianificatore |
void
|
run()
Il blocco di esecuzione principale di questo thread. |
void
|
setClearcutClient(ClearcutClient client)
Imposta il client per generare report sui dati di Harness |
void
|
setMaxPollTime(long polling)
|
void
|
setPrintSchedulingWarning(boolean print)
|
boolean
|
shouldShutdownOnCmdfileError()
Restituisce true se è necessario arrestare lo scheduler in caso di errori di comando |
void
|
shutdown(boolean notifyStop)
Tenta di arrestare normalmente lo scheduler dei comandi. |
void
|
shutdownHard(boolean killAdb)
Tentativo di arresto forzato dello scheduler dei comandi. |
void
|
shutdownHard()
Tentativo di arresto forzato dello scheduler dei comandi. |
void
|
shutdownOnEmpty()
Simile a |
void
|
start()
Avvia la pianificazione, inclusa la configurazione della registrazione, l'inizializzazione di |
boolean
|
stopInvocation(ITestInvocation invocation)
Interrompi una chiamata in esecuzione. |
boolean
|
stopInvocation(int invocationId, String cause)
Arresta una chiamata in esecuzione specificandone l'ID. |
void
|
stopScheduling()
Interrompe la pianificazione e l'accettazione di nuovi test, ma non Tradefed. |
Costruttori pubblici
CommandScheduler
public CommandScheduler ()
Crea un CommandScheduler.
Nota: start deve essere chiamato prima dell'uso.
Metodi pubblici
addCommand
public Pair<Boolean, Integer> addCommand (String[] args)
Aggiunge un comando al programma di pianificazione.
Un comando è essenzialmente un'istanza di una configurazione da eseguire e i relativi argomenti.
Se viene specificato l'argomento "--help", il testo della guida per la configurazione verrà inviato a stdout. In caso contrario, la configurazione verrà aggiunta alla coda di esecuzione.
| Parametri | |
|---|---|
args |
String: gli argomenti di configurazione. |
| Ritorni | |
|---|---|
Pair<Boolean, Integer> |
Una coppia di valori, il primo è un valore booleano true se il comando è stato aggiunto correttamente. Il secondo valore è l'ID tracker del comando 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 del file specificato allo scheduler
| Parametri | |
|---|---|
cmdFilePath |
String: il percorso del file system del file di comando |
extraArgs |
: un ERROR(/List) di String argomenti da aggiungere a ogni comando analizzato dal file. Può essere vuoto, ma non deve essere nullo. |
| Lanci | |
|---|---|
ConfigurationException |
|
attesa
public void await ()
Attende l'avvio dello scheduler, inclusa l'attesa del completamento del trasferimento dal vecchio TF se applicabile.
checkDelegation
public static TradefedDelegator checkDelegation (String[] args)
Crea un delegato in base alla riga di comando per verificare se è necessario delegare l'esecuzione.
| Parametri | |
|---|---|
args |
String |
| Ritorni | |
|---|---|
TradefedDelegator |
|
| Lanci | |
|---|---|
|
com.android.tradefed.config.ConfigurationException |
ConfigurationException |
|
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 l'invocazione utilizzerà per l'esecuzione.
| Ritorni | |
|---|---|
ISandbox |
|
displayCommandQueue
public void displayCommandQueue (PrintWriter printWriter)
Output di 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 attuali.
| 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 invocazioni 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 i valori di Option specificati per tutti i comandi attuali.
| Parametri | |
|---|---|
printWriter |
PrintWriter: il ERROR(/PrintWriter) in cui restituire lo stato. |
regex |
String: l'espressione regolare a cui devono corrispondere i comandi affinché venga eseguito il dump del file XML. Se è null, verranno scaricati tutti i comandi. |
execCommand
public long 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 |
| Ritorni | |
|---|---|
long |
L'ID invocazione del comando pianificato. |
| Lanci | |
|---|---|
ConfigurationException |
|
execCommand
public long execCommand (ICommandScheduler.IScheduledInvocationListener listener,reservedDevices, String[] args)
Esegui direttamente il comando sui dispositivi già assegnati.
| Parametri | |
|---|---|
listener |
ICommandScheduler.IScheduledInvocationListener: il ICommandScheduler.IScheduledInvocationListener da informare |
reservedDevices |
: il ERROR(/List da utilizzare |
args |
String: gli argomenti del comando |
| Ritorni | |
|---|---|
long |
L'ID invocazione 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 di 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 |
| 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 informare |
args |
String: gli argomenti del comando |
| Ritorni | |
|---|---|
long |
L'ID invocazione del comando pianificato. |
| Lanci | |
|---|---|
ConfigurationException |
|
NoDeviceException |
|
getCommandFileWatcher
public CommandFileWatcher getCommandFileWatcher ()
Ottieni CommandFileWatcher appropriato per questo scheduler
| Ritorni | |
|---|---|
CommandFileWatcher |
|
getExecutingCommandCount
public int getExecutingCommandCount ()
Restituisce il numero di comandi nello stato di esecuzione.
| Ritorni | |
|---|---|
int |
|
getInvocationInfo
public String getInvocationInfo (int invocationId)
Restituisce le informazioni su una chiamata specificando l'ID 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 è ancora stata eseguita alcuna chiamata.
| Ritorni | |
|---|---|
CommandRunner.ExitCode |
|
getLastInvocationThrowable
public Throwable getLastInvocationThrowable ()
Restituisce Throwable dall'ultima chiamata eseguita.
Restituisce null se non è disponibile alcun throwable.
| Ritorni | |
|---|---|
Throwable |
|
getReadyCommandCount
public int getReadyCommandCount ()
Restituisce il numero di comandi in stato pronto nella coda.
| Ritorni | |
|---|---|
int |
|
getShutdownTimeout
public long getShutdownTimeout ()
| Ritorni | |
|---|---|
long |
|
isDeviceInInvocationThread
public boolean isDeviceInInvocationThread (ITestDevice device)
Restituisce il valore True se il dispositivo viene utilizzato da un thread di chiamata attivo.
| Parametri | |
|---|---|
device |
ITestDevice |
| Ritorni | |
|---|---|
boolean |
|
isShuttingDown
public boolean isShuttingDown ()
| Ritorni | |
|---|---|
boolean |
|
notifyFileChanged
public void notifyFileChanged (File cmdFile,
extraArgs) | Parametri | |
|---|---|
cmdFile |
File |
extraArgs |
|
removeAllCommands
public void removeAllCommands ()
Rimuovere tutti i comandi dal pianificatore
run
public void run ()
Il blocco di esecuzione principale di questo thread.
setClearcutClient
public void setClearcutClient (ClearcutClient client)
Imposta il client per generare report sui dati di Harness
| Parametri | |
|---|---|
client |
ClearcutClient |
setMaxPollTime
public void setMaxPollTime (long polling)
| Parametri | |
|---|---|
polling |
long |
setPrintSchedulingWarning
public void setPrintSchedulingWarning (boolean print)
| Parametri | |
|---|---|
print |
boolean |
shouldShutdownOnCmdfileError
public boolean shouldShutdownOnCmdfileError ()
Restituisce true se è necessario arrestare lo scheduler in caso di errori di comando
| Ritorni | |
|---|---|
boolean |
|
shutdown
public void shutdown (boolean notifyStop)
Tenta di arrestare normalmente lo scheduler dei comandi.
| Parametri | |
|---|---|
notifyStop |
boolean: se true, invia una notifica alle invocazioni dell'arresto di TF. |
shutdownHard
public void shutdownHard (boolean killAdb)
Tentativo di arresto forzato dello scheduler dei comandi.
Simile a shutdown(), ma interrompe anche facoltativamente la connessione adb, nel tentativo di "ispirare" le invocazioni in corso a completarsi più rapidamente.
| Parametri | |
|---|---|
killAdb |
boolean |
shutdownHard
public void shutdownHard ()
Tentativo di arresto forzato dello scheduler 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à loop, lo scheduler non uscirà mai.
partenza
public void start ()
Avvia la pianificazione, inclusa la configurazione della registrazione, l'inizializzazione di DeviceManager e così via.
stopInvocation
public boolean stopInvocation (ITestInvocation invocation)
Interrompi una chiamata 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)Arresta una chiamata in esecuzione specificandone l'ID.
| Parametri | |
|---|---|
invocationId |
int: l'ID monitoraggio dell'invocazione. |
cause |
String: il motivo dell'interruzione della chiamata. |
| Ritorni | |
|---|---|
boolean |
true se l'invocazione è stata interrotta, false in caso contrario |
stopScheduling
public void stopScheduling ()
Interrompe la pianificazione e l'accettazione di nuovi test, ma non Tradefed. Lo scopo è quello di consentire un arresto in due fasi in cui prima vengono svuotati tutti i test in esecuzione, quindi viene terminato il processo Tradefed.
Metodi protetti
cleanUp
protected void cleanUp ()
Chiude i log ed esegue qualsiasi altra pulizia necessaria prima di uscire.
Esposto in modo che i test delle unità possano simulare.
createConfiguration
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 simulazione. Se il comando è un dry run, convalidalo. Se si verificano problemi di configurazione, viene generata un'eccezione ConfigurationException.
| Parametri | |
|---|---|
handler |
ICommandScheduler.IScheduledInvocationListener: ERROR(/InvocationEventHandler) per segnalare gli eventi per la convalida di prova. |
config |
IConfiguration |
| Ritorni | |
|---|---|
void |
true se il comando è un dry run, false in caso contrario. |
| Lanci | |
|---|---|
|
com.android.tradefed.config.ConfigurationException |
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 |
|
getConfigFactory
protected IConfigurationFactory getConfigFactory ()
Metodo di fabbrica per ottenere un riferimento a IConfigurationFactory
| Ritorni | |
|---|---|
IConfigurationFactory |
IConfigurationFactory da utilizzare |
getDeviceManagementServer
protected DeviceManagementGrpcServer getDeviceManagementServer ()
| Ritorni | |
|---|---|
DeviceManagementGrpcServer |
|
getDeviceManager
protected IDeviceManager getDeviceManager ()
Metodo di fabbrica per ottenere un riferimento a IDeviceManager
| Ritorni | |
|---|---|
IDeviceManager |
IDeviceManager da utilizzare |
getKeyStoreClient
protected IKeyStoreClient getKeyStoreClient ()
Recupera un IKeyStoreClient utilizzando IKeyStoreFactory dichiarato in IGlobalConfiguration o null se non è definito alcun valore.
| Ritorni | |
|---|---|
IKeyStoreClient |
IKeyStoreClient |
getTestInvocationManagementServer
protected TestInvocationManagementServer getTestInvocationManagementServer ()
| Ritorni | |
|---|---|
TestInvocationManagementServer |
|
initLogging
protected void initLogging ()
Inizializza il log ddmlib.
Esposto in modo che i test delle unità possano simulare.
isShutdown
protected boolean isShutdown ()
| Ritorni | |
|---|---|
boolean |
|
processReadyCommands
protected void processReadyCommands (IDeviceManager manager)
| Parametri | |
|---|---|
manager |
IDeviceManager |