CommandScheduler
public
class
CommandScheduler
extends Object
implements
ICommandScheduler
java.lang.Object | |
↳ | com.android.tradefed.command.CommandScheduler |
Un programador para ejecutar comandos de TradeFederation en todos los dispositivos disponibles.
Se intentará priorizar los comandos para que se ejecuten en función de un recuento total de su tiempo de ejecución (p. ej., los comandos de ejecución rápida o poco frecuente tendrán prioridad sobre los comandos de ejecución larga).
Se ejecuta de forma indefinida en segundo plano hasta que se apaga.
Resumen
Constructores públicos | |
---|---|
CommandScheduler()
Crea un |
Métodos públicos | |
---|---|
Pair<Boolean, Integer>
|
addCommand(String[] args)
Agrega un comando al programador. |
void
|
addCommandFile(String cmdFilePath,
Agrega todos los comandos del archivo determinado al programador. |
void
|
await()
Espera a que el programador comience a ejecutarse, lo que incluye esperar a que se complete la entrega de la TF anterior, si corresponde. |
static
TradefedDelegator
|
checkDelegation(String[] args)
Crea un delegador basado en la línea de comandos para ver si necesitamos delegar la ejecución. |
static
|
createReleaseMap(IInvocationContext context, Throwable e)
Crea un mapa del estado de los dispositivos para que se puedan liberar de forma adecuada. |
ISandbox
|
createSandbox()
Crea un |
void
|
displayCommandQueue(PrintWriter printWriter)
Muestra información de depuración detallada sobre el estado de la cola de ejecución de comandos. |
void
|
displayCommandsInfo(PrintWriter printWriter, String regex)
Muestra una lista de los comandos actuales. |
void
|
displayInvocationsInfo(PrintWriter printWriter)
Muestra una lista de las invocaciones actuales. |
void
|
dumpCommandsXml(PrintWriter printWriter, String regex)
Vacía el archivo en formato XML expandido del comando con todos los valores de |
long
|
execCommand(ICommandScheduler.IScheduledInvocationListener listener, ITestDevice device, String[] args)
Ejecuta el comando directamente en un dispositivo ya asignado. |
long
|
execCommand(ICommandScheduler.IScheduledInvocationListener listener,
Ejecuta el comando directamente en los dispositivos ya asignados. |
long
|
execCommand(IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Aloca directamente un dispositivo y ejecuta un comando sin agregarlo a la cola de comandos con un |
long
|
execCommand(ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Asignar directamente un dispositivo y ejecutar un comando sin agregarlo a la cola de comandos |
CommandFileWatcher
|
getCommandFileWatcher()
Obtén el CommandFileWatcher adecuado para este programador |
int
|
getExecutingCommandCount()
Muestra la cantidad de comandos en estado de ejecución. |
CommandScheduler.HostState
|
getHostState()
|
String
|
getInvocationInfo(int invocationId)
Muestra la información de una invocación especificando el ID de invocación. |
CommandRunner.ExitCode
|
getLastInvocationExitCode()
Muestra el código de error de la última invocación que se ejecutó. |
Throwable
|
getLastInvocationThrowable()
Muestra el |
int
|
getReadyCommandCount()
Muestra la cantidad de comandos en estado listo en la cola. |
long
|
getShutdownTimeout()
|
boolean
|
isDeviceInInvocationThread(ITestDevice device)
Muestra true si un subproceso de invocación activo usa el dispositivo. |
boolean
|
isShuttingDown()
|
void
|
notifyFileChanged(File cmdFile,
|
void
|
removeAllCommands()
Quita todos los comandos del programador |
void
|
run()
Es el bloque de ejecución principal de este subproceso. |
void
|
setClearcutClient(ClearcutClient client)
Configura el cliente para que informe los datos del aprovechamiento |
boolean
|
shouldShutdownOnCmdfileError()
Muestra verdadero si necesitamos cerrar el programador en un error de comando. |
void
|
shutdown(boolean notifyStop)
Intenta cerrar correctamente el programador de comandos. |
void
|
shutdownHard(boolean killAdb)
Intenta cerrar el programador de comandos de manera forzosa. |
void
|
shutdownHard()
Intenta cerrar de forma forzosa el programador de comandos. |
void
|
shutdownOnEmpty()
Es similar a |
void
|
start()
Inicia el programador, incluye la configuración del registro, el inicio de |
boolean
|
stopInvocation(ITestInvocation invocation)
Detener una invocación en ejecución |
boolean
|
stopInvocation(int invocationId, String cause)
Para detener una invocación en ejecución, especifica su ID. |
void
|
stopScheduling()
Detiene la programación y la aceptación de pruebas nuevas, pero no detiene Tradefed. |
Constructores públicos
CommandScheduler
public CommandScheduler ()
Crea un CommandScheduler
.
Nota: Se debe llamar a start antes de usarlo.
Métodos públicos
addCommand
public Pair<Boolean, Integer> addCommand (String[] args)
Agrega un comando al programador.
En esencia, un comando es una instancia de una configuración que se ejecutará y sus argumentos asociados.
Si se especifica el argumento "--help", el texto de ayuda de la configuración se enviará a stdout. De lo contrario, la configuración se agregará a la cola para su ejecución.
Parámetros | |
---|---|
args |
String : Los argumentos de configuración. |
Muestra | |
---|---|
Pair<Boolean, Integer> |
Un par de valores, el primer valor es un true booleano si el comando se agregó correctamente. El segundo valor es el ID conocido del servicio de seguimiento de comandos(valor no negativo) si el comando se agregó correctamente, muestra 0 cuando se agrega el comando para todos los dispositivos, de lo contrario, muestra -1. |
Arroja | |
---|---|
ConfigurationException |
addCommandFile
public void addCommandFile (String cmdFilePath,extraArgs)
Agrega todos los comandos del archivo determinado al programador.
Parámetros | |
---|---|
cmdFilePath |
String : Es la ruta de acceso del sistema de archivos del archivo de comandos. |
extraArgs |
: Es un ERROR(/List) de argumentos String que se agregarán a cada comando analizado del archivo. Puede estar vacío, pero no debe ser nulo. |
Arroja | |
---|---|
ConfigurationException |
espera
public void await ()
Espera a que el programador comience a ejecutarse, lo que incluye esperar a que se complete la entrega de la TF anterior, si corresponde.
checkDelegation
public static TradefedDelegator checkDelegation (String[] args)
Crea un delegador basado en la línea de comandos para ver si necesitamos delegar la ejecución.
Parámetros | |
---|---|
args |
String |
Muestra | |
---|---|
TradefedDelegator |
Arroja | |
---|---|
|
com.android.tradefed.config.ConfigurationException |
ConfigurationException |
createReleaseMap
public staticcreateReleaseMap (IInvocationContext context, Throwable e)
Crea un mapa del estado de los dispositivos para que se puedan liberar de forma adecuada.
Parámetros | |
---|---|
context |
IInvocationContext |
e |
Throwable |
Muestra | |
---|---|
|
createSandbox
public ISandbox createSandbox ()
Crea un ISandbox
que la invocación usará para ejecutarse.
Muestra | |
---|---|
ISandbox |
Fila de comandos de display
public void displayCommandQueue (PrintWriter printWriter)
Muestra información de depuración detallada sobre el estado de la cola de ejecución de comandos.
displayCommandsInfo
public void displayCommandsInfo (PrintWriter printWriter, String regex)
Muestra una lista de los comandos actuales.
Parámetros | |
---|---|
printWriter |
PrintWriter : Es el ERROR(/PrintWriter) al que se enviará el resultado. |
regex |
String : Es la expresión regular con la que deben coincidir los comandos para que se impriman. Si es nulo, se imprimirán todos los comandos. |
displayInvocationsInfo
public void displayInvocationsInfo (PrintWriter printWriter)
Muestra una lista de las invocaciones actuales.
Parámetros | |
---|---|
printWriter |
PrintWriter : Es el ERROR(/PrintWriter) al que se enviará el resultado. |
dumpCommandsXml
public void dumpCommandsXml (PrintWriter printWriter, String regex)
Vacía el archivo en formato XML expandido del comando con todos los valores de Option
especificados para todos los comandos actuales.
Parámetros | |
---|---|
printWriter |
PrintWriter : Es el ERROR(/PrintWriter) al que se enviará el estado. |
regex |
String : Es la expresión regular con la que deben coincidir los comandos para que se volque el archivo en formato XML. Si es nulo, se volcarán todos los comandos. |
execCommand
public long execCommand (ICommandScheduler.IScheduledInvocationListener listener, ITestDevice device, String[] args)
Ejecuta el comando directamente en un dispositivo ya asignado.
Parámetros | |
---|---|
listener |
ICommandScheduler.IScheduledInvocationListener : Es el ICommandScheduler.IScheduledInvocationListener que se informará. |
device |
ITestDevice : Es el ITestDevice que se usará. |
args |
String : Los argumentos del comando |
Muestra | |
---|---|
long |
El ID de invocación del comando programado. |
Arroja | |
---|---|
ConfigurationException |
execCommand
public long execCommand (ICommandScheduler.IScheduledInvocationListener listener,reservedDevices, String[] args)
Ejecuta el comando directamente en los dispositivos ya asignados.
Parámetros | |
---|---|
listener |
ICommandScheduler.IScheduledInvocationListener : Es el ICommandScheduler.IScheduledInvocationListener que se informará. |
reservedDevices |
: Es el ERROR(/List que se usará. |
args |
String : Los argumentos del comando |
Muestra | |
---|---|
long |
El ID de invocación del comando programado. |
Arroja | |
---|---|
ConfigurationException |
execCommand
public long execCommand (IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Aloca directamente un dispositivo y ejecuta un comando sin agregarlo a la cola de comandos con un IInvocationContext
ya existente.
Parámetros | |
---|---|
context |
IInvocationContext : Un IInvocationContext existente. |
listener |
ICommandScheduler.IScheduledInvocationListener : Es el ICommandScheduler.IScheduledInvocationListener que se informará. |
args |
String : Los argumentos del comando |
Muestra | |
---|---|
long |
Arroja | |
---|---|
ConfigurationException |
|
NoDeviceException |
execCommand
public long execCommand (ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Asigna directamente un dispositivo y ejecuta un comando sin agregarlo a la cola de comandos.
Parámetros | |
---|---|
listener |
ICommandScheduler.IScheduledInvocationListener : Es el ICommandScheduler.IScheduledInvocationListener que se informará. |
args |
String : Los argumentos del comando |
Muestra | |
---|---|
long |
El ID de invocación del comando programado. |
Arroja | |
---|---|
ConfigurationException |
|
NoDeviceException |
getCommandFileWatcher
public CommandFileWatcher getCommandFileWatcher ()
Obtén el CommandFileWatcher adecuado para este programador
Muestra | |
---|---|
CommandFileWatcher |
getExecutingCommandCount
public int getExecutingCommandCount ()
Muestra la cantidad de comandos en estado de ejecución.
Muestra | |
---|---|
int |
getInvocationInfo
public String getInvocationInfo (int invocationId)
Muestra la información de una invocación especificando el ID de invocación.
Parámetros | |
---|---|
invocationId |
int : El ID de seguimiento de la invocación. |
Muestra | |
---|---|
String |
Un String que contiene información sobre la invocación. |
getLastInvocationExitCode.
public CommandRunner.ExitCode getLastInvocationExitCode ()
Muestra el código de error de la última invocación que se ejecutó. Devuelve 0 (sin errores) si aún no se ejecutó ninguna invocación.
Muestra | |
---|---|
CommandRunner.ExitCode |
getLastInvocationThrowable
public Throwable getLastInvocationThrowable ()
Muestra el Throwable
de la última invocación que se ejecutó.
Se muestra un valor nulo si no hay un throwable disponible.
Muestra | |
---|---|
Throwable |
getReadyCommandCount
public int getReadyCommandCount ()
Muestra la cantidad de comandos en estado listo en la cola.
Muestra | |
---|---|
int |
getShutdownTimeout
public long getShutdownTimeout ()
Muestra | |
---|---|
long |
isDeviceInInvocationThread
public boolean isDeviceInInvocationThread (ITestDevice device)
Muestra verdadero si un subproceso de invocación activo usa el dispositivo.
Parámetros | |
---|---|
device |
ITestDevice |
Muestra | |
---|---|
boolean |
isShuttingDown
public boolean isShuttingDown ()
Muestra | |
---|---|
boolean |
notifyFileChanged
public void notifyFileChanged (File cmdFile,extraArgs)
Parámetros | |
---|---|
cmdFile |
File |
extraArgs |
|
removeAllCommands
public void removeAllCommands ()
Quita todos los comandos del programador
run
public void run ()
Es el bloque de ejecución principal de este subproceso.
setClearcutClient
public void setClearcutClient (ClearcutClient client)
Configura el cliente para que informe datos del arnés
Parámetros | |
---|---|
client |
ClearcutClient |
Debe cerrarseOnCmdfileError.
public boolean shouldShutdownOnCmdfileError ()
Muestra verdadero si necesitamos cerrar el programador en un error de comando.
Muestra | |
---|---|
boolean |
apagado
public void shutdown (boolean notifyStop)
Intenta cerrar el programador de comandos de forma correcta.
Parámetros | |
---|---|
notifyStop |
boolean : Si es verdadero, notifica las invocaciones de cierre de TF. |
apagarDuro
public void shutdownHard (boolean killAdb)
Intenta cerrar el programador de comandos de manera forzosa.
Es similar a shutdown()
, pero también puede finalizar de manera opcional la conexión de adb en un intento de "inspirar" a que las invocaciones en curso se completen más rápido.
Parámetros | |
---|---|
killAdb |
boolean |
shutdownHard
public void shutdownHard ()
Intenta cerrar de forma forzosa el programador de comandos. Es igual que shutdownHard(true).
shutdownOnEmpty
public void shutdownOnEmpty ()
Es similar a shutdown()
, pero esperará a que se ejecuten todos los comandos antes de salir.
Ten en cuenta que si algún comando está en modo de bucle, el programador nunca se cerrará.
start
public void start ()
Inicia el programador, incluye la configuración del registro, el inicio de DeviceManager
, etcétera.
stopInvocation
public boolean stopInvocation (ITestInvocation invocation)
Detener una invocación en ejecución
Parámetros | |
---|---|
invocation |
ITestInvocation |
Muestra | |
---|---|
boolean |
true si se detiene la invocación; de lo contrario, false |
stopInvocation
public boolean stopInvocation (int invocationId, String cause)
Para detener una invocación en ejecución, especifica su ID.
Parámetros | |
---|---|
invocationId |
int : El ID de seguimiento de la invocación. |
cause |
String : Es la causa por la que se detuvo la invocación. |
Muestra | |
---|---|
boolean |
Es verdadero si se detuvo la invocación; de lo contrario, es falso. |
stopScheduling
public void stopScheduling ()
Deja de programar y acepta pruebas nuevas, pero no detiene a Tradefed. Esto permite un cierre de dos pasos en el que primero se agotan todas las pruebas en ejecución y, luego, se finaliza el proceso de Tradefed.
Métodos protegidos
cleanUp
protected void cleanUp ()
Cierra los registros y realiza cualquier otra limpieza necesaria antes de salir.
Se expone para que las pruebas de unidades puedan simular.
createConfiguration
protected IConfiguration createConfiguration (String[] args)
Parámetros | |
---|---|
args |
String |
Muestra | |
---|---|
IConfiguration |
Arroja | |
---|---|
ConfigurationException |
createInvocationContext
protected IInvocationContext createInvocationContext ()
Muestra | |
---|---|
IInvocationContext |
dryRunCommandReporting
protected void dryRunCommandReporting (ICommandScheduler.IScheduledInvocationListener handler, IConfiguration config)
Determina si un comando determinado es una prueba sin conexión. Si el comando es una ejecución de prueba, valídalo. Si hay algún problema de configuración, se arrojará una ConfigurationException.
Parámetros | |
---|---|
handler |
ICommandScheduler.IScheduledInvocationListener : ERROR(/InvocationEventHandler) para informar eventos para la validación de la prueba sin conexión. |
config |
IConfiguration |
Muestra | |
---|---|
void |
Es verdadero si el comando es una prueba sin conexión, y falso de lo contrario. |
Arroja | |
---|---|
|
com.android.tradefed.config.ConfigurationException |
ConfigurationException |
execCommand
protected long execCommand (IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener,reservedDevices, String[] args)
Parámetros | |
---|---|
context |
IInvocationContext |
listener |
ICommandScheduler.IScheduledInvocationListener |
reservedDevices |
|
args |
String |
Muestra | |
---|---|
long |
Arroja | |
---|---|
ConfigurationException |
getConfigFactory
protected IConfigurationFactory getConfigFactory ()
Método de fábrica para obtener una referencia a IConfigurationFactory
Muestra | |
---|---|
IConfigurationFactory |
el IConfigurationFactory que se usará |
getDeviceManagementServer
protected DeviceManagementGrpcServer getDeviceManagementServer ()
Muestra | |
---|---|
DeviceManagementGrpcServer |
getDeviceManager
protected IDeviceManager getDeviceManager ()
Método de fábrica para obtener una referencia a IDeviceManager
Muestra | |
---|---|
IDeviceManager |
el IDeviceManager que se usará |
getKeyStoreCliente
protected IKeyStoreClient getKeyStoreClient ()
Recupera un IKeyStoreClient
con el IKeyStoreFactory
declarado en IGlobalConfiguration
o nulo si no se define ninguno.
Muestra | |
---|---|
IKeyStoreClient |
Cliente de tiendadeclaves |
getTestInvocationManagementServer
protected TestInvocationManagementServer getTestInvocationManagementServer ()
Muestra | |
---|---|
TestInvocationManagementServer |
initLogging
protected void initLogging ()
Inicializa el registro de ddmlib.
Se expone para que las pruebas de unidades puedan simular.
isShutdown
protected boolean isShutdown ()
Muestra | |
---|---|
boolean |
processReadyCommands
protected void processReadyCommands (IDeviceManager manager)
Parámetros | |
---|---|
manager |
IDeviceManager |