CommandScheduler

public class CommandScheduler
extends Object implements ICommandScheduler

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


Ein Planer zum Ausführen von TradeFederation-Befehlen auf allen verfügbaren Geräten.

Versucht, auszuführende Befehle basierend auf einer Gesamtzahl ihrer Ausführungszeit zu priorisieren. z. B. selten oder schnell ausgeführte Befehle werden gegenüber lang andauernden Befehlen priorisiert.

Läuft bis zum Herunterfahren für immer im Hintergrund.

Zusammenfassung

Öffentliche Konstrukteure

CommandScheduler ()

Erstellt einen CommandScheduler .

Öffentliche Methoden

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

Fügt dem Planer einen Befehl hinzu.

void addCommandFile (String cmdFilePath, extraArgs) addCommandFile (String cmdFilePath, extraArgs)

Fügt dem Scheduler alle Befehle aus der angegebenen Datei hinzu

void await ()

Wartet darauf, dass der Planer zu laufen beginnt, einschließlich des Wartens auf den Abschluss der Übergabe von der alten TF, falls zutreffend.

static TradefedDelegator checkDelegation (String[] args)

Erstellen Sie einen Delegator basierend auf der Befehlszeile, um zu sehen, ob wir die Ausführung delegieren müssen.

static createReleaseMap ( IInvocationContext context, Throwable e)

Erstellen Sie eine Karte des Gerätestatus, damit sie entsprechend freigegeben werden können.

ISandbox createSandbox ()

Erstellen Sie eine ISandbox , die der Aufruf zum Ausführen verwendet.

void displayCommandQueue (PrintWriter printWriter)

Gibt detaillierte Debug-Informationen zum Status der Befehlsausführungswarteschlange aus.

void displayCommandsInfo (PrintWriter printWriter, String regex)

Gibt eine Liste der aktuellen Befehle aus.

void displayInvocationsInfo (PrintWriter printWriter)

Zeigt eine Liste der aktuellen Aufrufe an.

void dumpCommandsXml (PrintWriter printWriter, String regex)

Sichern Sie die erweiterte XML-Datei für den Befehl mit allen Option , die für alle aktuellen Befehle angegeben sind.

long execCommand ( ICommandScheduler.IScheduledInvocationListener listener, reservedDevices, String[] args) 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)

Weist ein Gerät direkt zu und führt einen Befehl aus, ohne ihn mithilfe eines bereits vorhandenen IInvocationContext zur Befehlswarteschlange hinzuzufügen.

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

Weist ein Gerät direkt zu und führt einen Befehl aus, ohne es der Befehlswarteschlange hinzuzufügen.

CommandFileWatcher getCommandFileWatcher ()

Rufen Sie den entsprechenden CommandFileWatcher für diesen Scheduler ab

int getExecutingCommandCount ()

Gibt die Anzahl der Befehle im Ausführungsstatus zurück.

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

Geben Sie die Informationen zu einem Aufruf zurück, indem Sie die Aufruf-ID angeben.

CommandRunner.ExitCode getLastInvocationExitCode ()

Gibt den Fehlercode des zuletzt ausgeführten Aufrufs zurück.

Throwable getLastInvocationThrowable ()

Gibt ERROR(/Throwable) vom letzten ausgeführten Aufruf zurück.

int getReadyCommandCount ()

Gibt die Anzahl der Befehle im Bereitschaftszustand 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.

void notifyFileChanged (File cmdFile, extraArgs) notifyFileChanged (File cmdFile, extraArgs)
void removeAllCommands ()

Entfernen Sie alle Befehle aus dem Planer

void run ()

Der Hauptausführungsblock dieses Threads.

void setClearcutClient (ClearcutClient client)

Stellen Sie den Client so ein, dass er Kabelbaumdaten meldet

boolean shouldShutdownOnCmdfileError ()

Geben Sie true zurück, wenn wir den Scheduler bei einem Befehlsfehler herunterfahren müssen

void shutdown (boolean notifyStop)

Versuchen Sie, den Befehlsplaner ordnungsgemäß herunterzufahren.

void shutdownHard (boolean killAdb)

Versuchen Sie, den Befehlsplaner zwangsweise herunterzufahren.

void shutdownHard ()

Versuchen Sie, den Befehlsplaner zwangsweise herunterzufahren.

void shutdownOnEmpty ()

Ähnlich wie shutdown() , wartet aber stattdessen darauf, dass alle Befehle ausgeführt werden, bevor es beendet wird.

void start ()

Startet den Scheduler inkl. Einrichtung von Logging, Init von DeviceManager etc

boolean stopInvocation ( ITestInvocation invocation)

Stoppen Sie einen laufenden Aufruf.

boolean stopInvocation (int invocationId, String cause)

Stoppen Sie einen laufenden Aufruf, indem Sie seine ID angeben.

Geschützte Methoden

void cleanUp ()

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

IConfiguration createConfiguration (String[] args)
IInvocationContext createInvocationContext ()
long execCommand ( IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, reservedDevices, String[] args) 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 eines Verweises auf den IDeviceManager

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

Ruft einen IKeyStoreClient unter Verwendung der in IGlobalConfiguration deklarierten IKeyStoreFactory oder null ab, wenn keine definiert ist.

TestInvocationManagementServer getTestInvocationManagementServer ()
void initLogging ()

Initialisiert das ddmlib-Protokoll.

boolean isShutdown ()
boolean isShuttingDown ()
void processReadyCommands ( IDeviceManager manager)

Öffentliche Konstrukteure

CommandScheduler

public CommandScheduler ()

Erstellt einen CommandScheduler .

Hinweis: start muss vor der Verwendung aufgerufen werden.

Öffentliche Methoden

Befehl hinzufügen

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

Fügt dem Planer einen Befehl hinzu.

Ein Befehl ist im Wesentlichen eine Instanz einer auszuführenden Konfiguration und der zugehörigen Argumente.

Wenn das Argument "--help" angegeben ist, wird der Hilfetext für die Konfiguration auf stdout ausgegeben. Andernfalls wird die Konfiguration zur Ausführung zur Warteschlange hinzugefügt.

Parameter
args String : die Konfigurationsargumente.

Kehrt zurück
Pair <Boolean, Integer> Ein Wertepaar, der erste Wert ist ein boolescher true , wenn der Befehl erfolgreich hinzugefügt wurde. Der zweite Wert ist die bekannte Befehlsverfolgungs-ID (nicht negativer Wert), wenn der Befehl erfolgreich hinzugefügt wurde, geben Sie 0 zurück, wenn der Befehl für alle Geräte hinzugefügt wurde, andernfalls -1.

Wirft
ConfigurationException

Befehlsdatei hinzufügen

public void addCommandFile (String cmdFilePath, 
                 extraArgs)

Fügt dem Scheduler alle Befehle aus der angegebenen Datei hinzu

Parameter
cmdFilePath String : der Dateisystempfad der Befehlsdatei

extraArgs : eine ERROR(/List) mit ERROR(/String) -Argumenten, die an jeden aus der Datei geparsten Befehl angehängt werden. Kann leer sein, sollte aber nicht null sein.

Wirft
ConfigurationException

erwarten

public void await ()

Wartet darauf, dass der Planer zu laufen beginnt, einschließlich des Wartens auf den Abschluss der Übergabe von der alten TF, falls zutreffend.

checkDelegation

public static TradefedDelegator checkDelegation (String[] args)

Erstellen Sie einen Delegator basierend auf der Befehlszeile, um zu sehen, ob wir die Ausführung delegieren müssen.

Parameter
args String

Kehrt zurück
TradefedDelegator

Wirft
com.android.tradefed.config.ConfigurationException
ConfigurationException

ReleaseMap erstellen

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

Kehrt zurück

Sandbox erstellen

public ISandbox createSandbox ()

Erstellen Sie eine ISandbox , die der Aufruf zum Ausführen verwendet.

Kehrt zurück
ISandbox

displayCommandQueue

public void displayCommandQueue (PrintWriter printWriter)

Gibt detaillierte Debug-Informationen zum Status der Befehlsausführungswarteschlange aus.

displayCommandsInfo

public void displayCommandsInfo (PrintWriter printWriter, 
                String regex)

Gibt eine Liste der aktuellen Befehle aus.

Parameter
printWriter PrintWriter : der ERROR(/PrintWriter) für die Ausgabe.

regex String : Der reguläre Ausdruck, mit dem Befehle abgeglichen werden sollten, um gedruckt zu werden. Wenn null, werden alle Befehle gedruckt.

displayInvocationsInfo

public void displayInvocationsInfo (PrintWriter printWriter)

Zeigt eine Liste der aktuellen Aufrufe an.

Parameter
printWriter PrintWriter : der ERROR(/PrintWriter) für die Ausgabe.

dumpCommandsXml

public void dumpCommandsXml (PrintWriter printWriter, 
                String regex)

Sichern Sie die erweiterte XML-Datei für den Befehl mit allen Option , die für alle aktuellen Befehle angegeben sind.

Parameter
printWriter PrintWriter : der ERROR(/PrintWriter) zum Ausgeben des Status.

regex String : Der reguläre Ausdruck, mit dem Befehle abgeglichen werden sollten, damit die XML-Datei ausgegeben wird. Wenn null, werden alle Befehle ausgegeben.

execBefehl

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

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

Parameter
listener ICommandScheduler.IScheduledInvocationListener : der zu informierende ICommandScheduler.IScheduledInvocationListener

reservedDevices : der ERROR(/List ) ERROR(/List ) zu verwenden

args String : die Befehlsargumente

Kehrt zurück
long Die Aufruf-ID des geplanten Befehls.

Wirft
ConfigurationException

execBefehl

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

Weist ein Gerät direkt zu und führt einen Befehl aus, ohne ihn mithilfe eines bereits vorhandenen IInvocationContext zur Befehlswarteschlange hinzuzufügen.

Parameter
context IInvocationContext : ein vorhandener IInvocationContext .

listener ICommandScheduler.IScheduledInvocationListener : der zu informierende ICommandScheduler.IScheduledInvocationListener

args String : die Befehlsargumente

Kehrt zurück
long

Wirft
ConfigurationException
NoDeviceException

execBefehl

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

Weist ein Gerät direkt zu und führt einen Befehl aus, ohne es der Befehlswarteschlange hinzuzufügen.

Parameter
listener ICommandScheduler.IScheduledInvocationListener : der zu informierende ICommandScheduler.IScheduledInvocationListener

args String : die Befehlsargumente

Kehrt zurück
long Die Aufruf-ID des geplanten Befehls.

Wirft
ConfigurationException
NoDeviceException

getCommandFileWatcher

public CommandFileWatcher getCommandFileWatcher ()

Rufen Sie den entsprechenden CommandFileWatcher für diesen Scheduler ab

Kehrt zurück
CommandFileWatcher

getExecutingCommandCount

public int getExecutingCommandCount ()

Gibt die Anzahl der Befehle im Ausführungsstatus zurück.

Kehrt zurück
int

getHostState

public CommandScheduler.HostState getHostState ()

Kehrt zurück
CommandScheduler.HostState

getInvocationInfo

public String getInvocationInfo (int invocationId)

Geben Sie die Informationen zu einem Aufruf zurück, indem Sie die Aufruf-ID angeben.

Parameter
invocationId int : die Tracking-ID des Aufrufs.

Kehrt zurück
String Ein ERROR(/String) mit Informationen über den Aufruf.

getLastInvocationExitCode

public CommandRunner.ExitCode getLastInvocationExitCode ()

Gibt den Fehlercode des zuletzt ausgeführten Aufrufs zurück. Rückgabe 0 (kein Fehler), wenn noch kein Aufruf gelaufen ist.

Kehrt zurück
CommandRunner.ExitCode

getLastInvocationThrowable

public Throwable getLastInvocationThrowable ()

Gibt ERROR(/Throwable) vom letzten ausgeführten Aufruf zurück. Gibt null zurück, wenn kein Throwable verfügbar ist.

Kehrt zurück
Throwable

getReadyCommandCount

public int getReadyCommandCount ()

Gibt die Anzahl der Befehle im Bereitschaftszustand in der Warteschlange zurück.

Kehrt zurück
int

getShutdownTimeout

public long getShutdownTimeout ()

Kehrt zurück
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

Kehrt zurück
boolean

Benachrichtigungsdateigeändert

public void notifyFileChanged (File cmdFile, 
                 extraArgs)

Parameter
cmdFile File

extraArgs

Alle Befehle entfernen

public void removeAllCommands ()

Entfernen Sie alle Befehle aus dem Planer

laufen

public void run ()

Der Hauptausführungsblock dieses Threads.

setClearcutClient

public void setClearcutClient (ClearcutClient client)

Stellen Sie den Client so ein, dass er Kabelbaumdaten meldet

Parameter
client ClearcutClient

shouldShutdownOnCmdfileError

public boolean shouldShutdownOnCmdfileError ()

Geben Sie true zurück, wenn wir den Scheduler bei einem Befehlsfehler herunterfahren müssen

Kehrt zurück
boolean

abschalten

public void shutdown (boolean notifyStop)

Versuchen Sie, den Befehlsplaner ordnungsgemäß herunterzufahren.

Parameter
notifyStop boolean : wenn wahr, benachrichtigt Aufrufe von TF Shutdown.

HerunterfahrenHart

public void shutdownHard (boolean killAdb)

Versuchen Sie, den Befehlsplaner zwangsweise herunterzufahren.

Ähnlich wie shutdown() , beendet aber optional auch die adb-Verbindung, um zu versuchen, laufende Aufrufe zu „inspirieren“, schneller abzuschließen.

Parameter
killAdb boolean

HerunterfahrenHart

public void shutdownHard ()

Versuchen Sie, den Befehlsplaner zwangsweise herunterzufahren. Dasselbe wie shutdownHard(true).

ShutdownOnEmpty

public void shutdownOnEmpty ()

Ähnlich wie shutdown() , wartet aber stattdessen darauf, dass alle Befehle ausgeführt werden, bevor es beendet wird.

Beachten Sie, dass der Scheduler niemals beendet wird, wenn sich Befehle im Schleifenmodus befinden.

Start

public void start ()

Startet den Scheduler inkl. Einrichtung von Logging, Init von DeviceManager etc

stopAufruf

public boolean stopInvocation (ITestInvocation invocation)

Stoppen Sie einen laufenden Aufruf.

Parameter
invocation ITestInvocation

Kehrt zurück
boolean true, wenn der Aufruf gestoppt wurde, andernfalls false

stopAufruf

public boolean stopInvocation (int invocationId, 
                String cause)

Stoppen Sie einen laufenden Aufruf, indem Sie seine ID angeben.

Parameter
invocationId int : die Tracking-ID des Aufrufs.

cause String : die Ursache für das Stoppen des Aufrufs.

Kehrt zurück
boolean true, wenn der Aufruf gestoppt wurde, andernfalls false

Geschützte Methoden

Aufräumen

protected void cleanUp ()

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

Offengelegt, damit Unit-Tests spotten können.

createConfiguration

protected IConfiguration createConfiguration (String[] args)

Parameter
args String

Kehrt zurück
IConfiguration

Wirft
ConfigurationException

createInvocationContext

protected IInvocationContext createInvocationContext ()

Kehrt zurück
IInvocationContext

execBefehl

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

Parameter
context IInvocationContext

listener ICommandScheduler.IScheduledInvocationListener

reservedDevices

args String

Kehrt zurück
long

Wirft
ConfigurationException

getConfigFactory

protected IConfigurationFactory getConfigFactory ()

Factory-Methode zum Abrufen einer Referenz auf die IConfigurationFactory

Kehrt zurück
IConfigurationFactory die zu verwendende IConfigurationFactory

getDeviceManagementServer

protected DeviceManagementGrpcServer getDeviceManagementServer ()

Kehrt zurück
DeviceManagementGrpcServer

getDeviceManager

protected IDeviceManager getDeviceManager ()

Factory-Methode zum Abrufen eines Verweises auf den IDeviceManager

Kehrt zurück
IDeviceManager der zu verwendende IDeviceManager

getFeatureServer

protected TradefedFeatureServer getFeatureServer ()

Kehrt zurück
TradefedFeatureServer

getHostOptions

protected IHostOptions getHostOptions ()

Kehrt zurück
IHostOptions

getKeyStoreClient

protected IKeyStoreClient getKeyStoreClient ()

Ruft einen IKeyStoreClient unter Verwendung der in IGlobalConfiguration deklarierten IKeyStoreFactory oder null ab, wenn keine definiert ist.

Kehrt zurück
IKeyStoreClient IKeyStoreClient

getTestInvocationManagementServer

protected TestInvocationManagementServer getTestInvocationManagementServer ()

Kehrt zurück
TestInvocationManagementServer

initLogging

protected void initLogging ()

Initialisiert das ddmlib-Protokoll.

Offengelegt, damit Unit-Tests spotten können.

istShutdown

protected boolean isShutdown ()

Kehrt zurück
boolean

isShuttingDown

protected boolean isShuttingDown ()

Kehrt zurück
boolean

processReadyCommands

protected void processReadyCommands (IDeviceManager manager)

Parameter
manager IDeviceManager