CommandScheduler
public
class
CommandScheduler
extends Object
implements
ICommandScheduler
java.lang.Object | |
↳ | com.android.tradefed.command.CommandScheduler |
Ein Scheduler zum Ausführen von TradeFederation-Befehlen auf allen verfügbaren Geräten.
Es wird versucht, die auszuführenden Befehle basierend auf der Gesamtausführungszeit zu priorisieren. Selten ausgeführte oder schnell ausgeführte Befehle werden z.B. gegenüber Befehlen mit langer Ausführungszeit priorisiert.
Wird bis zum Herunterfahren im Hintergrund ausgeführt.
Zusammenfassung
Öffentliche Konstruktoren | |
---|---|
CommandScheduler()
Erstellt einen |
Öffentliche Methoden | |
---|---|
Pair<Boolean, Integer>
|
addCommand(String[] args)
Fügt dem Scheduler einen Befehl hinzu. |
void
|
addCommandFile(String cmdFilePath,
Fügt dem Planer alle Befehle aus der angegebenen Datei hinzu |
void
|
await()
Wartet auf den Beginn der Ausführung des Planers, einschließlich Warten auf den Abschluss der Übergabe von der alten TF, falls zutreffend. |
static
TradefedDelegator
|
checkDelegation(String[] args)
Erstellen Sie einen Delegator anhand der Befehlszeile, um zu prüfen, ob die Ausführung delegiert werden muss. |
static
|
createReleaseMap(IInvocationContext context, Throwable e)
Erstellen Sie eine Karte des Gerätestatus, damit sie entsprechend freigegeben werden können. |
ISandbox
|
createSandbox()
Erstellen Sie einen |
void
|
displayCommandQueue(PrintWriter printWriter)
Gibt detaillierte Debug-Informationen zum Status der Warteschlange für die Befehlsausführung aus. |
void
|
displayCommandsInfo(PrintWriter printWriter, String regex)
Liste der aktuellen Befehle ausgeben |
void
|
displayInvocationsInfo(PrintWriter printWriter)
Eine Liste der aktuellen Aufrufe. |
void
|
dumpCommandsXml(PrintWriter printWriter, String regex)
Dumpt die erweiterte XML-Datei für den Befehl mit allen |
long
|
execCommand(ICommandScheduler.IScheduledInvocationListener listener, ITestDevice device, String[] args)
Befehl direkt auf einem bereits zugewiesenen Gerät ausführen. |
long
|
execCommand(ICommandScheduler.IScheduledInvocationListener listener,
Befehl direkt auf bereits zugewiesenen Geräten ausführen. |
long
|
execCommand(IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Ordnet ein Gerät direkt zu und führt einen Befehl aus, ohne es mit einem bereits vorhandenen |
long
|
execCommand(ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Hiermit wird ein Gerät direkt zugewiesen und ein Befehl ausgeführt, ohne ihn der Befehlswarteschlange hinzuzufügen. |
CommandFileWatcher
|
getCommandFileWatcher()
Passenden CommandFileWatcher für diesen Planer abrufen |
int
|
getExecutingCommandCount()
Gibt die Anzahl der Befehle im Ausführungsstatus zurück. |
CommandScheduler.HostState
|
getHostState()
|
String
|
getInvocationInfo(int invocationId)
Gib die Informationen zu einem Aufruf zurück, indem du die Aufruf-ID angibst. |
CommandRunner.ExitCode
|
getLastInvocationExitCode()
Gibt den Fehlercode des letzten ausgeführten Aufrufs zurück. |
Throwable
|
getLastInvocationThrowable()
Gibt die |
int
|
getReadyCommandCount()
Gibt die Anzahl der Befehle im Status „Bereit“ in der Warteschlange zurück. |
long
|
getShutdownTimeout()
|
boolean
|
isDeviceInInvocationThread(ITestDevice device)
Gibt „true“ zurück, wenn das Gerät von einem aktiven Aufruf-Thread verwendet wird. |
boolean
|
isShuttingDown()
|
void
|
notifyFileChanged(File cmdFile,
|
void
|
removeAllCommands()
Alle Befehle aus dem Scheduler entfernen |
void
|
run()
Der Hauptausführungsblock dieses Threads. |
void
|
setClearcutClient(ClearcutClient client)
Den Kunden für die Berichterstellung über die Nutzungsdaten einrichten |
boolean
|
shouldShutdownOnCmdfileError()
Gibt „true“ zurück, wenn der Scheduler bei einem Befehlsfehler heruntergefahren werden muss. |
void
|
shutdown(boolean notifyStop)
Versuchen Sie, den Befehlsplaner ordnungsgemäß herunterzufahren. |
void
|
shutdownHard(boolean killAdb)
Versuchen Sie, den Befehlsplaner zu erzwingen. |
void
|
shutdownHard()
Versuchen Sie, den Befehlsplaner zu erzwingen. |
void
|
shutdownOnEmpty()
Ähnlich wie |
void
|
start()
Startet den Scheduler, einschließlich Einrichtung des Loggings, Initialisierung von |
boolean
|
stopInvocation(ITestInvocation invocation)
Laufende Aufrufe beenden |
boolean
|
stopInvocation(int invocationId, String cause)
Sie können eine laufende Aufrufung beenden, indem Sie die ID angeben. |
void
|
stopScheduling()
Es werden keine neuen Tests mehr geplant und akzeptiert, Tradefed wird aber nicht beendet. |
Öffentliche Konstruktoren
CommandScheduler
public CommandScheduler ()
Erstellt einen CommandScheduler
.
Hinweis: „start“ muss vor der Verwendung aufgerufen werden.
Öffentliche Methoden
addCommand
public Pair<Boolean, Integer> addCommand (String[] args)
Fügt dem Planer einen Befehl hinzu.
Ein Befehl ist im Wesentlichen eine Instanz einer ausführbaren Konfiguration und die zugehörigen Argumente.
Wenn das Argument „--help“ angegeben wird, wird der Hilfetext für die Konfiguration auf stdout ausgegeben. Andernfalls wird die Konfiguration zur Ausführung der Warteschlange hinzugefügt.
Parameter | |
---|---|
args |
String : die Konfigurationsargumente. |
Returns | |
---|---|
Pair<Boolean, Integer> |
Ein Wertepaar, wobei der erste Wert ein boolescher Wert true ist, wenn der Befehl erfolgreich hinzugefügt wurde. Der zweite Wert ist die bekannte Befehls-Tracker-ID(nicht negativ), wenn der Befehl erfolgreich hinzugefügt wurde. Wenn der Befehl für alle Geräte hinzugefügt wurde, wird „0“ zurückgegeben, andernfalls „-1“. |
Ausgabe | |
---|---|
ConfigurationException |
addCommandFile
public void addCommandFile (String cmdFilePath,extraArgs)
Fügt dem Planer alle Befehle aus der angegebenen Datei hinzu
Parameter | |
---|---|
cmdFilePath |
String : Dateisystempfad der Befehlsdatei |
extraArgs |
: Eine ERROR(/List) von String Argumenten, die jedem aus der Datei geparsten Befehl angehängt werden sollen. Kann leer sein, darf aber nicht null sein. |
Ausgabe | |
---|---|
ConfigurationException |
await
public void await ()
Wartet, bis der Scheduler gestartet wird, einschließlich des Wartens auf die Fertigstellung der Übergabe von der alten TF, falls zutreffend.
checkDelegation
public static TradefedDelegator checkDelegation (String[] args)
Erstellen Sie einen Delegator anhand der Befehlszeile, um zu sehen, ob wir die Ausführung delegieren müssen.
Parameter | |
---|---|
args |
String |
Returns | |
---|---|
TradefedDelegator |
Ausgabe | |
---|---|
|
com.android.tradefed.config.ConfigurationException |
ConfigurationException |
createReleaseMap
public staticcreateReleaseMap (IInvocationContext context, Throwable e)
Erstellen Sie eine Zuordnung des Gerätestatus, damit sie entsprechend freigegeben werden können.
Parameter | |
---|---|
context |
IInvocationContext |
e |
Throwable |
Returns | |
---|---|
|
createSandbox
public ISandbox createSandbox ()
Erstellen Sie einen ISandbox
, der für die Ausführung der Aufforderung verwendet wird.
Returns | |
---|---|
ISandbox |
displayCommandQueue
public void displayCommandQueue (PrintWriter printWriter)
Detaillierte Informationen zur Fehlerbehebung zum Status der Befehlsausführungswarteschlange ausgeben.
displayCommandsInfo
public void displayCommandsInfo (PrintWriter printWriter, String regex)
Gibt eine Liste der aktuellen Befehle aus.
Parameter | |
---|---|
printWriter |
PrintWriter : Der ERROR(/PrintWriter) , in den die Ausgabe erfolgen soll. |
regex |
String : Der reguläre Ausdruck, mit dem Befehle abgeglichen werden sollen, um gedruckt zu werden. Wenn „null“ ist, werden alle Befehle ausgegeben. |
displayInvocationsInfo
public void displayInvocationsInfo (PrintWriter printWriter)
Zeigt eine Liste der aktuellen Aufrufe an.
Parameter | |
---|---|
printWriter |
PrintWriter : ERROR(/PrintWriter) , in das die Ausgabe geschrieben werden soll. |
dumpCommandsXml
public void dumpCommandsXml (PrintWriter printWriter, String regex)
Dumpt die erweiterte XML-Datei für den Befehl mit allen Option
-Werten, die für alle aktuellen Befehle angegeben sind.
Parameter | |
---|---|
printWriter |
PrintWriter : ERROR(/PrintWriter) , auf das der Status ausgegeben werden soll. |
regex |
String : Der reguläre Ausdruck, mit dem Befehle abgeglichen werden sollen, damit die XML-Datei gedumpt wird. Wenn „null“ festgelegt ist, werden alle Befehle gedumpt. |
execCommand
public long execCommand (ICommandScheduler.IScheduledInvocationListener listener, ITestDevice device, String[] args)
Befehl direkt auf einem bereits zugewiesenen Gerät ausführen.
Parameter | |
---|---|
listener |
ICommandScheduler.IScheduledInvocationListener : der zu benachrichtigende ICommandScheduler.IScheduledInvocationListener |
device |
ITestDevice : der zu verwendende ITestDevice |
args |
String : die Befehlsargumente |
Returns | |
---|---|
long |
Die Aufruf-ID des geplanten Befehls. |
Ausgabe | |
---|---|
ConfigurationException |
Befehl ausführen
public long execCommand (ICommandScheduler.IScheduledInvocationListener listener,reservedDevices, String[] args)
Führen Sie Befehle direkt auf bereits zugewiesenen Geräten aus.
Parameter | |
---|---|
listener |
ICommandScheduler.IScheduledInvocationListener : der zu benachrichtigende ICommandScheduler.IScheduledInvocationListener |
reservedDevices |
: der zu verwendende ERROR(/List |
args |
String : die Befehlsargumente |
Returns | |
---|---|
long |
Die Aufruf-ID des geplanten Befehls. |
Ausgabe | |
---|---|
ConfigurationException |
execCommand
public long execCommand (IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Hiermit wird ein Gerät direkt zugewiesen und ein Befehl ausgeführt, ohne ihn der Befehlswarteschlange hinzuzufügen. Dabei wird ein bereits vorhandener IInvocationContext
verwendet.
Parameter | |
---|---|
context |
IInvocationContext : eine vorhandene IInvocationContext . |
listener |
ICommandScheduler.IScheduledInvocationListener : die zu informierenden ICommandScheduler.IScheduledInvocationListener |
args |
String : die Befehlsargumente |
Returns | |
---|---|
long |
Ausgabe | |
---|---|
ConfigurationException |
|
NoDeviceException |
Befehl ausführen
public long execCommand (ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Hiermit wird ein Gerät direkt zugewiesen und ein Befehl ausgeführt, ohne ihn der Befehlswarteschlange hinzuzufügen.
Parameter | |
---|---|
listener |
ICommandScheduler.IScheduledInvocationListener : der zu benachrichtigende ICommandScheduler.IScheduledInvocationListener |
args |
String : die Befehlsargumente |
Returns | |
---|---|
long |
Die Aufruf-ID des geplanten Befehls. |
Ausgabe | |
---|---|
ConfigurationException |
|
NoDeviceException |
getCommandFileWatcher
public CommandFileWatcher getCommandFileWatcher ()
Entsprechenden CommandFileWatcher für diesen Planer abrufen
Returns | |
---|---|
CommandFileWatcher |
getExecutingCommandCount
public int getExecutingCommandCount ()
Gibt die Anzahl der Befehle im Ausführungsstatus zurück.
Returns | |
---|---|
int |
getInvocationInfo
public String getInvocationInfo (int invocationId)
Gib die Informationen zu einem Aufruf zurück, indem du die Aufruf-ID angibst.
Parameter | |
---|---|
invocationId |
int : die Tracking-ID des Aufrufs. |
Returns | |
---|---|
String |
Einen String mit Informationen zum Aufruf. |
getLastInvocationExitCode
public CommandRunner.ExitCode getLastInvocationExitCode ()
Gibt den Fehlercode des letzten ausgeführten Aufrufs zurück. Gibt 0 (kein Fehler) zurück, wenn noch keine Aufrufe ausgeführt wurden.
Returns | |
---|---|
CommandRunner.ExitCode |
getLastInvocationThrowable
public Throwable getLastInvocationThrowable ()
Gibt die Throwable
aus der letzten Ausführung zurück.
Gibt null zurück, wenn kein throwable verfügbar ist.
Returns | |
---|---|
Throwable |
getReadyCommandCount
public int getReadyCommandCount ()
Gibt die Anzahl der Befehle im Warteschlangenstatus „Bereit“ zurück.
Returns | |
---|---|
int |
getShutdownTimeout
public long getShutdownTimeout ()
Returns | |
---|---|
long |
isDeviceInInvocationThread
public boolean isDeviceInInvocationThread (ITestDevice device)
Gibt „true“ zurück, wenn das Gerät von einem aktiven Aufruf-Thread verwendet wird.
Parameter | |
---|---|
device |
ITestDevice |
Returns | |
---|---|
boolean |
isShuttingDown
public boolean isShuttingDown ()
Returns | |
---|---|
boolean |
notifyFileChanged
public void notifyFileChanged (File cmdFile,extraArgs)
Parameter | |
---|---|
cmdFile |
File |
extraArgs |
|
removeAllCommands
public void removeAllCommands ()
Alle Befehle aus dem Scheduler entfernen
Homerun
public void run ()
Der Hauptausführungsblock dieses Threads.
SetClearcutClient
public void setClearcutClient (ClearcutClient client)
Client so einstellen, dass Harness-Daten erfasst werden
Parameter | |
---|---|
client |
ClearcutClient |
shouldShutdownOnCmdfileError
public boolean shouldShutdownOnCmdfileError ()
Gibt „true“ zurück, wenn der Scheduler bei einem Befehlsfehler heruntergefahren werden muss.
Returns | |
---|---|
boolean |
Herunterfahren
public void shutdown (boolean notifyStop)
Versuchen Sie, den Befehlsplaner ordnungsgemäß herunterzufahren.
Parameter | |
---|---|
notifyStop |
boolean : Wenn „true“, werden Aufrufe des TF-Herunterfahrens benachrichtigt. |
Herunterfahren schwierig
public void shutdownHard (boolean killAdb)
Versuchen Sie, den Befehlsplaner zu erzwingen.
Ähnlich wie shutdown()
, unterbricht aber auch optional die ADB-Verbindung, um laufende Aufrufe zu „inspirieren“, um den Vorgang schneller abzuschließen.
Parameter | |
---|---|
killAdb |
boolean |
Herunterfahren schwierig
public void shutdownHard ()
Versuchen Sie, den Befehlsplaner zu erzwingen. Entspricht shutdownHard(true).
shutdownOnEmpty
public void shutdownOnEmpty ()
Ähnlich wie shutdown()
, wird jedoch mit dem Beenden auf die Ausführung aller Befehle gewartet.
Wenn Befehle im Loop-Modus sind, wird der Scheduler nie beendet.
start
public void start ()
Startet den Scheduler, einschließlich Einrichtung des Loggings, Initialisierung von DeviceManager
usw.
stopInvocation
public boolean stopInvocation (ITestInvocation invocation)
Laufende Aufrufe beenden
Parameter | |
---|---|
invocation |
ITestInvocation |
Returns | |
---|---|
boolean |
„true“, wenn der Aufruf beendet wurde, andernfalls „false“ |
stopInvocation
public boolean stopInvocation (int invocationId, String cause)
Sie können eine laufende Aufrufung beenden, indem Sie die ID angeben.
Parameter | |
---|---|
invocationId |
int : die Tracking-ID der Aufrufs. |
cause |
String : Der Grund für das Beenden der Aufrufs. |
Returns | |
---|---|
boolean |
„true“, wenn die Aufrufe beendet wurden, andernfalls „false“ |
stopScheduling
public void stopScheduling ()
Neue Tests werden nicht mehr geplant und akzeptiert, Tradefed wird aber nicht beendet. Dadurch soll ein Herunterfahren in zwei Schritten ermöglicht werden, bei dem zuerst alle laufenden Tests geleert und dann der Tradefed-Prozess beendet wird.
Geschützte Methoden
cleanUp
protected void cleanUp ()
Schließt die Logs und führt alle anderen erforderlichen Bereinigungen durch, bevor wir den Vorgang beenden.
Sie werden freigegeben, damit sie in Unit-Tests gemockt werden können.
createConfiguration
protected IConfiguration createConfiguration (String[] args)
Parameter | |
---|---|
args |
String |
Returns | |
---|---|
IConfiguration |
Ausgabe | |
---|---|
ConfigurationException |
createInvocationContext
protected IInvocationContext createInvocationContext ()
Returns | |
---|---|
IInvocationContext |
dryRunCommandReporting
protected void dryRunCommandReporting (ICommandScheduler.IScheduledInvocationListener handler, IConfiguration config)
Bestimmt, ob ein bestimmter Befehl ein Probelauf ist. Wenn es sich um einen Probelauf handelt, validieren Sie ihn. Wenn es ein Konfigurationsproblem gibt, wird eine ConfigurationException ausgelöst.
Parameter | |
---|---|
handler |
ICommandScheduler.IScheduledInvocationListener : ERROR(/InvocationEventHandler) , um Ereignisse für die Simulation zu melden. |
config |
IConfiguration |
Returns | |
---|---|
void |
„true“, wenn es sich um einen Trockenlauf handelt, andernfalls „false“. |
Ausgabe | |
---|---|
|
com.android.tradefed.config.ConfigurationException |
ConfigurationException |
execCommand
protected long execCommand (IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener,reservedDevices, String[] args)
Parameter | |
---|---|
context |
IInvocationContext |
listener |
ICommandScheduler.IScheduledInvocationListener |
reservedDevices |
|
args |
String |
Returns | |
---|---|
long |
Ausgabe | |
---|---|
ConfigurationException |
getConfigFactory
protected IConfigurationFactory getConfigFactory ()
Factory-Methode zum Abrufen eines Verweises auf IConfigurationFactory
Returns | |
---|---|
IConfigurationFactory |
das zu verwendende IConfigurationFactory |
getDeviceManagementServer
protected DeviceManagementGrpcServer getDeviceManagementServer ()
Returns | |
---|---|
DeviceManagementGrpcServer |
getDeviceManager
protected IDeviceManager getDeviceManager ()
Factory-Methode zum Abrufen einer Referenz auf die IDeviceManager
Returns | |
---|---|
IDeviceManager |
den zu verwendenden IDeviceManager |
getKeyStoreClient
protected IKeyStoreClient getKeyStoreClient ()
Ruft ein IKeyStoreClient
mit dem in IGlobalConfiguration
deklarierten IKeyStoreFactory
oder null ab, wenn kein definiert ist.
Returns | |
---|---|
IKeyStoreClient |
IKeyStoreClient |
getTestInvocationManagementServer
protected TestInvocationManagementServer getTestInvocationManagementServer ()
Returns | |
---|---|
TestInvocationManagementServer |
initLogging
protected void initLogging ()
Initialisiert das ddmlib-Protokoll.
Wird ausgesetzt, damit Einheitentests Simulationen können.
isShutdown
protected boolean isShutdown ()
Returns | |
---|---|
boolean |
processReadyCommands
protected void processReadyCommands (IDeviceManager manager)
Parameter | |
---|---|
manager |
IDeviceManager |