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

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

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

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 programma di pianificazione

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 ERROR(/Throwable) dall'ultima chiamata eseguita.

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 shutdown() , ma attenderà invece l'esecuzione di tutti i comandi prima di uscire.

void start ()

Avvia lo scheduler inclusa la configurazione della registrazione, init di DeviceManager ecc

boolean stopInvocation ( ITestInvocation invocation)

Arrestare una chiamata in esecuzione.

boolean stopInvocation (int invocationId, String cause)

Arrestare una chiamata in esecuzione specificandone l'id.

Metodi protetti

void cleanUp ()

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

IConfiguration createConfiguration (String[] args)
IInvocationContext createInvocationContext ()
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 usando IKeyStoreFactory dichiarato in IGlobalConfiguration o null se non ne è definito nessuno.

TestInvocationManagementServer getTestInvocationManagementServer ()
void initLogging ()

Inizializza il registro ddmlib.

boolean isShutdown ()
boolean isShuttingDown ()
void processReadyCommands ( IDeviceManager manager)

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 : un 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 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

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 : l' 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

getHostState

public CommandScheduler.HostState getHostState ()

ritorna
CommandScheduler.HostState

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.

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

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

getFeatureServer

protected TradefedFeatureServer getFeatureServer ()

ritorna
TradefedFeatureServer

getHostOptions

protected IHostOptions getHostOptions ()

ritorna
IHostOptions

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