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, Befehle basierend auf der Gesamtzahl der Ausführungszeiten zu priorisieren. Beispielsweise werden selten oder schnell ausgeführte Befehle vor Befehlen mit langer Ausführungszeit priorisiert.

Wird bis zum Herunterfahren im Hintergrund ausgeführt.

Zusammenfassung

Öffentliche Konstruktoren

CommandScheduler()

Erstellt einen CommandScheduler.

Öffentliche Methoden

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

Fügt dem Scheduler einen Befehl hinzu.

void addCommandFile(String cmdFilePath, extraArgs)

Fügen Sie dem Scheduler alle Befehle aus der angegebenen Datei hinzu.

void await()

Wartet, bis der Scheduler gestartet wird, einschließlich des Wartens auf die Fertigstellung 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 ISandbox, der für die Ausführung der Aufforderung verwendet wird.

void displayCommandQueue(PrintWriter printWriter)

Detaillierte Informationen zur Fehlerbehebung zum Status der Befehlsausführungswarteschlange ausgeben.

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 Option-Werten, die für alle aktuellen Befehle angegeben sind.

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

Befehl direkt auf einem bereits zugewiesenen Gerät ausführen.

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

Befehl direkt auf bereits zugewiesenen Geräten ausführen.

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 eine bereits vorhandene IInvocationContext verwendet.

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

Entsprechenden 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 der letzten Ausführung zurück.

Throwable getLastInvocationThrowable()

Gibt die Throwable aus der letzten Ausführung zurück.

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, extraArgs)
void removeAllCommands()

Alle Befehle aus dem Scheduler entfernen

void run()

Der Hauptausführungsblock dieses Threads.

void setClearcutClient(ClearcutClient client)

Client so einstellen, dass Harness-Daten erfasst werden

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 shutdown(), wartet aber, bis alle Befehle ausgeführt wurden, bevor das Programm beendet wird.

void start()

Startet den Scheduler, einschließlich Einrichtung des Loggings, Initialisierung von DeviceManager usw.

boolean stopInvocation(ITestInvocation invocation)

Beenden Sie eine laufende Aufrufabfolge.

boolean stopInvocation(int invocationId, String cause)

Sie können eine laufende Aufrufe beenden, indem Sie die ID angeben.

void stopScheduling()

Es werden keine neuen Tests mehr geplant und akzeptiert, Tradefed wird aber nicht beendet.

Geschützte Methoden

void cleanUp()

Schließt die Protokolle und führt alle anderen erforderlichen Bereinigungen durch, bevor wir beenden.

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

Bestimmt, ob ein bestimmter Befehl ein Trockenlauf ist.

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

Factory-Methode zum Abrufen einer Referenz auf die IConfigurationFactory

DeviceManagementGrpcServer getDeviceManagementServer()
IDeviceManager getDeviceManager()

Factory-Methode zum Abrufen einer Referenz auf die IDeviceManager

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

Hiermit wird eine IKeyStoreClient mit dem in IGlobalConfiguration deklarierten IKeyStoreFactory abgerufen. Ist keines definiert, wird „null“ zurückgegeben.

TestInvocationManagementServer getTestInvocationManagementServer()
void initLogging()

Initialisiert das ddmlib-Protokoll.

boolean isShutdown()
void processReadyCommands(IDeviceManager manager)

Ö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 Scheduler 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 der Warteschlange zum Ausführen 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ügen Sie dem Scheduler 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 prüfen, ob die Ausführung delegiert werden muss.

Parameter
args String

Returns
TradefedDelegator

Ausgabe
com.android.tradefed.config.ConfigurationException
ConfigurationException

createReleaseMap

public static  createReleaseMap (IInvocationContext context, 
                Throwable e)

Erstellen Sie eine Karte 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)

Liste der aktuellen Befehle ausgeben

Parameter
printWriter PrintWriter: die ERROR(/PrintWriter), in die die Ausgabe erfolgen soll.

regex String: Der reguläre Ausdruck, mit dem Befehle abgeglichen werden müssen, um gedruckt zu werden. Wenn „null“ ist, werden alle Befehle ausgegeben.

displayInvocationsInfo

public void displayInvocationsInfo (PrintWriter printWriter)

Eine Liste der aktuellen Aufrufe.

Parameter
printWriter PrintWriter: die ERROR(/PrintWriter), in die die Ausgabe erfolgen 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

execCommand

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

Befehl direkt auf bereits zugewiesenen Geräten ausführen.

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 eine bereits vorhandene IInvocationContext verwendet.

Parameter
context IInvocationContext: eine vorhandene IInvocationContext.

listener ICommandScheduler.IScheduledInvocationListener: der zu benachrichtigende ICommandScheduler.IScheduledInvocationListener

args String: die Befehlsargumente

Returns
long

Ausgabe
ConfigurationException
NoDeviceException

execCommand

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

getHostState

public CommandScheduler.HostState getHostState ()

Returns
CommandScheduler.HostState

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 der Aufrufs.

Returns
String Einen String mit Informationen zum Aufruf.

getLastInvocationExitCode

public CommandRunner.ExitCode getLastInvocationExitCode ()

Gibt den Fehlercode der letzten Ausführung 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 Status „Bereit“ in der Warteschlange 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 „wahr“, werden Aufrufe über das Herunterfahren von TF benachrichtigt.

shutdownHard

public void shutdownHard (boolean killAdb)

Versuchen Sie, den Befehlsplaner zu erzwingen.

Ähnlich wie shutdown(), aber optional wird auch die adb-Verbindung beendet, um laufende Aufrufe zu beschleunigen.

Parameter
killAdb boolean

shutdownHard

public void shutdownHard ()

Versuchen Sie, den Befehlsplaner zu erzwingen. Entspricht shutdownHard(true).

shutdownOnEmpty

public void shutdownOnEmpty ()

Ähnlich wie shutdown(), wartet aber, bis alle Befehle ausgeführt wurden, bevor das Programm beendet wird.

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)

Beenden Sie eine laufende Aufrufabfolge.

Parameter
invocation ITestInvocation

Returns
boolean „true“, wenn die Aufrufe beendet wurden, andernfalls „false“

stopInvocation

public boolean stopInvocation (int invocationId, 
                String cause)

Sie können eine laufende Aufrufe 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 ()

Es werden keine neuen Tests mehr geplant und akzeptiert, Tradefed wird aber nicht beendet. So soll ein zweistufiger Herunterfahrvorgang ermöglicht werden, bei dem zuerst alle laufenden Tests beendet und dann der Tradefed-Prozess beendet wird.

Geschützte Methoden

cleanUp

protected void cleanUp ()

Schließt die Protokolle und führt alle anderen erforderlichen Bereinigungen durch, bevor wir beenden.

Sie werden freigegeben, damit sie in Unittests 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 Trockenlauf ist. Wenn es sich um einen Probelauf handelt, validieren Sie ihn. Bei Konfigurationsproblemen wird eine ConfigurationException geworfen.

Parameter
handler ICommandScheduler.IScheduledInvocationListener: ERROR(/InvocationEventHandler), um Ereignisse für die Simulation zu melden.

config IConfiguration

Returns
void „true“, wenn der Befehl ein Trockenlauf ist, 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 einer Referenz auf die IConfigurationFactory

Returns
IConfigurationFactory den zu verwendenden 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

getFeatureServer

protected TradefedFeatureServer getFeatureServer ()

Returns
TradefedFeatureServer

getHostOptions

protected IHostOptions getHostOptions ()

Returns
IHostOptions

getKeyStoreClient

protected IKeyStoreClient getKeyStoreClient ()

Hiermit wird eine IKeyStoreClient mit dem in IGlobalConfiguration deklarierten IKeyStoreFactory abgerufen. Ist keines definiert, wird „null“ zurückgegeben.

Returns
IKeyStoreClient IKeyStoreClient

getTestInvocationManagementServer

protected TestInvocationManagementServer getTestInvocationManagementServer ()

Returns
TestInvocationManagementServer

initLogging

protected void initLogging ()

Initialisiert das ddmlib-Protokoll.

Sie werden freigegeben, damit sie in Unittests gemockt werden können.

isShutdown

protected boolean isShutdown ()

Returns
boolean

processReadyCommands

protected void processReadyCommands (IDeviceManager manager)

Parameter
manager IDeviceManager