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, die auszuführenden Befehle basierend auf der Gesamtausführungszahl ihrer Ausführungszeit zu priorisieren. Beispielsweise erhalten selten oder schnell laufende Befehle Vorrang vor lang laufenden Befehlen.

Läuft dauerhaft im Hintergrund, bis es heruntergefahren wird.

Zusammenfassung

Öffentliche Bauträger

CommandScheduler ()

Erstellt einen CommandScheduler .

Öffentliche Methoden

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

Fügt dem Scheduler einen Befehl hinzu.

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

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

void await ()

Wartet darauf, dass der Scheduler mit der Ausführung beginnt, einschließlich gegebenenfalls auf den Abschluss der Übergabe vom alten TF.

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 diese entsprechend freigegeben werden kann.

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)

Erstellen Sie einen Dump der erweiterten XML-Datei für den Befehl mit allen für alle aktuellen Befehle angegebenen Option .

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

Führen Sie den Befehl direkt auf bereits zugewiesenen Geräten aus.

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

Ordnet 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 ihn zur Befehlswarteschlange hinzuzufügen.

CommandFileWatcher getCommandFileWatcher ()

Holen Sie sich den entsprechenden CommandFileWatcher für diesen Scheduler

int getExecutingCommandCount ()

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

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

Gibt die Informationen zu einem Aufruf-BU zurück und gibt dabei die Aufruf-ID an.

CommandRunner.ExitCode getLastInvocationExitCode ()

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

Throwable getLastInvocationThrowable ()

Gibt das 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 Aufrufthread verwendet wird.

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

Entfernen Sie alle Befehle aus dem Scheduler

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 aufgrund eines Befehlsfehlers 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 jedoch vor dem Beenden auf die Ausführung aller Befehle.

void start ()

Startet den Scheduler, einschließlich der Einrichtung der Protokollierung, der Initialisierung des DeviceManager usw

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.

void stopScheduling ()

Stoppt die Planung und Annahme neuer Tests, stoppt jedoch nicht Tradefed.

Geschützte Methoden

void cleanUp ()

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

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

Bestimmt, ob ein gegebener Befehl ein Probelauf ist.

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 eines Verweises 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 mithilfe der in IGlobalConfiguration deklarierten IKeyStoreFactory oder null ab, wenn keine definiert ist.

TestInvocationManagementServer getTestInvocationManagementServer ()
void initLogging ()

Initialisiert das ddmlib-Protokoll.

boolean isShutdown ()
void processReadyCommands ( IDeviceManager manager)

Öffentliche Bauträger

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 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 Befehls-Tracker-ID (nicht negativer Wert). Wenn der Befehl erfolgreich hinzugefügt wurde, wird 0 zurückgegeben, wenn der Befehl für alle Geräte hinzugefügt wurde, andernfalls -1.

Würfe
ConfigurationException

addCommandFile

public void addCommandFile (String cmdFilePath, 
                 extraArgs)

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

Parameter
cmdFilePath String : der Dateisystempfad der Befehlsdatei

extraArgs : ein ERROR(/List) von String Argumenten, die an jeden aus der Datei analysierten Befehl angehängt werden sollen. Kann leer sein, sollte aber nicht null sein.

Würfe
ConfigurationException

erwarten

public void await ()

Wartet darauf, dass der Scheduler mit der Ausführung beginnt, einschließlich gegebenenfalls auf den Abschluss der Übergabe vom alten TF.

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

Würfe
com.android.tradefed.config.ConfigurationException
ConfigurationException

createReleaseMap

public static  createReleaseMap (IInvocationContext context, 
                Throwable e)

Erstellen Sie eine Karte des Gerätestatus, damit diese entsprechend freigegeben werden kann.

Parameter
context IInvocationContext

e Throwable

Kehrt zurück

createSandbox

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) , an den ausgegeben werden soll.

regex String : der reguläre Ausdruck, dem Befehle zugeordnet werden müssen, damit sie gedruckt 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) , an den ausgegeben werden soll.

dumpCommandsXml

public void dumpCommandsXml (PrintWriter printWriter, 
                String regex)

Erstellen Sie einen Dump der erweiterten XML-Datei für den Befehl mit allen für alle aktuellen Befehle angegebenen Option .

Parameter
printWriter PrintWriter : der ERROR(/PrintWriter) , an den der Status ausgegeben werden soll.

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

execCommand

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

Führen Sie den Befehl direkt auf bereits zugewiesenen Geräten aus.

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

reservedDevices : der ERROR(/List ) ERROR(/List ) benutzen

args String : die Befehlsargumente

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

Würfe
ConfigurationException

execCommand

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

Ordnet 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

Würfe
ConfigurationException
NoDeviceException

execCommand

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

Weist ein Gerät direkt zu und führt einen Befehl aus, ohne ihn zur 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.

Würfe
ConfigurationException
NoDeviceException

getCommandFileWatcher

public CommandFileWatcher getCommandFileWatcher ()

Holen Sie sich den entsprechenden CommandFileWatcher für diesen Scheduler

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)

Gibt die Informationen zu einem Aufruf-BU zurück und gibt dabei die Aufruf-ID an.

Parameter
invocationId int : die Tracking-ID des Aufrufs.

Kehrt zurück
String Ein String , der Informationen zum Aufruf enthält.

getLastInvocationExitCode

public CommandRunner.ExitCode getLastInvocationExitCode ()

Gibt den Fehlercode des letzten ausgeführten Aufrufs zurück. Gibt 0 (kein Fehler) zurück, wenn noch kein Aufruf ausgeführt wurde.

Kehrt zurück
CommandRunner.ExitCode

getLastInvocationThrowable

public Throwable getLastInvocationThrowable ()

Gibt das 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 Aufrufthread verwendet wird.

Parameter
device ITestDevice

Kehrt zurück
boolean

isShuttingDown

public boolean isShuttingDown ()

Kehrt zurück
boolean

notifyFileChanged

public void notifyFileChanged (File cmdFile, 
                 extraArgs)

Parameter
cmdFile File

extraArgs

RemoveAllCommands

public void removeAllCommands ()

Entfernen Sie alle Befehle aus dem Scheduler

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 aufgrund eines Befehlsfehlers herunterfahren müssen

Kehrt zurück
boolean

abschalten

public void shutdown (boolean notifyStop)

Versuchen Sie, den Befehlsplaner ordnungsgemäß herunterzufahren.

Parameter
notifyStop boolean : Wenn true, werden Aufrufe über das Herunterfahren von TF benachrichtigt.

ShutdownHard

public void shutdownHard (boolean killAdb)

Versuchen Sie, den Befehlsplaner zwangsweise herunterzufahren.

Ähnlich wie shutdown() , beendet aber optional auch die ADB-Verbindung, um laufende Aufrufe zu „inspirieren“, damit sie schneller abgeschlossen werden.

Parameter
killAdb boolean

ShutdownHard

public void shutdownHard ()

Versuchen Sie, den Befehlsplaner zwangsweise herunterzufahren. Identisch mit „shutdownHard(true)“.

ShutdownOnEmpty

public void shutdownOnEmpty ()

Ähnlich wie shutdown() , wartet jedoch vor dem Beenden auf die Ausführung aller Befehle.

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

Start

public void start ()

Startet den Scheduler, einschließlich der Einrichtung der Protokollierung, der Initialisierung des DeviceManager usw

stopInvocation

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

stopInvocation

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 : Der Grund für das Stoppen des Aufrufs.

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

stopScheduling

public void stopScheduling ()

Stoppt die Planung und Annahme neuer Tests, stoppt jedoch nicht Tradefed. Dies soll ein zweistufiges Herunterfahren ermöglichen, bei dem wir zunächst alle laufenden Tests entleeren und dann den Tradefed-Prozess beenden.

Geschützte Methoden

Aufräumen

protected void cleanUp ()

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

Offengelegt, damit Unit-Tests verspotten können.

createConfiguration

protected IConfiguration createConfiguration (String[] args)

Parameter
args String

Kehrt zurück
IConfiguration

Würfe
ConfigurationException

createInvocationContext

protected IInvocationContext createInvocationContext ()

Kehrt zurück
IInvocationContext

dryRunCommandReporting

protected void dryRunCommandReporting (ICommandScheduler.IScheduledInvocationListener handler, 
                IConfiguration config)

Bestimmt, ob ein gegebener Befehl ein Probelauf ist. Wenn es sich bei dem Befehl um einen Probelauf handelt, validieren Sie ihn. Wenn es ein Konfigurationsproblem gibt, wird eine ConfigurationException ausgelöst.

Parameter
handler ICommandScheduler.IScheduledInvocationListener : ERROR(/InvocationEventHandler) zum Melden von Ereignissen für die Probelaufvalidierung.

config IConfiguration

Kehrt zurück
void true, wenn der Befehl ein Probelauf ist, andernfalls false.

Würfe
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

Kehrt zurück
long

Würfe
ConfigurationException

getConfigFactory

protected IConfigurationFactory getConfigFactory ()

Factory-Methode zum Abrufen eines Verweises 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 mithilfe 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 verspotten können.

isShutdown

protected boolean isShutdown ()

Kehrt zurück
boolean

ProcessReadyCommands

protected void processReadyCommands (IDeviceManager manager)

Parameter
manager IDeviceManager