CommandScheduler
public class CommandScheduler
extends Object
implements ICommandScheduler
java.lang.Object | |
↳ | com.android.tradefed.command.CommandScheduler |
Uno scheduler per l'esecuzione dei comandi TradeFederation su tutti i dispositivi disponibili.
Tenterà di dare priorità ai comandi da eseguire in base al conteggio totale del tempo di esecuzione. ad esempio, ai comandi poco frequenti o ad esecuzione rapida verrà assegnata la priorità rispetto ai comandi a esecuzione prolungata.
Funziona sempre in background fino allo spegnimento.
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 l'avvio dell'esecuzione dello scheduler, inclusa l'attesa del completamento del trasferimento dalla vecchia TF, se applicabile. |
static TradefedDelegator | checkDelegation (String[] args) Crea un delegante basato sulla 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 () Creare un |
void | displayCommandQueue (PrintWriter printWriter) Emette informazioni di debug dettagliate sullo stato della coda di esecuzione dei comandi. |
void | displayCommandsInfo (PrintWriter printWriter, String regex) Genera un elenco dei comandi correnti. |
void | displayInvocationsInfo (PrintWriter printWriter) Visualizza un elenco delle invocazioni 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) Esegue direttamente il comando sui dispositivi già assegnati. |
long | execCommand ( IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, String[] args) Assegna direttamente un dispositivo ed esegue un comando senza aggiungerlo alla coda dei comandi utilizzando un |
long | execCommand ( ICommandScheduler.IScheduledInvocationListener listener, String[] args) Assegna 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 invocazione specificando l'id di invocazione. |
CommandRunner.ExitCode | getLastInvocationExitCode () Restituisce il codice di errore dell'ultima invocazione eseguita. |
Throwable | getLastInvocationThrowable () Restituisce il |
int | getReadyCommandCount () Restituisce il numero di comandi in stato pronto nella coda. |
long | getShutdownTimeout () |
boolean | isDeviceInInvocationThread ( ITestDevice device) Restituisce vero se il dispositivo viene utilizzato da un thread di chiamata attivo. |
boolean | isShuttingDown () |
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) Imposta il client per segnalare i dati di cablaggio |
boolean | shouldShutdownOnCmdfileError () Restituisce vero se è necessario arrestare lo scheduler in caso di errori di comando |
void | shutdown (boolean notifyStop) Tentare di arrestare normalmente il pianificatore dei comandi. |
void | shutdownHard (boolean killAdb) Tentare di arrestare forzatamente il pianificatore dei comandi. |
void | shutdownHard () Tentare di arrestare forzatamente il pianificatore dei comandi. |
void | shutdownOnEmpty () Simile a |
void | start () Avvia lo scheduler inclusa l'impostazione della registrazione, l'inizializzazione di |
boolean | stopInvocation ( ITestInvocation invocation) Arresta un'invocazione in esecuzione. |
boolean | stopInvocation (int invocationId, String cause) Arresta un'invocazione in esecuzione specificandone l'id. |
void | stopScheduling () Interrompe la pianificazione e l'accettazione di nuovi test ma non interrompe Tradefed. |
Costruttori pubblici
CommandScheduler
public CommandScheduler ()
Crea un CommandScheduler
.
Nota: lo start deve essere chiamato 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 della guida per la configurazione verrà inviato allo stdout. Altrimenti, 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 valore booleano true se il comando è stato aggiunto correttamente. Il secondo valore è l'ID noto del tracker del comando (valore non negativo) se il comando è stato aggiunto correttamente, restituisce 0 quando il comando viene aggiunto per tutti i dispositivi, altrimenti -1. |
Lancia | |
---|---|
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 di comando |
extraArgs | ERROR(/List) di argomenti String da aggiungere a ciascun comando analizzato dal file. Può essere vuoto ma non deve essere nullo. |
Lancia | |
---|---|
ConfigurationException |
attendere
public void await ()
Attende l'avvio dell'esecuzione dello scheduler, inclusa l'attesa del completamento del trasferimento dalla vecchia TF, se applicabile.
checkDelegazione
public static TradefedDelegator checkDelegation (String[] args)
Crea un delegante basato sulla riga di comando per vedere se dobbiamo delegare l'esecuzione.
Parametri | |
---|---|
args | String |
ritorna | |
---|---|
TradefedDelegator |
Lancia | |
---|---|
| 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 | |
---|---|
creareSandbox
public ISandbox createSandbox ()
Creare un ISandbox
che verrà utilizzato dalla chiamata per l'esecuzione.
ritorna | |
---|---|
ISandbox |
displayCommandQueue
public void displayCommandQueue (PrintWriter printWriter)
Emette informazioni di debug dettagliate sullo stato della coda di esecuzione dei comandi.
displayCommandsInfo
public void displayCommandsInfo (PrintWriter printWriter, String regex)
Genera un elenco dei comandi correnti.
Parametri | |
---|---|
printWriter | PrintWriter : l' ERROR(/PrintWriter) su cui eseguire l'output. |
regex | String : l'espressione regolare a cui devono essere abbinati i comandi per poter essere stampati. Se null, verranno stampati tutti i comandi. |
displayInvocationsInfo
public void displayInvocationsInfo (PrintWriter printWriter)
Visualizza un elenco delle invocazioni correnti.
Parametri | |
---|---|
printWriter | PrintWriter : l' ERROR(/PrintWriter) su 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 inviare lo stato. |
regex | String : l'espressione regolare a cui devono essere abbinati i comandi affinché il file xml venga scaricato. Se null, tutti i comandi verranno scaricati. |
execCommand
public long execCommand (ICommandScheduler.IScheduledInvocationListener listener,reservedDevices, String[] args)
Esegue direttamente il comando sui dispositivi già assegnati.
Parametri | |
---|---|
listener | ICommandScheduler.IScheduledInvocationListener : l' ICommandScheduler.IScheduledInvocationListener da informare |
reservedDevices | ERROR(/List ) ERROR(/List ) da utilizzare |
args | String : gli argomenti del comando |
ritorna | |
---|---|
long | L'ID di invocazione del comando pianificato. |
Lancia | |
---|---|
ConfigurationException |
execCommand
public long execCommand (IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Assegna 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 : l' ICommandScheduler.IScheduledInvocationListener da informare |
args | String : gli argomenti del comando |
ritorna | |
---|---|
long |
Lancia | |
---|---|
ConfigurationException | |
NoDeviceException |
execCommand
public long execCommand (ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Assegna direttamente un dispositivo ed esegue un comando senza aggiungerlo alla coda dei comandi.
Parametri | |
---|---|
listener | ICommandScheduler.IScheduledInvocationListener : l' ICommandScheduler.IScheduledInvocationListener da informare |
args | String : gli argomenti del comando |
ritorna | |
---|---|
long | L'ID di invocazione del comando pianificato. |
Lancia | |
---|---|
ConfigurationException | |
NoDeviceException |
getCommandFileWatcher
public CommandFileWatcher getCommandFileWatcher ()
Ottieni il CommandFileWatcher appropriato per questo scheduler
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 un bu di invocazione specificando l'id di invocazione.
Parametri | |
---|---|
invocationId | int : l'ID di tracciamento dell'invocazione. |
ritorna | |
---|---|
String | Una String contenente informazioni sull'invocazione. |
getLastInvocationExitCode
public CommandRunner.ExitCode getLastInvocationExitCode ()
Restituisce il codice di errore dell'ultima invocazione eseguita. Restituisce 0 (nessun errore), se non è stata ancora eseguita alcuna invocazione.
ritorna | |
---|---|
CommandRunner.ExitCode |
getLastInvocationThrowable
public Throwable getLastInvocationThrowable ()
Restituisce il Throwable
dall'ultima invocazione eseguita. Restituisce null, se non è disponibile alcun oggetto lanciabile.
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 vero se il dispositivo viene utilizzato da un thread di chiamata attivo.
Parametri | |
---|---|
device | ITestDevice |
ritorna | |
---|---|
boolean |
si sta spegnendo
public boolean isShuttingDown ()
ritorna | |
---|---|
boolean |
notifyFileChanged
public void notifyFileChanged (File cmdFile,extraArgs)
Parametri | |
---|---|
cmdFile | File |
extraArgs |
rimuovi tutti i comandi
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)
Imposta il client per segnalare i dati di cablaggio
Parametri | |
---|---|
client | ClearcutClient |
dovrebbeShutdownOnCmdfileError
public boolean shouldShutdownOnCmdfileError ()
Restituisce vero se è necessario arrestare lo scheduler in caso di errori di comando
ritorna | |
---|---|
boolean |
fermare
public void shutdown (boolean notifyStop)
Tentare di arrestare normalmente il pianificatore dei comandi.
Parametri | |
---|---|
notifyStop | boolean : se vero, notifica le invocazioni dell'arresto di TF. |
shutdownDifficile
public void shutdownHard (boolean killAdb)
Tentare di arrestare forzatamente il pianificatore dei comandi.
Simile a shutdown()
, ma facoltativamente ucciderà anche la connessione adb, nel tentativo di "ispirare" le invocazioni in corso per completarle più rapidamente.
Parametri | |
---|---|
killAdb | boolean |
shutdownDifficile
public void shutdownHard ()
Tentare di arrestare forzatamente il pianificatore dei comandi. Uguale a shutdownHard(true).
shutdownOnEmpty
public void shutdownOnEmpty ()
Simile a shutdown()
, ma attenderà invece che tutti i comandi vengano eseguiti prima di uscire.
inizio
public void start ()
Avvia lo scheduler inclusa l'impostazione della registrazione, l'inizializzazione di DeviceManager
ecc
stopInvocation
public boolean stopInvocation (ITestInvocation invocation)
Arresta un'invocazione in esecuzione.
Parametri | |
---|---|
invocation | ITestInvocation |
ritorna | |
---|---|
boolean | true se l'invocazione è stata interrotta, false altrimenti |
stopInvocation
public boolean stopInvocation (int invocationId, String cause)
Arresta un'invocazione 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 altrimenti |
stopScheduling
public void stopScheduling ()
Interrompe la pianificazione e l'accettazione di nuovi test ma non interrompe Tradefed. Questo ha lo scopo di consentire un arresto in due passaggi in cui prima eliminiamo tutti i test in esecuzione, quindi terminiamo il processo Tradefed.
Metodi protetti
ripulire
protected void cleanUp ()
Chiude i log 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 |
Lancia | |
---|---|
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 |
Lancia | |
---|---|
ConfigurationException |
getConfigFactory
protected IConfigurationFactory getConfigFactory ()
Metodo Factory per ottenere un riferimento a IConfigurationFactory
ritorna | |
---|---|
IConfigurationFactory | l' IConfigurationFactory da utilizzare |
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
utilizzando 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.
èSpegnimento
protected boolean isShutdown ()
ritorna | |
---|---|
boolean |
processReadyCommands
protected void processReadyCommands (IDeviceManager manager)
Parametri | |
---|---|
manager | IDeviceManager |