ICommandScheduler
public
interface
ICommandScheduler
com.android.tradefed.command.ICommandScheduler |
A scheduler for running TradeFederation commands.
Summary
Nested classes | |
---|---|
interface |
ICommandScheduler.IScheduledInvocationListener
Listener for invocation events when invocation completes. |
Public methods | |
---|---|
abstract
Pair<Boolean, Integer>
|
addCommand(String[] args)
Adds a command to the scheduler. |
abstract
void
|
addCommandFile(String cmdFile,
Adds all commands from given file to the scheduler |
abstract
void
|
await()
Waits for scheduler to start running, including waiting for handover from old TF to complete if applicable. |
abstract
void
|
displayCommandQueue(PrintWriter printWriter)
Output detailed debug info on state of command execution queue. |
abstract
void
|
displayCommandsInfo(PrintWriter printWriter, String regex)
Output a list of current commands. |
abstract
void
|
displayInvocationsInfo(PrintWriter printWriter)
Displays a list of current invocations. |
abstract
void
|
dumpCommandsXml(PrintWriter printWriter, String regex)
Dump the expanded xml file for the command with all
|
abstract
long
|
execCommand(IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Directly allocates a device and executes a command without adding it to the command queue
using an already existing |
abstract
long
|
execCommand(ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Directly allocates a device and executes a command without adding it to the command queue. |
abstract
long
|
execCommand(ICommandScheduler.IScheduledInvocationListener listener, ITestDevice device, String[] args)
Directly execute command on already allocated device. |
abstract
long
|
execCommand(ICommandScheduler.IScheduledInvocationListener listener,
Directly execute command on already allocated devices. |
abstract
CommandFileWatcher
|
getCommandFileWatcher()
Get the appropriate CommandFileWatcher for this scheduler |
abstract
int
|
getExecutingCommandCount()
Returns the number of Commands in executing state. |
abstract
String
|
getInvocationInfo(int invocationId)
Return the information on an invocation bu specifying the invocation id. |
abstract
CommandRunner.ExitCode
|
getLastInvocationExitCode()
Return the error code of the last invocation that ran. |
abstract
Throwable
|
getLastInvocationThrowable()
Return the |
abstract
int
|
getReadyCommandCount()
Returns the number of Commands in ready state in the queue. |
abstract
boolean
|
isDeviceInInvocationThread(ITestDevice device)
Returns true if the device is used by an active invocation thread. |
abstract
void
|
join()
Waits for scheduler to complete. |
abstract
void
|
join(long millis)
Waits for scheduler to complete or timeout after the duration specified in milliseconds. |
abstract
void
|
removeAllCommands()
Remove all commands from scheduler |
abstract
void
|
setClearcutClient(ClearcutClient client)
Set the client to report harness data |
abstract
boolean
|
shouldShutdownOnCmdfileError()
Return true if we need to shutdown the scheduler on a command errors |
default
void
|
shutdown()
Attempt to gracefully shutdown the command scheduler. |
abstract
void
|
shutdown(boolean notifyStop)
Attempt to gracefully shutdown the command scheduler. |
abstract
void
|
shutdownHard(boolean killAdb)
Attempt to forcefully shutdown the command scheduler. |
abstract
void
|
shutdownHard()
Attempt to forcefully shutdown the command scheduler. |
abstract
void
|
shutdownOnEmpty()
Similar to |
abstract
void
|
start()
Start the |
abstract
boolean
|
stopInvocation(int invocationId, String cause)
Stop a running invocation by specifying it's id. |
default
boolean
|
stopInvocation(int invocationId)
Stop a running invocation by specifying it's id. |
abstract
boolean
|
stopInvocation(ITestInvocation invocation)
Stop a running invocation. |
default
void
|
stopScheduling()
Stops scheduling and accepting new tests but does not stop Tradefed. |
Public methods
addCommand
public abstract Pair<Boolean, Integer> addCommand (String[] args)
Adds a command to the scheduler.
A command is essentially an instance of a configuration to run and its associated arguments.
If "--help" argument is specified the help text for the config will be outputed to stdout. Otherwise, the config will be added to the queue to run.
Parameters | |
---|---|
args |
String : the config arguments. |
Returns | |
---|---|
Pair<Boolean, Integer> |
A pair of values, first value is a Boolean true if command was added
successfully. Second value is the known command tracker id(non-negative value) if the
command was added successfully, return 0 when command is added for all devices, otherwise
-1. |
Throws | |
---|---|
ConfigurationException |
if command could not be parsed |
addCommandFile
public abstract void addCommandFile (String cmdFile,extraArgs)
Adds all commands from given file to the scheduler
Parameters | |
---|---|
cmdFile |
String : the filesystem path of comand file |
extraArgs |
: a ERROR(/List) of String arguments to append to each command parsed
from file. Can be empty but should not be null. |
Throws | |
---|---|
ConfigurationException |
if command file could not be parsed |
See also:
await
public abstract void await ()
Waits for scheduler to start running, including waiting for handover from old TF to complete if applicable.
displayCommandQueue
public abstract void displayCommandQueue (PrintWriter printWriter)
Output detailed debug info on state of command execution queue.
displayCommandsInfo
public abstract void displayCommandsInfo (PrintWriter printWriter, String regex)
Output a list of current commands.
Parameters | |
---|---|
printWriter |
PrintWriter : the ERROR(/PrintWriter) to output to. |
regex |
String : the regular expression to which commands should be matched in order to be
printed. If null, then all commands will be printed. |
displayInvocationsInfo
public abstract void displayInvocationsInfo (PrintWriter printWriter)
Displays a list of current invocations.
Parameters | |
---|---|
printWriter |
PrintWriter : the ERROR(/PrintWriter) to output to. |
dumpCommandsXml
public abstract void dumpCommandsXml (PrintWriter printWriter, String regex)
Dump the expanded xml file for the command with all
Option
values specified for all current commands.
Parameters | |
---|---|
printWriter |
PrintWriter : the ERROR(/PrintWriter) to output the status to. |
regex |
String : the regular expression to which commands should be matched in order for the
xml file to be dumped. If null, then all commands will be dumped. |
execCommand
public abstract long execCommand (IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Directly allocates a device and executes a command without adding it to the command queue
using an already existing IInvocationContext
.
Parameters | |
---|---|
context |
IInvocationContext : an existing IInvocationContext . |
listener |
ICommandScheduler.IScheduledInvocationListener : the ICommandScheduler.IScheduledInvocationListener to be informed |
args |
String : the command arguments |
Returns | |
---|---|
long |
Throws | |
---|---|
ConfigurationException |
if command was invalid |
NoDeviceException |
if there is no device to use |
execCommand
public abstract long execCommand (ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Directly allocates a device and executes a command without adding it to the command queue.
Parameters | |
---|---|
listener |
ICommandScheduler.IScheduledInvocationListener : the ICommandScheduler.IScheduledInvocationListener to be informed |
args |
String : the command arguments |
Returns | |
---|---|
long |
The invocation id of the scheduled command. |
Throws | |
---|---|
ConfigurationException |
if command was invalid |
NoDeviceException |
if there is no device to use |
execCommand
public abstract long execCommand (ICommandScheduler.IScheduledInvocationListener listener, ITestDevice device, String[] args)
Directly execute command on already allocated device.
Parameters | |
---|---|
listener |
ICommandScheduler.IScheduledInvocationListener : the ICommandScheduler.IScheduledInvocationListener to be informed |
device |
ITestDevice : the ITestDevice to use |
args |
String : the command arguments |
Returns | |
---|---|
long |
The invocation id of the scheduled command. |
Throws | |
---|---|
ConfigurationException |
if command was invalid |
execCommand
public abstract long execCommand (ICommandScheduler.IScheduledInvocationListener listener,devices, String[] args)
Directly execute command on already allocated devices.
Parameters | |
---|---|
listener |
ICommandScheduler.IScheduledInvocationListener : the ICommandScheduler.IScheduledInvocationListener to be informed |
devices |
: the ERROR(/List to use |
args |
String : the command arguments |
Returns | |
---|---|
long |
The invocation id of the scheduled command. |
Throws | |
---|---|
ConfigurationException |
if command was invalid |
getCommandFileWatcher
public abstract CommandFileWatcher getCommandFileWatcher ()
Get the appropriate CommandFileWatcher for this scheduler
Returns | |
---|---|
CommandFileWatcher |
getExecutingCommandCount
public abstract int getExecutingCommandCount ()
Returns the number of Commands in executing state.
Returns | |
---|---|
int |
getInvocationInfo
public abstract String getInvocationInfo (int invocationId)
Return the information on an invocation bu specifying the invocation id.
Parameters | |
---|---|
invocationId |
int : the tracking id of the invocation. |
Returns | |
---|---|
String |
A String containing information about the invocation. |
getLastInvocationExitCode
public abstract CommandRunner.ExitCode getLastInvocationExitCode ()
Return the error code of the last invocation that ran. Return 0 (no error), if no invocation has ran yet.
Returns | |
---|---|
CommandRunner.ExitCode |
getLastInvocationThrowable
public abstract Throwable getLastInvocationThrowable ()
Return the Throwable
from the last invocation that ran.
Return null, if no throwable is available.
Returns | |
---|---|
Throwable |
getReadyCommandCount
public abstract int getReadyCommandCount ()
Returns the number of Commands in ready state in the queue.
Returns | |
---|---|
int |
isDeviceInInvocationThread
public abstract boolean isDeviceInInvocationThread (ITestDevice device)
Returns true if the device is used by an active invocation thread.
Parameters | |
---|---|
device |
ITestDevice |
Returns | |
---|---|
boolean |
join
public abstract void join (long millis)
Waits for scheduler to complete or timeout after the duration specified in milliseconds.
Parameters | |
---|---|
millis |
long |
See also:
removeAllCommands
public abstract void removeAllCommands ()
Remove all commands from scheduler
setClearcutClient
public abstract void setClearcutClient (ClearcutClient client)
Set the client to report harness data
Parameters | |
---|---|
client |
ClearcutClient |
shouldShutdownOnCmdfileError
public abstract boolean shouldShutdownOnCmdfileError ()
Return true if we need to shutdown the scheduler on a command errors
Returns | |
---|---|
boolean |
shutdown
public void shutdown ()
Attempt to gracefully shutdown the command scheduler.
Clears commands waiting to be tested, and requests that all invocations in progress shut down gracefully.
After shutdown is called, the scheduler main loop will wait for all invocations in progress to complete before exiting completely.
shutdown
public abstract void shutdown (boolean notifyStop)
Attempt to gracefully shutdown the command scheduler.
Parameters | |
---|---|
notifyStop |
boolean : if true, notifies invocations of TF shutdown. |
shutdownHard
public abstract void shutdownHard (boolean killAdb)
Attempt to forcefully shutdown the command scheduler.
Similar to shutdown()
, but will also optionally kill the adb connection, in an
attempt to 'inspire' invocations in progress to complete quicker.
Parameters | |
---|---|
killAdb |
boolean |
shutdownHard
public abstract void shutdownHard ()
Attempt to forcefully shutdown the command scheduler. Same as shutdownHard(true).
shutdownOnEmpty
public abstract void shutdownOnEmpty ()
Similar to shutdown()
, but will instead wait for all commands to be executed
before exiting.
start
public abstract void start ()
Start the ICommandScheduler
.
shutdown()
is called.
see Thread.start()
.
stopInvocation
public abstract boolean stopInvocation (int invocationId, String cause)
Stop a running invocation by specifying it's id.
Parameters | |
---|---|
invocationId |
int : the tracking id of the invocation. |
cause |
String : the cause for stopping the invocation. |
Returns | |
---|---|
boolean |
true if the invocation was stopped, false otherwise |
Throws | |
---|---|
UnsupportedOperationException |
if the implementation doesn't support this |
stopInvocation
public boolean stopInvocation (int invocationId)
Stop a running invocation by specifying it's id.
Parameters | |
---|---|
invocationId |
int |
Returns | |
---|---|
boolean |
true if the invocation was stopped, false otherwise |
Throws | |
---|---|
UnsupportedOperationException |
if the implementation doesn't support this |
stopInvocation
public abstract boolean stopInvocation (ITestInvocation invocation)
Stop a running invocation.
Parameters | |
---|---|
invocation |
ITestInvocation |
Returns | |
---|---|
boolean |
true if the invocation was stopped, false otherwise |
Throws | |
---|---|
UnsupportedOperationException |
if the implementation doesn't support this |
stopScheduling
public void stopScheduling ()
Stops scheduling and accepting new tests but does not stop Tradefed. This is meant to enable a two steps shutdown where first we drain all the running tests, then terminate Tradefed process.
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2024-10-08 UTC.