CommandScheduler

public class CommandScheduler
extends Object implements ICommandScheduler

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


Harmonogram wykonywania poleceń TradeFederation na wszystkich dostępnych urządzeniach.

Zostanie podjęta próba nadania priorytetu poleceniom na podstawie łącznej liczby aktywnych poleceń. Na przykład polecenia wykonywane rzadko lub szybko będą miały wyższy priorytet niż polecenia długotrwałe.

Działa w tle bez końca, aż do momentu wyłączenia.

Podsumowanie

Konstruktory publiczne

CommandScheduler()

Tworzy CommandScheduler.

Metody publiczne

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

Dodaje polecenie do algorytmu szeregowania.

void addCommandFile(String cmdFilePath, extraArgs)

Dodaje do harmonogramu wszystkie polecenia z podanego pliku.

void await()

Czekam na uruchomienie algorytmu szeregowania, w tym na zakończenie przekazania ze starego pliku TF, jeśli to konieczne.

static TradefedDelegator checkDelegation(String[] args)

Utwórz delegującego na podstawie wiersza poleceń, aby sprawdzić, czy trzeba delegować wykonanie.

static createReleaseMap(IInvocationContext context, Throwable e)

Utwórz mapę stanu urządzeń, aby można było je odpowiednio uwolnić.

ISandbox createSandbox()

Utwórz ISandbox, który będzie używany do uruchamiania.

void displayCommandQueue(PrintWriter printWriter)

Wyświetla szczegółowe informacje debugowania dotyczące stanu kolejki wykonania poleceń.

void displayCommandsInfo(PrintWriter printWriter, String regex)

Wyświetl listę bieżących poleceń.

void displayInvocationsInfo(PrintWriter printWriter)

Wyświetla listę bieżących wywołań.

void dumpCommandsXml(PrintWriter printWriter, String regex)

Wygeneruj rozszerzony plik XML polecenia ze wszystkimi wartościami Option określonymi dla wszystkich bieżących poleceń.

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

Wykonaj polecenie bezpośrednio na przydzielonym już urządzeniu.

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

Wykonaj polecenie bezpośrednio na przydzielonych już urządzeniach.

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

Przydziela urządzenie bezpośrednio i wykonuje polecenie bez dodawania go do kolejki poleceń za pomocą już istniejącego IInvocationContext.

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

Przypisuje urządzenie bezpośrednio i wykonuje polecenie bez dodawania go do kolejki poleceń.

CommandFileWatcher getCommandFileWatcher()

Pobierz odpowiednie narzędzie CommandFileWatcher dla tego algorytmu szeregowania

int getExecutingCommandCount()

Zwraca liczbę poleceń w stanie wykonywania.

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

Zwraca informacje o wywołaniu, podając jego identyfikator.

CommandRunner.ExitCode getLastInvocationExitCode()

Zwraca kod błędu ostatniego uruchomionego wywołania.

Throwable getLastInvocationThrowable()

Zwraca Throwable z ostatniego uruchomionego wywołania.

int getReadyCommandCount()

Zwraca liczbę poleceń w stanie gotowości w kolejce.

long getShutdownTimeout()
boolean isDeviceInInvocationThread(ITestDevice device)

Zwraca wartość „prawda”, jeśli urządzenie jest używane przez aktywny wątek wywołania.

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

Usuń wszystkie polecenia z harmonogramu

void run()

Główny blok kodu tego wątku.

void setClearcutClient(ClearcutClient client)

Ustawianie klienta na potrzeby raportowania danych uprzęża

boolean shouldShutdownOnCmdfileError()

Zwraca wartość Prawda, jeśli musimy wyłączyć harmonogramistę z powodu błędów poleceń.

void shutdown(boolean notifyStop)

Próba płynnego wyłączenia algorytmu planowania poleceń.

void shutdownHard(boolean killAdb)

Spróbuj wymusić wyłączenie algorytmu szeregowania poleceń.

void shutdownHard()

Spróbuj wymusić zamknięcie harmonogramu poleceń.

void shutdownOnEmpty()

Podobnie jak w przypadku polecenia shutdown(), ale z tym, że przed zakończeniem zaczeka na wykonanie wszystkich poleceń.

void start()

Uruchamia harmonogram, w tym konfigurację rejestrowania, inicjowanie DeviceManager itp.

boolean stopInvocation(ITestInvocation invocation)

Zatrzymanie bieżącego wywołania.

boolean stopInvocation(int invocationId, String cause)

Zatrzymaj bieżące wywołanie, podając jego identyfikator.

void stopScheduling()

Zatrzymuje planowanie i akceptowanie nowych testów, ale nie zatrzymuje Tradefed.

Chronione metody

void cleanUp()

Zamyka dzienniki i wykonuje inne niezbędne czynności porządkujące przed zakończeniem.

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

Określa, czy dane polecenie jest próbne.

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

Metoda fabryczna służąca do uzyskiwania odwołania do obiektu IConfigurationFactory

DeviceManagementGrpcServer getDeviceManagementServer()
IDeviceManager getDeviceManager()

Metoda fabryczna służąca do uzyskiwania odwołania do obiektu IDeviceManager

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

Pobiera wartość IKeyStoreClient za pomocą IKeyStoreFactory zadeklarowanego w IGlobalConfiguration lub null, jeśli nie ma żadnej definicji.

TestInvocationManagementServer getTestInvocationManagementServer()
void initLogging()

Inicjowanie dziennika ddmlib.

boolean isShutdown()
void processReadyCommands(IDeviceManager manager)

Konstruktory publiczne

CommandScheduler

public CommandScheduler ()

Tworzy CommandScheduler.

Uwaga: przed użyciem należy wywołać metodę start.

Metody publiczne

addCommand

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

Dodaje polecenie do algorytmu szeregowania.

Polecenie to zasadniczo instancja uruchomionej konfiguracji i powiązane z nią argumenty.

Jeśli podano argument „--help”, tekst pomocy dla konfiguracji zostanie wyświetlony na wyjściu do standardowego urządzenia wyjściowego. W przeciwnym razie konfiguracja zostanie dodana do kolejki do uruchomienia.

Parametry
args String: argumenty konfiguracji.

Zwroty
Pair<Boolean, Integer> Para wartości, z których pierwsza to wartość logiczna true, jeśli polecenie zostało dodane. Druga wartość to znany identyfikator narzędzia do śledzenia poleceń(wartość nieujemna), jeśli polecenie zostało dodane. Zwróć 0, gdy polecenie zostanie dodane dla wszystkich urządzeń. W przeciwnym razie -1.

Rzuty
ConfigurationException

addCommandFile

public void addCommandFile (String cmdFilePath, 
                 extraArgs)

Dodaje do harmonogramu wszystkie polecenia z danego pliku.

Parametry
cmdFilePath String: ścieżka do pliku poleceń w systemie plików

extraArgs : tablica ERROR(/List) argumentów String do dołączenia do każdego polecenia przeanalizowanego z pliku. Może być puste, ale nie może być równe null.

Rzuty
ConfigurationException

await

public void await ()

Czeka na rozpoczęcie działania harmonogramu, w tym na zakończenie przejęcia od starego TF (jeśli to konieczne).

checkDelegation

public static TradefedDelegator checkDelegation (String[] args)

Utwórz delegującego na podstawie wiersza poleceń, aby sprawdzić, czy trzeba delegować wykonanie.

Parametry
args String

Zwroty
TradefedDelegator

Rzuty
com.android.tradefed.config.ConfigurationException
ConfigurationException

createReleaseMap

public static  createReleaseMap (IInvocationContext context, 
                Throwable e)

Utwórz mapę stanu urządzeń, aby móc je odpowiednio udostępniać.

Parametry
context IInvocationContext

e Throwable

Zwroty

utwórz piaskownicę

public ISandbox createSandbox ()

Utwórz ISandbox, którego wywołanie będzie używane do wykonywania.

Zwroty
ISandbox

displayCommandQueue

public void displayCommandQueue (PrintWriter printWriter)

Wyświetla szczegółowe informacje debugowania dotyczące stanu kolejki wykonania poleceń.

displayCommandsInfo

public void displayCommandsInfo (PrintWriter printWriter, 
                String regex)

Wyświetl listę bieżących poleceń.

Parametry
printWriter PrintWriter: ERROR(/PrintWriter) do wyprowadzenia.

regex String: wyrażenie regularne, do którego muszą pasować polecenia, aby mogły zostać wydrukowane. Jeśli ma wartość null, wszystkie polecenia są drukowane.

displayInvocationsInfo

public void displayInvocationsInfo (PrintWriter printWriter)

Wyświetla listę bieżących wywołań.

Parametry
printWriter PrintWriter: ERROR(/PrintWriter), do którego mają trafiać dane wyjściowe.

dumpCommandsXml

public void dumpCommandsXml (PrintWriter printWriter, 
                String regex)

Wygeneruj rozszerzony plik XML polecenia ze wszystkimi wartościami Option określonymi dla wszystkich bieżących poleceń.

Parametry
printWriter PrintWriter: ERROR(/PrintWriter), do którego ma być wyprowadzany stan.

regex String: wyrażenie regularne, z którym powinny być zgodne polecenia, aby można było wyodrębnić plik XML. Jeśli ma wartość null, wszystkie polecenia są kopiowane.

execCommand

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

Wykonywanie polecenia bezpośrednio na już przypisanym urządzeniu.

Parametry
listener ICommandScheduler.IScheduledInvocationListener: ICommandScheduler.IScheduledInvocationListener, gdzie będą dostępne informacje

device ITestDevice: ITestDevice do użycia

args String: argumenty polecenia

Zwroty
long Identyfikator wywołania zaplanowanego polecenia.

Rzuty
ConfigurationException

execCommand

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

Wykonaj polecenie bezpośrednio na przydzielonych już urządzeniach.

Parametry
listener ICommandScheduler.IScheduledInvocationListener: ICommandScheduler.IScheduledInvocationListener, gdzie będą dostępne informacje

reservedDevices : ERROR(/List) do użycia

args String: argumenty polecenia.

Zwroty
long Identyfikator wywołania zaplanowanego polecenia.

Rzuty
ConfigurationException

execCommand

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

Bezpośrednio przydziela urządzenie i wykonuje polecenie bez dodawania go do kolejki poleceń, używając już istniejącego IInvocationContext.

Parametry
context IInvocationContext: istniejący IInvocationContext.

listener ICommandScheduler.IScheduledInvocationListener: ICommandScheduler.IScheduledInvocationListener, gdzie będą dostępne informacje

args String: argumenty polecenia

Zwroty
long

Rzuty
ConfigurationException
NoDeviceException

execCommand

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

Bezpośrednio przydziela urządzenie i wykonuje polecenie bez dodawania go do kolejki poleceń.

Parametry
listener ICommandScheduler.IScheduledInvocationListener: ICommandScheduler.IScheduledInvocationListener, aby poinformować

args String: argumenty polecenia.

Zwroty
long Identyfikator wywołania zaplanowanego polecenia.

Rzuty
ConfigurationException
NoDeviceException

getCommandFileWatcher

public CommandFileWatcher getCommandFileWatcher ()

Pobierz odpowiedni program CommandFileWatcher dla tego harmonogramu.

Zwroty
CommandFileWatcher

getExecutingCommandCount;

public int getExecutingCommandCount ()

Zwraca liczbę poleceń w stanie wykonywania.

Zwroty
int

getHostState

public CommandScheduler.HostState getHostState ()

Zwroty
CommandScheduler.HostState

getInvocationInfo

public String getInvocationInfo (int invocationId)

Zwraca informacje o wywołaniu, podając jego identyfikator.

Parametry
invocationId int: identyfikator śledzenia wywołania.

Zwroty
String String zawierający informacje o wywołaniu.

getLastInvocationExitCode

public CommandRunner.ExitCode getLastInvocationExitCode ()

Zwraca kod błędu ostatniego wywołania. Zwraca wartość 0 (brak błędu), jeśli żadne wywołanie nie zostało jeszcze wykonane.

Zwroty
CommandRunner.ExitCode

getLastInvocationThrowable

public Throwable getLastInvocationThrowable ()

Zwraca Throwable z ostatniego uruchomionego wywołania. Zwraca wartość null, jeśli nie ma dostępnych obiektów rzucalnych.

Zwroty
Throwable

getReadyCommandCount

public int getReadyCommandCount ()

Zwraca liczbę poleceń w stanie gotowości w kolejce.

Zwroty
int

getShutdownTimeout

public long getShutdownTimeout ()

Zwroty
long

isDeviceInInvocationThread

public boolean isDeviceInInvocationThread (ITestDevice device)

Zwraca wartość „prawda”, jeśli urządzenie jest używane przez aktywny wątek wywołania.

Parametry
device ITestDevice

Zwroty
boolean

isShuttingDown

public boolean isShuttingDown ()

Zwroty
boolean

notifyFileChanged

public void notifyFileChanged (File cmdFile, 
                 extraArgs)

Parametry
cmdFile File

extraArgs

deleteAllCommands

public void removeAllCommands ()

Usuń wszystkie polecenia z algorytmu szeregowania

home run

public void run ()

Główny blok kodu tego wątku.

setClearcutClient

public void setClearcutClient (ClearcutClient client)

Skonfiguruj klienta do raportowania danych o wykorzystywaniu danych

Parametry
client ClearcutClient

shouldShutdownOnCmdfileError

public boolean shouldShutdownOnCmdfileError ()

Zwraca wartość true, jeśli w przypadku błędu polecenia trzeba wyłączyć algorytm szeregowania

Zwroty
boolean

wyłączenie

public void shutdown (boolean notifyStop)

Próba płynnego wyłączenia algorytmu planowania poleceń.

Parametry
notifyStop boolean: jeśli wartość to prawda, wywołania są powiadamiane o wyłączeniu TF.

WyłączenieHard

public void shutdownHard (boolean killAdb)

Spróbuj wymusić wyłączenie algorytmu szeregowania poleceń.

Podobnie jak w przypadku shutdown(), ale w tym przypadku opcjonalnie kończy też połączenie adb, aby w miarę możliwości przyspieszyć proces wywoływania.

Parametry
killAdb boolean

shutdownHard

public void shutdownHard ()

Spróbuj wymusić zamknięcie harmonogramu poleceń. Taka sama jak zasadadisableHard(prawda).

shutdownOnEmpty

public void shutdownOnEmpty ()

Podobnie jak w przypadku polecenia shutdown(), ale z tym, że przed zakończeniem zaczeka na wykonanie wszystkich poleceń.

Pamiętaj, że jeśli jakiekolwiek polecenia są w pętli, harmonogram nigdy się nie zakończy.

rozpocznij

public void start ()

Uruchamia harmonogram, w tym konfigurację rejestrowania, inicjowanie DeviceManager itp.

stopInvocation

public boolean stopInvocation (ITestInvocation invocation)

Zatrzymanie bieżącego wywołania.

Parametry
invocation ITestInvocation

Zwroty
boolean wartość true, jeśli wywołanie zostało zatrzymane, a w przeciwnym razie – false

stopInvocation

public boolean stopInvocation (int invocationId, 
                String cause)

Zatrzymaj bieżące wywołanie, podając jego identyfikator.

Parametry
invocationId int: identyfikator śledzenia wywołania.

cause String: przyczyna zatrzymania wywołania.

Zwroty
boolean wartość true, jeśli wywołanie zostało zatrzymane, a w przeciwnym razie – false

stopScheduling

public void stopScheduling ()

Zatrzymuje planowanie i akceptowanie nowych testów, ale nie zatrzymuje Tradefed. Ma to umożliwić wyłączenie w 2 etapach: najpierw kończymy wszystkie uruchomione testy, a potem proces Tradefed.

Chronione metody

cleanUp

protected void cleanUp ()

Zamyka dzienniki i wykonuje inne niezbędne czynności porządkujące przed zakończeniem.

Wyeksponowane, aby można było je zasymulować w testach jednostkowych.

createConfiguration

protected IConfiguration createConfiguration (String[] args)

Parametry
args String

Zwroty
IConfiguration

Rzuty
ConfigurationException

createInvocationContext

protected IInvocationContext createInvocationContext ()

Zwroty
IInvocationContext

Raportowanie polecenia dryRunCommand

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

Określa, czy dane polecenie jest testem. Jeśli polecenie jest testem, sprawdź je. Jeśli wystąpi problem z konfiguracją, zostanie rzucony wyjątek ConfigurationException.

Parametry
handler ICommandScheduler.IScheduledInvocationListener: ERROR(/InvocationEventHandler), aby zgłaszać zdarzenia do weryfikacji w trybie suchym.

config IConfiguration

Zwroty
void Wartość true, jeśli polecenie jest testem, a w przeciwnym razie ma wartość false.

Rzuty
com.android.tradefed.config.ConfigurationException
ConfigurationException

execCommand

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

Parametry
context IInvocationContext

listener ICommandScheduler.IScheduledInvocationListener

reservedDevices

args String

Zwroty
long

Rzuty
ConfigurationException

getConfigFactory

protected IConfigurationFactory getConfigFactory ()

Metoda fabryczna polegająca na uzyskiwaniu odwołania do IConfigurationFactory

Zwroty
IConfigurationFactory IConfigurationFactory do użycia

getDeviceManagementServer

protected DeviceManagementGrpcServer getDeviceManagementServer ()

Zwroty
DeviceManagementGrpcServer

getDeviceManager

protected IDeviceManager getDeviceManager ()

Metoda fabryczna służąca do uzyskiwania odwołania do obiektu IDeviceManager

Zwroty
IDeviceManager IDeviceManager do użycia

getFeatureServer

protected TradefedFeatureServer getFeatureServer ()

Zwroty
TradefedFeatureServer

getHostOptions

protected IHostOptions getHostOptions ()

Zwroty
IHostOptions

getKeyStoreClient

protected IKeyStoreClient getKeyStoreClient ()

Pobiera wartość IKeyStoreClient za pomocą IKeyStoreFactory zadeklarowanego w IGlobalConfiguration lub null, jeśli nie ma żadnej definicji.

Zwroty
IKeyStoreClient IKeyStoreClient

getTestInvocationManagementServer

protected TestInvocationManagementServer getTestInvocationManagementServer ()

Zwroty
TestInvocationManagementServer

initLogging

protected void initLogging ()

Inicjowanie dziennika ddmlib.

Wyeksponowane, aby można było je zasymulować w testach jednostkowych.

isShutdown

protected boolean isShutdown ()

Zwroty
boolean

ProcesGotowyPolecenia

protected void processReadyCommands (IDeviceManager manager)

Parametry
manager IDeviceManager