CommandScheduler

public class CommandScheduler
extends Thread implements ICommandScheduler

java.lang.Object
   ↳ java.lang.Thread
     ↳ 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 CommandScheduler.

Metodi pubblici

Pair<Boolean, Integer> addCommand(String[] args)

Aggiunge un comando al programma di pianificazione.

void addCommandFile(String cmdFilePath, List<String> extraArgs)

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 Map<ITestDeviceFreeDeviceState> 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 ISandbox che l'invocazione utilizzerà per l'esecuzione.

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

long execCommand(ICommandScheduler.IScheduledInvocationListener listener, ITestDevice device, String[] args)

Esegui direttamente il comando sul dispositivo già allocato.

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.

long execCommand(ICommandScheduler.IScheduledInvocationListener listener, String[] args)

Alloca direttamente un dispositivo ed esegue un comando senza aggiungerlo alla coda dei comandi.

long execCommand(ICommandScheduler.IScheduledInvocationListener listener, List<ITestDevice> reservedDevices, String[] args)

Esegui direttamente il comando sui dispositivi già allocati.

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

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, List<String> extraArgs)
void removeAllCommands()

Rimuovi tutti i comandi dal pianificatore

void run()

Il blocco di esecuzione principale di questo thread.

void setClearcutClient(ClearcutClient client)

Imposta il client in modo che generi report sui dati del cablaggio

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

void start()

Avvia la pianificazione, inclusa la configurazione della registrazione, l'inizializzazione di DeviceManager e così via

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 arresta 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 determinato comando è una simulazione.

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

Metodo di fabbrica per ottenere un riferimento a IConfigurationFactory

DeviceManagementGrpcServer getDeviceManagementServer()
IDeviceManager getDeviceManager()

Metodo di fabbrica per ottenere un riferimento a IDeviceManager

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

Recupera un IKeyStoreClient utilizzando IKeyStoreFactory dichiarato in ERROR(/IGlobalConfiguration) o null se non è definito alcun valore.

TestInvocationManagementServer getTestInvocationManagementServer()
void initLogging()

Inizializza il log ddmlib.

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

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.

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

Genera
ConfigurationException

addCommandFile

public void addCommandFile (String cmdFilePath, 
                List<String> extraArgs)

Aggiunge tutti i comandi del file specificato allo scheduler

Parametri
cmdFilePath String: il percorso del file system del file di comando

extraArgs List: un List di String argomenti da aggiungere a ogni comando analizzato dal file. Può essere vuoto, ma non nullo.

Genera
ConfigurationException

attesa

public void await ()

Attende l'avvio dello scheduler, inclusa l'attesa del completamento del trasferimento dal vecchio TF, se applicabile.

Genera
InterruptedException

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

Resi
TradefedDelegator

Genera
com.android.tradefed.config.ConfigurationException
ConfigurationException

createReleaseMap

public static Map<ITestDeviceFreeDeviceState> createReleaseMap (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

Resi
Map<ITestDeviceFreeDeviceState>

createSandbox

public ISandbox createSandbox ()

Crea un ISandbox che l'invocazione utilizzerà per l'esecuzione.

Resi
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 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 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 PrintWriter in cui restituire lo stato.

regex String: l'espressione regolare a cui devono corrispondere i comandi affinché il file XML venga scaricato. 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

Resi
long L'ID invocazione del comando pianificato.

Genera
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

Resi
long

Genera
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

Resi
long L'ID invocazione del comando pianificato.

Genera
ConfigurationException
NoDeviceException

execCommand

public long execCommand (ICommandScheduler.IScheduledInvocationListener listener, 
                List<ITestDevice> reservedDevices, 
                String[] args)

Esegui direttamente il comando sui dispositivi già allocati.

Parametri
listener ICommandScheduler.IScheduledInvocationListener: il ICommandScheduler.IScheduledInvocationListener da informare

reservedDevices List: il ERROR(/List) da utilizzare

args String: gli argomenti del comando

Resi
long L'ID invocazione del comando pianificato.

Genera
ConfigurationException

getCommandFileWatcher

public CommandFileWatcher getCommandFileWatcher ()

Ottieni CommandFileWatcher appropriato per questo scheduler

Resi
CommandFileWatcher

getExecutingCommandCount

public int getExecutingCommandCount ()

Restituisce il numero di comandi nello stato di esecuzione.

Resi
int

getHostState

public CommandScheduler.HostState getHostState ()

Resi
CommandScheduler.HostState

getInvocationInfo

public String getInvocationInfo (int invocationId)

Restituisce le informazioni su una chiamata specificando l'ID chiamata.

Parametri
invocationId int: l'ID monitoraggio dell'invocazione.

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

Resi
CommandRunner.ExitCode

getLastInvocationThrowable

public Throwable getLastInvocationThrowable ()

Restituisce Throwable dall'ultima chiamata eseguita. Restituisce null se non è disponibile alcun throwable.

Resi
Throwable

getReadyCommandCount

public int getReadyCommandCount ()

Restituisce il numero di comandi in stato pronto nella coda.

Resi
int

getShutdownTimeout

public long getShutdownTimeout ()

Resi
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

Resi
boolean

isShuttingDown

public boolean isShuttingDown ()

Resi
boolean

notifyFileChanged

public void notifyFileChanged (File cmdFile, 
                List<String> extraArgs)

Parametri
cmdFile File

extraArgs List

removeAllCommands

public void removeAllCommands ()

Rimuovi 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 in modo che generi report sui dati del cablaggio

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

Resi
boolean

shutdown

public void shutdown (boolean notifyStop)

Tenta di arrestare normalmente lo scheduler dei comandi.

Parametri
notifyStop boolean: se true, invia una notifica alle chiamate di 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.

start

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

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

Resi
boolean true se la chiamata è stata interrotta, false in caso contrario

stopScheduling

public void stopScheduling ()

Interrompe la pianificazione e l'accettazione di nuovi test, ma non arresta Tradefed. Lo scopo è quello di consentire un arresto in due passaggi in cui prima vengono svuotati tutti i test in esecuzione, poi 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

Resi
IConfiguration

Genera
ConfigurationException

createInvocationContext

protected IInvocationContext createInvocationContext ()

Resi
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

Resi
void true se il comando è un dry run, false in caso contrario.

Genera
com.android.tradefed.config.ConfigurationException
ConfigurationException

execCommand

protected long execCommand (IInvocationContext context, 
                ICommandScheduler.IScheduledInvocationListener listener, 
                List<ITestDevice> reservedDevices, 
                String[] args)

Parametri
context IInvocationContext

listener ICommandScheduler.IScheduledInvocationListener

reservedDevices List

args String

Resi
long

Genera
ConfigurationException

getConfigFactory

protected IConfigurationFactory getConfigFactory ()

Metodo di fabbrica per ottenere un riferimento a IConfigurationFactory

Resi
IConfigurationFactory IConfigurationFactory da utilizzare

getDeviceManagementServer

protected DeviceManagementGrpcServer getDeviceManagementServer ()

Resi
DeviceManagementGrpcServer

getDeviceManager

protected IDeviceManager getDeviceManager ()

Metodo di fabbrica per ottenere un riferimento a IDeviceManager

Resi
IDeviceManager IDeviceManager da utilizzare

getFeatureServer

protected TradefedFeatureServer getFeatureServer ()

Resi
TradefedFeatureServer

getHostOptions

protected IHostOptions getHostOptions ()

Resi
IHostOptions

getKeyStoreClient

protected IKeyStoreClient getKeyStoreClient ()

Recupera un IKeyStoreClient utilizzando IKeyStoreFactory dichiarato in ERROR(/IGlobalConfiguration) o null se non è definito alcun valore.

Resi
IKeyStoreClient IKeyStoreClient

getTestInvocationManagementServer

protected TestInvocationManagementServer getTestInvocationManagementServer ()

Resi
TestInvocationManagementServer

initLogging

protected void initLogging ()

Inizializza il log ddmlib.

Esposto in modo che i test delle unità possano simulare.

isShutdown

protected boolean isShutdown ()

Resi
boolean

processReadyCommands

protected void processReadyCommands (IDeviceManager manager)

Parametri
manager IDeviceManager

shouldMarkReleased

protected boolean shouldMarkReleased ()

Resi
boolean