CommandScheduler

public class CommandScheduler
extends Object implements ICommandScheduler

java.lang.Object
   ↳ com.android.tradefed.command.CommandScheduler


Un programmatore per l'esecuzione dei comandi TradeFederation su tutti i dispositivi disponibili.

Cercherà di dare la priorità ai comandi da eseguire in base a un conteggio totale del tempo di esecuzione. Ad esempio, i comandi con esecuzione frequente o rapida avranno la priorità sui comandi con esecuzione lunga.

Viene eseguito in background fino all'arresto.

Riepilogo

Classi nidificate

enum CommandScheduler.HostState

Enum di diversi stati dell'host  

Costruttori pubblici

CommandScheduler()

Crea un CommandScheduler.

Metodi pubblici

boolean addCommand(String[] args)

Aggiunge un comando al programma di pianificazione.

void addCommandFile(String cmdFilePath, extraArgs)

Aggiunge tutti i comandi del file specificato all'organizzatore

void await()

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

static TradefedDelegator checkDelegation(String[] args)

Crea un delegante basato sulla riga di comando per verificare se è necessario delegare l'esecuzione.

void completeHandover()

Informa lo scheduler dei comandi che una sequenza di trasferimento avviata è completamente completata e che deve inizializzare nuovamente il gestore remoto sulla porta predefinita.

static 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 verrà utilizzato dall'esecuzione dell'invocazione.

void displayCommandQueue(PrintWriter printWriter)

Mostra informazioni di debug dettagliate sullo stato della coda di esecuzione dei comandi.

void displayCommandsInfo(PrintWriter printWriter, String regex)

Stampa un elenco dei comandi correnti.

void displayInvocationsInfo(PrintWriter printWriter)

Visualizza un elenco delle chiamate correnti.

void dumpCommandsXml(PrintWriter printWriter, String regex)

Esegui il dump del file XML espanso per il comando con tutti Option valori specificati per tutti i comandi correnti.

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

Esegui direttamente il comando sul dispositivo già allocato.

void execCommand(IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, String[] args)

Alloca direttamente un dispositivo ed esegue un comando senza aggiungerlo alla coda dei comandi utilizzando un IInvocationContext già esistente.

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

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

CommandFileWatcher getCommandFileWatcher()

Ottieni il valore CommandFileWatcher appropriato per questo programmatore

int getExecutingCommandCount()

Restituisce il numero di comandi in stato di esecuzione.

CommandScheduler.HostState getHostState()
String getInvocationInfo(int invocationId)

Restituisce le informazioni su un'invocazione specificando l'ID di 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 di attesa nella coda.

long getShutdownTimeout()
void handoverInitiationComplete()

Comunica allo scheduler dei comandi che lo scambio iniziale dei dispositivi e dei comandi in uso è stato completato e che può iniziare l'operazione di pianificazione.

boolean handoverShutdown(int handoverPort)

Avvia un shutdown() e il trasferimento a un'altra procedura di importazione dei dati commerciali sullo stesso host.

void notifyFileChanged(File cmdFile, extraArgs)
void removeAllCommands()

Rimuovi tutti i comandi dal programmatore

void run()

Il blocco di esecuzione principale di questo thread.

void setClearcutClient(ClearcutClient client)

Impostare il client in modo che registri i dati del cablaggio

boolean shouldShutdownOnCmdfileError()

Restituisce true se è necessario arrestare il programma di pianificazione in caso di errori di comando

void shutdown()

Prova ad arrestare in modo corretto lo scheduler dei comandi.

void shutdownHard(boolean killAdb)

Tenta di arrestare forzatamente il programmatore dei comandi.

void shutdownHard()

Tenta di arrestare forzatamente il programmatore dei comandi.

void shutdownOnEmpty()

È simile a shutdown(), ma attende l'esecuzione di tutti i comandi prima di uscire.

void start()

Avvia il programmatore, inclusa la configurazione del logging, l'inizializzazione di DeviceManager e così via

boolean stopInvocation(ITestInvocation invocation)

Interrompi un'invocazione in esecuzione.

boolean stopInvocation(int invocationId, String cause)

Interrompi un'invocazione in esecuzione specificandone l'ID.

Metodi protetti

void cleanUp()

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

IConfiguration createConfiguration(String[] args)
IInvocationContext createInvocationContext()
IConfigurationFactory getConfigFactory()

Metodo di fabbrica per ottenere un riferimento a IConfigurationFactory

IDeviceManager getDeviceManager()

Metodo di fabbrica per ottenere un riferimento a IDeviceManager

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

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

void initLogging()

Inizializza il log ddmlib.

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

Attendi il completamento di tutti i thread di chiamata.

Costruttori pubblici

CommandScheduler

public CommandScheduler ()

Crea un CommandScheduler.

Nota: start deve essere chiamato prima dell'uso.

Metodi pubblici

addCommand

public boolean addCommand (String[] args)

Aggiunge un comando al programma di pianificazione.

Un comando è essenzialmente un'istanza di una configurazione da eseguire e dei relativi argomenti associati.

Se viene specificato l'argomento "--help", il testo della guida per la configurazione verrà visualizzato in output. In caso contrario, la configurazione verrà aggiunta alla coda per essere eseguita.

Parametri
args String: gli argomenti di configurazione.

Ritorni
boolean true se il comando è stato aggiunto correttamente

Lanci
ConfigurationException

addCommandFile

public void addCommandFile (String cmdFilePath, 
                 extraArgs)

Aggiunge tutti i comandi del file specificato all'organizzatore

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

extraArgs : un ERROR(/List) di argomenti String da aggiungere a ogni comando analizzato dal file. Può essere vuoto, ma non deve essere null.

Lanci
ConfigurationException

attendere

public void await ()

Attende l'avvio dello scheduler, inclusa l'attesa del completamento del trasferimento dall'TF precedente, 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

Ritorni
TradefedDelegator

Lanci
ConfigurationException

completeHandover

public void completeHandover ()

Informa lo scheduler dei comandi che una sequenza di trasferimento avviata è completamente completata e che deve inizializzare nuovamente il gestore remoto sulla porta predefinita.

createReleaseMap

public static  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

Ritorni

createSandbox

public ISandbox createSandbox ()

Crea un ISandbox che verrà utilizzato dall'esecuzione dell'invocazione.

Ritorni
ISandbox

displayCommandQueue

public void displayCommandQueue (PrintWriter printWriter)

Mostra informazioni di debug dettagliate sullo stato della coda di esecuzione dei comandi.

displayCommandsInfo

public void displayCommandsInfo (PrintWriter printWriter, 
                String regex)

Stampa un elenco dei comandi correnti.

Parametri
printWriter PrintWriter: il ERROR(/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 chiamate correnti.

Parametri
printWriter PrintWriter: il ERROR(/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 Option i valori specificati per tutti i comandi correnti.

Parametri
printWriter PrintWriter: il ERROR(/PrintWriter) a cui stampare lo stato.

regex String: l'espressione regolare a cui devono corrispondere i comandi per eseguire il dump del file XML. Se è null, verranno sottoposti a dump tutti i comandi.

execCommand

public void 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

Lanci
ConfigurationException

execCommand

public void execCommand (IInvocationContext context, 
                ICommandScheduler.IScheduledInvocationListener listener, 
                String[] args)

Alloca 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: il ICommandScheduler.IScheduledInvocationListener da informare

args String: gli argomenti del comando

Lanci
ConfigurationException
NoDeviceException

execCommand

public void 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

Lanci
ConfigurationException
NoDeviceException

getCommandFileWatcher

public CommandFileWatcher getCommandFileWatcher ()

Ottieni il valore CommandFileWatcher appropriato per questo programmatore

Ritorni
CommandFileWatcher

getExecutingCommandCount

public int getExecutingCommandCount ()

Restituisce il numero di comandi in stato di esecuzione.

Ritorni
int

getHostState

public CommandScheduler.HostState getHostState ()

Ritorni
CommandScheduler.HostState

getInvocationInfo

public String getInvocationInfo (int invocationId)

Restituisce le informazioni su un'invocazione specificando l'ID di chiamata.

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

Ritorni
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 è stata ancora eseguita alcuna chiamata.

Ritorni
CommandRunner.ExitCode

getLastInvocationThrowable

public Throwable getLastInvocationThrowable ()

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

Ritorni
Throwable

getReadyCommandCount

public int getReadyCommandCount ()

Restituisce il numero di comandi in stato di attesa nella coda.

Ritorni
int

getShutdownTimeout

public long getShutdownTimeout ()

Ritorni
long

handoverInitiationComplete

public void handoverInitiationComplete ()

Comunica allo scheduler dei comandi che lo scambio iniziale dei dispositivi e dei comandi in uso è stato completato e che può iniziare l'operazione di pianificazione.

handoverShutdown

public boolean handoverShutdown (int handoverPort)

Avvia un shutdown() e il trasferimento a un'altra procedura di importazione dei dati commerciali sullo stesso host.

Lo scheduler informerà il processo di importazione di app remota in ascolto su quella porta dei dispositivi liberati non appena saranno disponibili.

Parametri
handoverPort int

Ritorni
boolean true se l'avvio del trasferimento è andato a buon fine, false in caso contrario

notifyFileChanged

public void notifyFileChanged (File cmdFile, 
                 extraArgs)

Parametri
cmdFile File

extraArgs

removeAllCommands

public void removeAllCommands ()

Rimuovi tutti i comandi dal programmatore

run

public void run ()

Il blocco di esecuzione principale di questo thread.

setClearcutClient

public void setClearcutClient (ClearcutClient client)

Impostare il client in modo che registri i dati del cablaggio

Parametri
client ClearcutClient

shouldShutdownOnCmdfileError

public boolean shouldShutdownOnCmdfileError ()

Restituisce true se è necessario arrestare il programma di pianificazione in caso di errori di comando

Ritorni
boolean

arresto

public void shutdown ()

Prova ad arrestare in modo corretto lo scheduler dei comandi.

Cancella i comandi in attesa di essere testati e richiede che tutte le invocazioni in corso si arrestino in modo corretto.

Dopo aver chiamato il metodo di arresto, il loop principale dell'organizzatore attenderà il completamento di tutte le chiamate in corso prima di uscire completamente.

shutdownHard

public void shutdownHard (boolean killAdb)

Tenta di arrestare forzatamente il programmatore dei comandi.

Simile a shutdown(), ma facoltativamente termina anche la connessione adb, nel tentativo di "incentivare" il completamento più rapido delle chiamate in corso.

Parametri
killAdb boolean

shutdownHard

public void shutdownHard ()

Tenta di arrestare forzatamente il programmatore 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à di loop, lo scheduler non uscirà mai.

partenza

public void start ()

Avvia il programmatore, inclusa la configurazione del logging, l'inizializzazione di DeviceManager e così via

stopInvocation

public boolean stopInvocation (ITestInvocation invocation)

Interrompi un'invocazione in esecuzione.

Parametri
invocation ITestInvocation

Ritorni
boolean true se l'invocazione è stata interrotta, false in caso contrario

stopInvocation

public boolean stopInvocation (int invocationId, 
                String cause)

Interrompi un'invocazione in esecuzione specificandone l'ID.

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

cause String: la causa dell'interruzione dell'invocazione.

Ritorni
boolean true se l'invocazione è stata interrotta, false in caso contrario

Metodi protetti

cleanUp

protected void cleanUp ()

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

Esposto in modo che i test delle unità possano essere simulati.

createConfiguration

protected IConfiguration createConfiguration (String[] args)

Parametri
args String

Ritorni
IConfiguration

Lanci
ConfigurationException

createInvocationContext

protected IInvocationContext createInvocationContext ()

Ritorni
IInvocationContext

getConfigFactory

protected IConfigurationFactory getConfigFactory ()

Metodo di fabbrica per ottenere un riferimento a IConfigurationFactory

Ritorni
IConfigurationFactory il IConfigurationFactory da utilizzare

getDeviceManager

protected IDeviceManager getDeviceManager ()

Metodo di fabbrica per ottenere un riferimento a IDeviceManager

Ritorni
IDeviceManager il IDeviceManager da utilizzare

getFeatureServer

protected TradefedFeatureServer getFeatureServer ()

Ritorni
TradefedFeatureServer

getHostOptions

protected IHostOptions getHostOptions ()

Ritorni
IHostOptions

getKeyStoreClient

protected IKeyStoreClient getKeyStoreClient ()

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

Ritorni
IKeyStoreClient IKeyStoreClient

initLogging

protected void initLogging ()

Inizializza il log ddmlib.

Esposto in modo che i test delle unità possano essere simulati.

isShutdown

protected boolean isShutdown ()

Ritorni
boolean

isShuttingDown

protected boolean isShuttingDown ()

Ritorni
boolean

processReadyCommands

protected void processReadyCommands (IDeviceManager manager)

Parametri
manager IDeviceManager

waitForAllInvocationThreads

protected void waitForAllInvocationThreads ()

Attendi il completamento di tutti i thread di chiamata.