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

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 Option especificados para todos los comandos actuales.

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

Ejecuta el comando directamente en un 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)

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

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 Throwable de la última invocación que se ejecutó.

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, 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 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 shutdown(), pero esperará a que se ejecuten todos los comandos antes de salir.

void start()

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

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.

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 dado es una prueba de validación.

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

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

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

getHostState

public CommandScheduler.HostState getHostState ()

Muestra
CommandScheduler.HostState

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á

getFeatureServer

protected TradefedFeatureServer getFeatureServer ()

Muestra
TradefedFeatureServer

getHostOptions

protected IHostOptions getHostOptions ()

Muestra
IHostOptions

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