Pianificazione comando

public class CommandScheduler
extends Object implements ICommandScheduler

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


Uno scheduler per eseguire i comandi TradeFederation su tutti i dispositivi disponibili.

Tenteremo di dare la priorità ai comandi da eseguire in base al conteggio totale della loro esecuzione nel tempo. ad es. I comandi poco frequenti o a esecuzione veloce avranno la priorità sui comandi a lunga esecuzione.

Esecuzione in background per sempre 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 allo scheduler.

void addCommandFile(String cmdFilePath, extraArgs)

Aggiunge tutti i comandi di un determinato file allo scheduler

void await()

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

static TradefedDelegator checkDelegation(String[] args)

Crea un delegante in base alla riga di comando per vedere se dobbiamo delegare l'esecuzione.

void completeHandover()

Informa lo scheduler dei comandi che una sequenza di trasferimento avviata è completamente completa deve reinizializzare il proprio gestore remoto sulla porta predefinita.

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

void displayCommandQueue(PrintWriter printWriter)

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

void displayCommandsInfo(PrintWriter printWriter, String regex)

Restituisce 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 attuali.

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 elemento 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 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 chiamata che specifica 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 pronto nella coda.

long getShutdownTimeout()
void handoverInitiationComplete()

Informa lo scheduler dei comandi che lo scambio iniziale del trasferimento di dispositivi e dei comandi in uso è completa e può iniziare l'operazione di pianificazione.

boolean handoverShutdown(int handoverPort)

Avvia un shutdown() e passa a un altro processo trasferito sullo stesso host.

void 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 cliente in modo che generi report sui dati del database

boolean shouldShutdownOnCmdfileError()

Restituisce true se è necessario arrestare lo scheduler in caso di errori dei comandi

void shutdown()

Tenta di chiudere delicatamente lo scheduler.

void shutdownHard(boolean killAdb)

Tentativo di chiudere forzatamente lo scheduler dei comandi.

void shutdownHard()

Tentativo di chiudere forzatamente lo scheduler dei comandi.

void shutdownOnEmpty()

Simile a shutdown(), ma attenderà l'esecuzione di tutti i comandi prima di uscire.

void start()

Avvia lo scheduler, inclusa la configurazione del logging, l'init di DeviceManager e così via

boolean stopInvocation(ITestInvocation invocation)

Interrompi una chiamata in esecuzione.

boolean stopInvocation(int invocationId, String cause)

Interrompi una chiamata in esecuzione specificando il relativo ID.

Metodi protetti

void cleanUp()

Chiude i log ed esegue eventuali altre operazioni di pulizia necessarie 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 IKeyStoreFactory dichiarato in IGlobalConfiguration o nullo se non ne viene 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

Pianificazione comando

public CommandScheduler ()

Crea un CommandScheduler.

Nota: è necessario chiamare start prima dell'uso.

Metodi pubblici

addCommand

public boolean addCommand (String[] args)

Aggiunge un comando allo scheduler.

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

Se "--help" viene specificato il testo di aiuto la configurazione verrà inviata a stdout. In caso contrario, la configurazione verrà aggiunta alla coda per vengono eseguiti tutti i test delle unità.

Parametri
args String: gli argomenti della configurazione.

Ritorni
boolean true se il comando è stato aggiunto

Lanci
ConfigurationException

addCommandFile

public void addCommandFile (String cmdFilePath, 
                 extraArgs)

Aggiunge tutti i comandi di un determinato file allo scheduler

Parametri
cmdFilePath String: il percorso del file system del file comand

extraArgs : ERROR(/List) di String argomenti da aggiungere a ogni comando analizzato da file. Il campo può essere vuoto, ma non può essere null.

Lanci
ConfigurationException

aspetta

public void await ()

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

checkDelega

public static TradefedDelegator checkDelegation (String[] args)

Crea un delegante in base alla riga di comando per vedere se dobbiamo delegare l'esecuzione.

Parametri
args String

Ritorni
TradefedDelegator

Lanci
ConfigurationException

passaggio completo

public void completeHandover ()

Informa lo scheduler dei comandi che una sequenza di trasferimento avviata è completamente completa deve reinizializzare il proprio gestore remoto sulla porta predefinita.

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

Ritorni

createSandbox

public ISandbox createSandbox ()

Crea un elemento ISandbox che verrà utilizzato per l'esecuzione della chiamata.

Ritorni
ISandbox

displayCommandQueue

public void displayCommandQueue (PrintWriter printWriter)

Restituisce 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 correnti.

Parametri
printWriter PrintWriter: il ERROR(/PrintWriter) a cui inviare l'output.

regex String: l'espressione regolare a cui devono corrispondere i comandi per essere stampati. Se il valore è null, verranno stampati tutti i comandi.

displayInvocationsInfo

public void displayInvocationsInfo (PrintWriter printWriter)

Visualizza un elenco delle chiamate correnti.

Parametri
printWriter PrintWriter: il ERROR(/PrintWriter) a cui inviare l'output.

dumpCommandsXml

public 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 attuali.

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

regex String: l'espressione regolare a cui devono corrispondere i comandi per generare XML da scaricare. Se il valore è 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 aggiornare

device ITestDevice: i 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 elemento IInvocationContext già esistente.

Parametri
context IInvocationContext: un IInvocationContext esistente.

listener ICommandScheduler.IScheduledInvocationListener: il ICommandScheduler.IScheduledInvocationListener da aggiornare

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 aggiornare

args String: gli argomenti del comando

Lanci
ConfigurationException
NoDeviceException

getCommandFileWatcher

public CommandFileWatcher getCommandFileWatcher ()

Ottieni il CommandFileWatcher appropriato per questo scheduler

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 bu di chiamata che specifica l'ID di chiamata.

Parametri
invocationId int: l'ID di monitoraggio della chiamata.

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

Ritorni
CommandRunner.ExitCode

getLastInvocationThrowable

public Throwable getLastInvocationThrowable ()

Restituisce Throwable dall'ultima chiamata eseguita. Restituisce un valore nullo se non sono disponibili elementi lanciabili.

Ritorni
Throwable

getReadyCommandCount

public int getReadyCommandCount ()

Restituisce il numero di comandi in stato pronto nella coda.

Ritorni
int

getShutdownTimeout

public long getShutdownTimeout ()

Ritorni
long

avvio_invio completato

public void handoverInitiationComplete ()

Informa lo scheduler dei comandi che lo scambio iniziale del trasferimento di dispositivi e dei comandi in uso è completa e può iniziare l'operazione di pianificazione.

passaggioarresto

public boolean handoverShutdown (int handoverPort)

Avvia un shutdown() e passa a un altro processo trasferito sullo stesso host.

Lo scheduler comunicherà al processo di trasferimento remoto in ascolto su quella porta di dispositivi liberati man mano che diventano disponibili.

Parametri
handoverPort int

Ritorni
boolean true se l'avvio del passaggio è riuscito, false altrimenti

notificaFileChanged

public void notifyFileChanged (File cmdFile, 
                 extraArgs)

Parametri
cmdFile File

extraArgs

rimuovereTuttiComandi

public void removeAllCommands ()

Rimuovi tutti i comandi dallo scheduler

run

public void run ()

Il blocco di esecuzione principale di questo thread.

ImpostaClienteCancella

public void setClearcutClient (ClearcutClient client)

Imposta il cliente in modo che generi report sui dati del database

Parametri
client ClearcutClient

dovrebbeArrestoSuCmdfileError

public boolean shouldShutdownOnCmdfileError ()

Restituisce true se è necessario arrestare lo scheduler in caso di errori dei comandi

Ritorni
boolean

chiusura

public void shutdown ()

Tenta di chiudere delicatamente lo scheduler.

Cancella i comandi in attesa di essere testati e richiede che tutte le chiamate in corso arresta con grazia.

Dopo la chiamata dell'arresto, il loop principale dello scheduler attenderà tutte le chiamate in corso da completare prima di uscire del tutto.

chiusuraDifficile

public void shutdownHard (boolean killAdb)

Tentativo di chiudere forzatamente lo scheduler dei comandi.

Simile a shutdown(), ma facoltativamente interrompe anche la connessione ADB in un tentare di "ispirare" di chiamate in corso da completare più rapidamente.

Parametri
killAdb boolean

chiusuraDifficile

public void shutdownHard ()

Tentativo di chiudere forzatamente lo scheduler dei comandi. Uguale a shutdownHard(true).

ArrestoOnVuoto

public void shutdownOnEmpty ()

Simile a shutdown(), ma attenderà l'esecuzione di tutti i comandi prima di uscire.

Tieni presente che se alcuni comandi sono in modalità loop, lo scheduler non uscirà mai.

partenza

public void start ()

Avvia lo scheduler, inclusa la configurazione del logging, l'init di DeviceManager e così via

stopChiama

public boolean stopInvocation (ITestInvocation invocation)

Interrompi una chiamata in esecuzione.

Parametri
invocation ITestInvocation

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

stopChiama

public boolean stopInvocation (int invocationId, 
                String cause)

Interrompi una chiamata in esecuzione specificando il relativo ID.

Parametri
invocationId int: l'ID di monitoraggio della chiamata.

cause String: la causa dell'interruzione della chiamata.

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

Metodi protetti

pulizia

protected void cleanUp ()

Chiude i log ed esegue eventuali altre operazioni di pulizia necessarie prima di uscire.

Esposto in modo da simulare i test delle unità.

creaConfigurazione

protected IConfiguration createConfiguration (String[] args)

Parametri
args String

Ritorni
IConfiguration

Lanci
ConfigurationException

createInvocationContext

protected IInvocationContext createInvocationContext ()

Ritorni
IInvocationContext

getConfigFAB

protected IConfigurationFactory getConfigFactory ()

Metodo di fabbrica per ottenere un riferimento a IConfigurationFactory

Ritorni
IConfigurationFactory IConfigurationFactory per utilizzare

getDeviceManager

protected IDeviceManager getDeviceManager ()

Metodo di fabbrica per ottenere un riferimento a IDeviceManager

Ritorni
IDeviceManager IDeviceManager per utilizzare

getFeatureServer

protected TradefedFeatureServer getFeatureServer ()

Ritorni
TradefedFeatureServer

getHostOpzioni

protected IHostOptions getHostOptions ()

Ritorni
IHostOptions

getKeyStoreClient

protected IKeyStoreClient getKeyStoreClient ()

Recupera un IKeyStoreClient utilizzando IKeyStoreFactory dichiarato in IGlobalConfiguration o nullo se non ne viene definito nessuno.

Ritorni
IKeyStoreClient Cliente archivio chiavi

initLogging

protected void initLogging ()

Inizializza il log ddmlib.

Esposto in modo da simulare i test delle unità.

èArresta

protected boolean isShutdown ()

Ritorni
boolean

èarresto

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.