CommandScheduler
public class CommandScheduler
extends Object
implements ICommandScheduler
java.lang.Oggetto | |
↳ | com.android.tradefed.command.CommandScheduler |
Uno scheduler 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 in esecuzione del loro tempo di esecuzione. ad esempio, i comandi poco frequenti o con esecuzione rapida avranno la priorità rispetto ai comandi con esecuzione prolungata.
Funziona per sempre in background 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, extraArgs) addCommandFile (String cmdFilePath, extraArgs) Aggiunge tutti i comandi dal file specificato allo scheduler |
void | await () Attende che lo scheduler inizi a funzionare, inclusa l'attesa del completamento del trasferimento dal vecchio TF, se applicabile. |
static TradefedDelegator | checkDelegation (String[] args) Crea un delegante basato sulla riga di comando per verificare se è necessario 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 |
void | displayCommandQueue (PrintWriter printWriter) Genera informazioni di debug dettagliate sullo stato della coda di esecuzione dei comandi. |
void | displayCommandsInfo (PrintWriter printWriter, String regex) Produce un elenco di comandi correnti. |
void | displayInvocationsInfo (PrintWriter printWriter) Visualizza un elenco di chiamate correnti. |
void | dumpCommandsXml (PrintWriter printWriter, String regex) Scarica il file xml espanso per il comando con tutti i valori |
long | execCommand ( ICommandScheduler.IScheduledInvocationListener listener, reservedDevices, String[] args) execCommand ( ICommandScheduler.IScheduledInvocationListener listener, reservedDevices, String[] args) Esegui direttamente il comando su dispositivi già allocati. |
long | execCommand ( IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, String[] args) Alloca direttamente un dispositivo ed esegue un comando senza aggiungerlo alla coda comandi usando 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 il |
int | getExecutingCommandCount () Restituisce il numero di comandi in stato di esecuzione. |
CommandScheduler.HostState | getHostState () |
String | getInvocationInfo (int invocationId) Restituisce le informazioni su una chiamata bu 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 true se il dispositivo è utilizzato da un thread di chiamata attivo. |
void | notifyFileChanged (File cmdFile, extraArgs) notifyFileChanged (File cmdFile, extraArgs) |
void | removeAllCommands () Rimuovi tutti i comandi dallo scheduler |
void | run () Il blocco di esecuzione principale di questo thread. |
void | setClearcutClient (ClearcutClient client) Impostare il client per segnalare i dati del cablaggio |
boolean | shouldShutdownOnCmdfileError () Restituisce true se è necessario arrestare lo scheduler in caso di errori di comando |
void | shutdown (boolean notifyStop) Tentativo di arrestare correttamente lo scheduler dei comandi. |
void | shutdownHard (boolean killAdb) Tentativo di arresto forzato dell'utilità di pianificazione dei comandi. |
void | shutdownHard () Tentativo di arresto forzato dell'utilità di pianificazione dei comandi. |
void | shutdownOnEmpty () Simile a |
void | start () Avvia lo scheduler inclusa la configurazione della registrazione, init di |
boolean | stopInvocation ( ITestInvocation invocation) Arrestare una chiamata in esecuzione. |
boolean | stopInvocation (int invocationId, String cause) Arrestare una chiamata in esecuzione specificandone l'id. |
Costruttori pubblici
CommandScheduler
public CommandScheduler ()
Crea un CommandScheduler
.
Nota: start deve essere richiamato 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 i suoi argomenti associati.
Se viene specificato l'argomento "--help", il testo di aiuto per la configurazione verrà inviato a stdout. In caso contrario, la configurazione verrà aggiunta alla coda per l'esecuzione.
Parametri | |
---|---|
args | String : gli argomenti di configurazione. |
ritorna | |
---|---|
Pair <Boolean, Integer> | Una coppia di valori, il primo valore è un booleano true se il comando è stato aggiunto correttamente. Il secondo valore è l'ID tracker comando noto (valore non negativo) se il comando è stato aggiunto correttamente, restituisce 0 quando il comando viene aggiunto per tutti i dispositivi, altrimenti -1. |
Getta | |
---|---|
ConfigurationException |
addCommandFile
public void addCommandFile (String cmdFilePath,extraArgs)
Aggiunge tutti i comandi dal file specificato allo scheduler
Parametri | |
---|---|
cmdFilePath | String : il percorso del filesystem del file comand |
extraArgs | ERROR(/List) di argomenti ERROR(/String) da aggiungere a ciascun comando analizzato dal file. Può essere vuoto ma non deve essere nullo. |
Getta | |
---|---|
ConfigurationException |
aspetta
public void await ()
Attende che lo scheduler inizi a funzionare, inclusa l'attesa del completamento del trasferimento dal vecchio TF, 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 |
ritorna | |
---|---|
TradefedDelegator |
Getta | |
---|---|
| com.android.tradefed.config.ConfigurationException |
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 |
ritorna | |
---|---|
createSandbox
public ISandbox createSandbox ()
Crea un ISandbox
che verrà utilizzato dall'invocazione per l'esecuzione.
ritorna | |
---|---|
ISandbox |
displayCommandQueue
public void displayCommandQueue (PrintWriter printWriter)
Genera informazioni di debug dettagliate sullo stato della coda di esecuzione dei comandi.
displayCommandsInfo
public void displayCommandsInfo (PrintWriter printWriter, String regex)
Produce un elenco di comandi correnti.
Parametri | |
---|---|
printWriter | PrintWriter : l' ERROR(/PrintWriter) in cui eseguire l'output. |
regex | String : l'espressione regolare a cui i comandi devono essere abbinati per essere stampati. Se nullo, verranno stampati tutti i comandi. |
displayInvocationsInfo
public void displayInvocationsInfo (PrintWriter printWriter)
Visualizza un elenco di chiamate correnti.
Parametri | |
---|---|
printWriter | PrintWriter : l' ERROR(/PrintWriter) in cui eseguire l'output. |
dumpCommandsXml
public void dumpCommandsXml (PrintWriter printWriter, String regex)
Scarica il file xml espanso per il comando con tutti i valori Option
specificati per tutti i comandi correnti.
Parametri | |
---|---|
printWriter | PrintWriter : l' ERROR(/PrintWriter) a cui restituire lo stato. |
regex | String : l'espressione regolare a cui i comandi devono essere abbinati per eseguire il dump del file xml. Se nullo, tutti i comandi verranno scaricati. |
execCommand
public long execCommand (ICommandScheduler.IScheduledInvocationListener listener,reservedDevices, String[] args)
Esegui direttamente il comando su dispositivi già allocati.
Parametri | |
---|---|
listener | ICommandScheduler.IScheduledInvocationListener : ICommandScheduler.IScheduledInvocationListener da informare |
reservedDevices | ERROR(/List ) ERROR(/List ) da usare |
args | String : gli argomenti del comando |
ritorna | |
---|---|
long | L'id di chiamata del comando pianificato. |
Getta | |
---|---|
ConfigurationException |
execCommand
public long execCommand (IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Alloca direttamente un dispositivo ed esegue un comando senza aggiungerlo alla coda comandi usando un IInvocationContext
già esistente.
Parametri | |
---|---|
context | IInvocationContext : un IInvocationContext esistente . |
listener | ICommandScheduler.IScheduledInvocationListener : ICommandScheduler.IScheduledInvocationListener da informare |
args | String : gli argomenti del comando |
ritorna | |
---|---|
long |
Getta | |
---|---|
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 : ICommandScheduler.IScheduledInvocationListener da informare |
args | String : gli argomenti del comando |
ritorna | |
---|---|
long | L'id di chiamata del comando pianificato. |
Getta | |
---|---|
ConfigurationException | |
NoDeviceException |
getCommandFileWatcher
public CommandFileWatcher getCommandFileWatcher ()
Ottieni il CommandFileWatcher
appropriato per questo programma di pianificazione
ritorna | |
---|---|
CommandFileWatcher |
getExecutingCommandCount
public int getExecutingCommandCount ()
Restituisce il numero di comandi in stato di esecuzione.
ritorna | |
---|---|
int |
getInvocationInfo
public String getInvocationInfo (int invocationId)
Restituisce le informazioni su una chiamata bu specificando l'ID chiamata.
Parametri | |
---|---|
invocationId | int : l'ID di tracciamento dell'invocazione. |
ritorna | |
---|---|
String | Un ERROR(/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 è stata ancora eseguita alcuna chiamata.
ritorna | |
---|---|
CommandRunner.ExitCode |
getLastInvocationThrowable
public Throwable getLastInvocationThrowable ()
Restituisce ERROR(/Throwable)
dall'ultima chiamata eseguita. Restituisci null, se non è disponibile alcun gettabile.
ritorna | |
---|---|
Throwable |
getReadyCommandCount
public int getReadyCommandCount ()
Restituisce il numero di comandi in stato pronto nella coda.
ritorna | |
---|---|
int |
getShutdownTimeout
public long getShutdownTimeout ()
ritorna | |
---|---|
long |
isDeviceInInvocationThread
public boolean isDeviceInInvocationThread (ITestDevice device)
Restituisce true se il dispositivo è utilizzato da un thread di chiamata attivo.
Parametri | |
---|---|
device | ITestDevice |
ritorna | |
---|---|
boolean |
notifyFileChanged
public void notifyFileChanged (File cmdFile,extraArgs)
Parametri | |
---|---|
cmdFile | File |
extraArgs |
removeAllCommands
public void removeAllCommands ()
Rimuovi tutti i comandi dallo scheduler
correre
public void run ()
Il blocco di esecuzione principale di questo thread.
setClearcutClient
public void setClearcutClient (ClearcutClient client)
Impostare il client per segnalare i dati del cablaggio
Parametri | |
---|---|
client | ClearcutClient |
shouldShutdownOnCmdfileError
public boolean shouldShutdownOnCmdfileError ()
Restituisce true se è necessario arrestare lo scheduler in caso di errori di comando
ritorna | |
---|---|
boolean |
fermare
public void shutdown (boolean notifyStop)
Tentativo di arrestare correttamente lo scheduler dei comandi.
Parametri | |
---|---|
notifyStop | boolean : se true, notifica le invocazioni dell'arresto di TF. |
shutdownHard
public void shutdownHard (boolean killAdb)
Tentativo di arresto forzato dell'utilità di pianificazione dei comandi.
Simile a shutdown()
, ma facoltativamente interromperà anche la connessione adb, nel tentativo di "ispirare" le chiamate in corso per un completamento più rapido.
Parametri | |
---|---|
killAdb | boolean |
shutdownHard
public void shutdownHard ()
Tentativo di arresto forzato dell'utilità di pianificazione dei comandi. Uguale a shutdownHard(true).
shutdownOnEmpty
public void shutdownOnEmpty ()
Simile a shutdown()
, ma attenderà invece l'esecuzione di tutti i comandi prima di uscire.
inizio
public void start ()
Avvia lo scheduler inclusa la configurazione della registrazione, init di DeviceManager
ecc
stopInvocazione
public boolean stopInvocation (ITestInvocation invocation)
Arrestare una chiamata in esecuzione.
Parametri | |
---|---|
invocation | ITestInvocation |
ritorna | |
---|---|
boolean | true se l'invocazione è stata interrotta, false in caso contrario |
stopInvocazione
public boolean stopInvocation (int invocationId, String cause)
Arrestare una chiamata in esecuzione specificandone l'id.
Parametri | |
---|---|
invocationId | int : l'ID di tracciamento dell'invocazione. |
cause | String : la causa dell'interruzione dell'invocazione. |
ritorna | |
---|---|
boolean | true se l'invocazione è stata interrotta, false in caso contrario |
Metodi protetti
ripulire
protected void cleanUp ()
Chiude i registri ed esegue qualsiasi altra pulizia necessaria prima di uscire.
Esposto in modo che i test unitari possano deridere.
createConfiguration
protected IConfiguration createConfiguration (String[] args)
Parametri | |
---|---|
args | String |
ritorna | |
---|---|
IConfiguration |
Getta | |
---|---|
ConfigurationException |
createInvocationContext
protected IInvocationContext createInvocationContext ()
ritorna | |
---|---|
IInvocationContext |
execCommand
protected long execCommand (IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener,reservedDevices, String[] args)
Parametri | |
---|---|
context | IInvocationContext |
listener | ICommandScheduler.IScheduledInvocationListener |
reservedDevices | |
args | String |
ritorna | |
---|---|
long |
Getta | |
---|---|
ConfigurationException |
getConfigFactory
protected IConfigurationFactory getConfigFactory ()
Metodo Factory per ottenere un riferimento a IConfigurationFactory
ritorna | |
---|---|
IConfigurationFactory | IConfigurationFactory da usare |
getDeviceManagementServer
protected DeviceManagementGrpcServer getDeviceManagementServer ()
ritorna | |
---|---|
DeviceManagementGrpcServer |
getDeviceManager
protected IDeviceManager getDeviceManager ()
Metodo factory per ottenere un riferimento a IDeviceManager
ritorna | |
---|---|
IDeviceManager | l' IDeviceManager da utilizzare |
getKeyStoreClient
protected IKeyStoreClient getKeyStoreClient ()
Recupera un IKeyStoreClient
usando IKeyStoreFactory
dichiarato in IGlobalConfiguration
o null se non ne è definito nessuno.
ritorna | |
---|---|
IKeyStoreClient | IKeyStoreClient |
getTestInvocationManagementServer
protected TestInvocationManagementServer getTestInvocationManagementServer ()
ritorna | |
---|---|
TestInvocationManagementServer |
initLogging
protected void initLogging ()
Inizializza il registro ddmlib.
Esposto in modo che i test unitari possano deridere.
isSpegnimento
protected boolean isShutdown ()
ritorna | |
---|---|
boolean |
isShuttingDown
protected boolean isShuttingDown ()
ritorna | |
---|---|
boolean |
processReadyCommands
protected void processReadyCommands (IDeviceManager manager)
Parametri | |
---|---|
manager | IDeviceManager |