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 CommandScheduler .

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 ISandbox che verrà utilizzato dalla chiamata per l'esecuzione.

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 Option specificati per tutti i comandi correnti.

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 IInvocationContext già esistente.

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 Throwable dall'ultima invocazione eseguita.

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 shutdown() , ma attenderà invece che tutti i comandi vengano eseguiti prima di uscire.

void start ()

Avvia lo scheduler inclusa l'impostazione della registrazione, l'inizializzazione di DeviceManager ecc

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.

Metodi protetti

void cleanUp ()

Chiude i log ed esegue qualsiasi altra pulizia necessaria prima di uscire.

IConfiguration createConfiguration (String[] args)
IInvocationContext createInvocationContext ()
void dryRunCommandReporting ( ICommandScheduler.IScheduledInvocationListener handler, IConfiguration config)

Determina se un dato comando è un'esecuzione di prova.

long execCommand ( IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, reservedDevices, String[] args) execCommand ( IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, reservedDevices, String[] args)
IConfigurationFactory getConfigFactory ()

Metodo Factory per ottenere un riferimento a IConfigurationFactory

DeviceManagementGrpcServer getDeviceManagementServer ()
IDeviceManager getDeviceManager ()

Metodo factory per ottenere un riferimento a IDeviceManager

TradefedFeatureServer getFeatureServer ()
IHostOptions getHostOptions ()
IKeyStoreClient getKeyStoreClient ()

Recupera un IKeyStoreClient utilizzando IKeyStoreFactory dichiarato in IGlobalConfiguration o null se non ne è definito nessuno.

TestInvocationManagementServer getTestInvocationManagementServer ()
void initLogging ()

Inizializza il registro ddmlib.

boolean isShutdown ()
void processReadyCommands ( IDeviceManager manager)

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 : un 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 static  createReleaseMap (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 : l' ERROR(/List ) ERROR(/List ) usare

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

getHostState

public CommandScheduler.HostState getHostState ()

ritorna
CommandScheduler.HostState

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.

Tieni presente che se qualche comando è in modalità loop, lo scheduler non uscirà mai.

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

dryRunCommandReporting

protected void dryRunCommandReporting (ICommandScheduler.IScheduledInvocationListener handler, 
                IConfiguration config)

Determina se un dato comando è un'esecuzione di prova. Se il comando è un'esecuzione di prova, convalidarlo. Se sono presenti problemi di configurazione, verrà generata una ConfigurationException.

Parametri
handler ICommandScheduler.IScheduledInvocationListener : ERROR(/InvocationEventHandler) per segnalare eventi per la convalida dell'esecuzione di prova.

config IConfiguration

ritorna
void true se il comando è un'esecuzione di prova, false altrimenti.

Lancia
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

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

getFeatureServer

protected TradefedFeatureServer getFeatureServer ()

ritorna
TradefedFeatureServer

getHostOptions

protected IHostOptions getHostOptions ()

ritorna
IHostOptions

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