CommandScheduler

public class CommandScheduler
extends Object implements ICommandScheduler

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


Es un programador para ejecutar comandos de TradeFederation en todos los dispositivos disponibles.

Intentará priorizar los comandos que se ejecutarán en función de un recuento total del tiempo de ejecución. Por ejemplo, los comandos que se ejecutan con poca frecuencia o rapidez tendrán prioridad sobre los que tardan más en ejecutarse.

Se ejecuta de forma indefinida en segundo plano hasta que se apaga.

Resumen

Constructores públicos

CommandScheduler()

Crea un CommandScheduler.

Métodos públicos

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

Agrega un comando al programador.

void addCommandFile(String cmdFilePath, extraArgs)

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 transferencia del 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 ISandbox que la invocación usará para ejecutarse.

void displayCommandQueue(PrintWriter printWriter)

Genera información de depuración detallada sobre el estado de la cola de ejecución de comandos.

void displayCommandsInfo(PrintWriter printWriter, String regex)

Genera una lista de los comandos actuales.

void displayInvocationsInfo(PrintWriter printWriter)

Muestra una lista de las invocaciones actuales.

void dumpCommandsXml(PrintWriter printWriter, String regex)

Volca el archivo XML expandido para el comando con todos los valores de Option especificados para todos los comandos actuales.

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

Ejecuta el comando directamente en el dispositivo ya asignado.

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

Ejecuta el comando directamente en los dispositivos ya asignados.

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

Asigna directamente un dispositivo y ejecuta un comando sin agregarlo a la cola de comandos con un IInvocationContext ya existente.

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

Asigna un dispositivo directamente y ejecuta un comando sin agregarlo a la cola de comandos.

CommandFileWatcher getCommandFileWatcher()

Obtén el CommandFileWatcher adecuado para este programador

int getExecutingCommandCount()

Devuelve la cantidad de comandos en estado de ejecución.

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

Devuelve la información sobre una invocación especificando su ID.

CommandRunner.ExitCode getLastInvocationExitCode()

Devuelve el código de error de la última invocación que se ejecutó.

Throwable getLastInvocationThrowable()

Devuelve el Throwable de la última invocación que se ejecutó.

int getReadyCommandCount()

Devuelve la cantidad de comandos en estado listo en la cola.

long getShutdownTimeout()
boolean isDeviceInInvocationThread(ITestDevice device)

Devuelve verdadero si el dispositivo se usa en un subproceso de invocación activo.

boolean isShuttingDown()
void notifyFileChanged(File cmdFile, extraArgs)
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 arnés

void setMaxPollTime(long polling)
void setPrintSchedulingWarning(boolean print)
boolean shouldShutdownOnCmdfileError()

Devuelve verdadero si necesitamos detener el programador en caso de errores de comando.

void shutdown(boolean notifyStop)

Intenta apagar de forma correcta el programador de comandos.

void shutdownHard(boolean killAdb)

Intenta apagar de forma forzosa el programador de comandos.

void shutdownHard()

Intenta apagar de forma forzosa el programador de comandos.

void shutdownOnEmpty()

Es similar a shutdown(), pero esperará a que se ejecuten todos los comandos antes de salir.

void start()

Inicia el programador, lo que incluye la configuración del registro, la inicialización de DeviceManager, etcétera.

boolean stopInvocation(ITestInvocation invocation)

Detiene una invocación en ejecución.

boolean stopInvocation(int invocationId, String cause)

Detiene una invocación en ejecución especificando su ID.

void stopScheduling()

Detiene la programación y la aceptación de pruebas nuevas, pero no detiene Tradefed.

Métodos protegidos

void cleanUp()

Cierra los registros y realiza cualquier otra limpieza necesaria antes de salir.

IConfiguration createConfiguration(String[] args)
IInvocationContext createInvocationContext()
void dryRunCommandReporting(ICommandScheduler.IScheduledInvocationListener handler, IConfiguration config)

Determina si un comando determinado es una ejecución de prueba.

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

Método de fábrica para obtener una referencia a IConfigurationFactory

DeviceManagementGrpcServer getDeviceManagementServer()
IDeviceManager getDeviceManager()

Método de fábrica para obtener una referencia a IDeviceManager

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

Recupera un IKeyStoreClient con el IKeyStoreFactory declarado en IGlobalConfiguration o nulo si no se definió ninguno.

TestInvocationManagementServer getTestInvocationManagementServer()
void initLogging()

Inicializa el registro de ddmlib.

boolean isShutdown()
void processReadyCommands(IDeviceManager manager)

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.

Un comando es, básicamente, una instancia de una configuración para ejecutar y sus argumentos asociados.

Si se especifica el argumento "--help", el texto de ayuda para la configuración se generará en stdout. De lo contrario, la configuración se agregará a la cola para que se ejecute.

Parámetros
args String: Son los argumentos de configuración.

Muestra
Pair<Boolean, Integer> Es un par de valores. El primer valor es un true booleano si el comando se agregó correctamente. El segundo valor es el ID de seguimiento del comando conocido(valor no negativo) si el comando se agregó correctamente. De lo contrario, devuelve 0 cuando el comando se agrega para todos los dispositivos o -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 anexarán a cada comando analizado desde el archivo. Puede estar vacío, pero no debe ser nulo.

Arroja
ConfigurationException

await

public void await ()

Espera a que el programador comience a ejecutarse, lo que incluye esperar a que se complete la transferencia del 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 static  createReleaseMap (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

displayCommandQueue

public void displayCommandQueue (PrintWriter printWriter)

Genera 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)

Genera una lista de los comandos actuales.

Parámetros
printWriter PrintWriter: Es el ERROR(/PrintWriter) en el que se generará el resultado.

regex String: Es la expresión regular con la que se deben hacer 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) en el que se generará el resultado.

dumpCommandsXml

public void dumpCommandsXml (PrintWriter printWriter, 
                String regex)

Volca el archivo XML expandido para el comando con todos los valores de Option especificados para todos los comandos actuales.

Parámetros
printWriter PrintWriter: Es el objeto ERROR(/PrintWriter) en el que se generará el estado.

regex String: Es la expresión regular con la que se deben hacer coincidir los comandos para que se vuelque el archivo 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 el dispositivo ya asignado.

Parámetros
listener ICommandScheduler.IScheduledInvocationListener: Es el ICommandScheduler.IScheduledInvocationListener que se informará.

device ITestDevice: El ITestDevice que se usará

args String: Los argumentos del comando

Muestra
long Es 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 : El ERROR(/List) que se usará

args String: Los argumentos del comando

Muestra
long Es el ID de invocación del comando programado.

Arroja
ConfigurationException

execCommand

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

Asigna directamente un dispositivo y ejecuta un comando sin agregarlo a la cola de comandos con un IInvocationContext ya existente.

Parámetros
context IInvocationContext: Es 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 un dispositivo directamente 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 Es 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 ()

Devuelve la cantidad de comandos en estado de ejecución.

Muestra
int

getHostState

public CommandScheduler.HostState getHostState ()

Muestra
CommandScheduler.HostState

getInvocationInfo

public String getInvocationInfo (int invocationId)

Devuelve la información sobre una invocación especificando su ID.

Parámetros
invocationId int: Es 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 ()

Devuelve el código de error de la última invocación que se ejecutó. Devuelve 0 (sin error) si aún no se ejecutó ninguna invocación.

Muestra
CommandRunner.ExitCode

getLastInvocationThrowable

public Throwable getLastInvocationThrowable ()

Devuelve el Throwable de la última invocación que se ejecutó. Devuelve null si no hay ningún objeto Throwable disponible.

Muestra
Throwable

getReadyCommandCount

public int getReadyCommandCount ()

Devuelve la cantidad de comandos en estado listo en la cola.

Muestra
int

getShutdownTimeout

public long getShutdownTimeout ()

Muestra
long

isDeviceInInvocationThread

public boolean isDeviceInInvocationThread (ITestDevice device)

Devuelve verdadero si el dispositivo se usa en un subproceso de invocación activo.

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 los datos del arnés

Parámetros
client ClearcutClient

setMaxPollTime

public void setMaxPollTime (long polling)

Parámetros
polling long

setPrintSchedulingWarning

public void setPrintSchedulingWarning (boolean print)

Parámetros
print boolean

shouldShutdownOnCmdfileError

public boolean shouldShutdownOnCmdfileError ()

Devuelve verdadero si necesitamos detener el programador en caso de errores de comando.

Muestra
boolean

apagado

public void shutdown (boolean notifyStop)

Intenta apagar de forma correcta el programador de comandos.

Parámetros
notifyStop boolean: Si es verdadero, notifica las invocaciones del cierre de TF.

shutdownHard

public void shutdownHard (boolean killAdb)

Intenta apagar de forma forzosa el programador de comandos.

Es similar a shutdown(), pero también puede cerrar la conexión de adb de forma opcional, en un intento de "inspirar" las invocaciones en curso para que se completen más rápido.

Parámetros
killAdb boolean

shutdownHard

public void shutdownHard ()

Intenta apagar 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 saldrá.

start

public void start ()

Inicia el programador, lo que incluye la configuración del registro, la inicialización de DeviceManager, etcétera.

stopInvocation

public boolean stopInvocation (ITestInvocation invocation)

Detiene una invocación en ejecución.

Parámetros
invocation ITestInvocation

Muestra
boolean Es verdadero si se detuvo la invocación; de lo contrario, es falso.

stopInvocation

public boolean stopInvocation (int invocationId, 
                String cause)

Detiene una invocación en ejecución especificando su ID.

Parámetros
invocationId int: Es 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 ()

Detiene la programación y la aceptación de pruebas nuevas, pero no detiene Tradefed. Esto tiene como objetivo habilitar 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 ejecución de prueba. Si el comando es una ejecución de prueba, valídalo. Si hay algún problema con la configuración, se arrojará una ConfigurationException.

Parámetros
handler ICommandScheduler.IScheduledInvocationListener: ERROR(/InvocationEventHandler) para informar eventos de validación de ejecución de prueba.

config IConfiguration

Muestra
void Es verdadero si el comando es una prueba de validación y falso en caso 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 debe 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 debe usar

getFeatureServer

protected TradefedFeatureServer getFeatureServer ()

Muestra
TradefedFeatureServer

getHostOptions

protected IHostOptions getHostOptions ()

Muestra
IHostOptions

getKeyStoreClient

protected IKeyStoreClient getKeyStoreClient ()

Recupera un IKeyStoreClient con el IKeyStoreFactory declarado en IGlobalConfiguration o nulo si no se definió ninguno.

Muestra
IKeyStoreClient IKeyStoreClient

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