Algorytm poleceń

public class CommandScheduler
extends Object implements ICommandScheduler

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


Algorytm szeregowania do uruchamiania poleceń federacji zakupowej na wszystkich dostępnych urządzeniach.

Zostanie podjęta próba nadania priorytetu poleceniom na podstawie łącznej liczby ich wykonania obecnie się znajdujesz. np. polecenia, które są wykonywane rzadko lub są szybko wykonywane, mają wyższy priorytet niż polecenia długotrwałe.

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

Podsumowanie

Zagnieżdżone klasy

enum CommandScheduler.HostState

Wyliczenia różnych stanów hosta

Konstruktory publiczne

CommandScheduler()

Tworzy CommandScheduler.

Metody publiczne

boolean addCommand(String[] args)

Dodaje polecenie do algorytmu szeregowania.

void addCommandFile(String cmdFilePath, extraArgs)

Dodaje wszystkie polecenia z danego pliku do algorytmu szeregowania

void await()

Czekam na uruchomienie algorytmu szeregowania, w tym na zakończenie przekazywania ze starego pliku TF w odpowiednich przypadkach.

static TradefedDelegator checkDelegation(String[] args)

Utwórz podmiot przekazujący dostęp w wierszu poleceń, aby sprawdzić, czy trzeba przekazać uruchomienie.

void completeHandover()

Informuje algorytm szeregowania poleceń, że zainicjowana sekwencja przełączania jest w pełni ukończona i powinien ponownie zainicjować swojego menedżera zdalnego na porcie domyślnym.

static createReleaseMap(IInvocationContext context, Throwable e)

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

ISandbox createSandbox()

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

void displayCommandQueue(PrintWriter printWriter)

Przekazuj szczegółowe dane debugowania dotyczące stanu kolejki wykonywania poleceń.

void displayCommandsInfo(PrintWriter printWriter, String regex)

Na wyjściu generuje listę bieżących poleceń.

void displayInvocationsInfo(PrintWriter printWriter)

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

void dumpCommandsXml(PrintWriter printWriter, String regex)

Zrzuć rozwinięty plik XML dla polecenia ze wszystkimi Dla wszystkich bieżących poleceń określono wartości Option.

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

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

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

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

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

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

CommandFileWatcher getCommandFileWatcher()

Pobierz odpowiednią funkcję CommandFileWatcher dla tego algorytmu szeregowania

int getExecutingCommandCount()

Zwraca liczbę poleceń w stanie wykonania.

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

Zwraca informacje o jednostce organizacyjnej wywołania, która zawiera identyfikator wywołania.

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

Informuje program szeregowania poleceń o początkowej wymianie używanych urządzeń i poleceń i można rozpocząć planowanie.

boolean handoverShutdown(int handoverPort)

Inicjuje shutdown() i przekazywanie do innego procesu handlowego na tym samym hoście.

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

Usuń wszystkie polecenia z algorytmu szeregowania

void run()

Główny blok wykonania w tym wątku.

void setClearcutClient(ClearcutClient client)

Skonfiguruj klienta do raportowania danych o wykorzystywaniu danych

boolean shouldShutdownOnCmdfileError()

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

void shutdown()

Spróbuj płynnie wyłączyć algorytm szeregowania poleceń.

void shutdownHard(boolean killAdb)

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

void shutdownHard()

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

void shutdownOnEmpty()

Podobnie jak shutdown(), ale będzie czekać na wykonanie wszystkich poleceń przed wyjściem.

void start()

Uruchamia algorytm szeregowania, w tym konfigurację logowania, inicjowanie DeviceManager itd.

boolean stopInvocation(ITestInvocation invocation)

Zatrzymaj uruchomione wywołanie.

boolean stopInvocation(int invocationId, String cause)

Zatrzymaj uruchomione wywołanie, podając jego identyfikator.

Metody chronione

void cleanUp()

Zamyka logi i przeprowadza inne niezbędne działania, zanim zakończy grę.

IConfiguration createConfiguration(String[] args)
IInvocationContext createInvocationContext()
IConfigurationFactory getConfigFactory()

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

IDeviceManager getDeviceManager()

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

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

Pobiera IKeyStoreClient za pomocą: IKeyStoreFactory zadeklarowana w IGlobalConfiguration lub null, jeśli żadna nie jest zdefiniowana.

void initLogging()

Inicjuje log ddmlib.

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

Poczekaj na zakończenie wszystkich wątków wywołań.

Konstruktory publiczne

Algorytm poleceń

public CommandScheduler ()

Tworzy CommandScheduler.

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

Metody publiczne

addCommand

public boolean addCommand (String[] args)

Dodaje polecenie do algorytmu szeregowania.

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

Jeśli „--help” określono tekst pomocy dla argumentu konfiguracja zostanie wpisana na stdout. W przeciwnym razie konfiguracja zostanie dodana do kolejki bieganie.

Parametry
args String: argumenty konfiguracji.

Zwroty
boolean true, jeśli polecenie zostało dodane

Rzuty
ConfigurationException

addCommandFile

public void addCommandFile (String cmdFilePath, 
                 extraArgs)

Dodaje wszystkie polecenia z danego pliku do algorytmu szeregowania

Parametry
cmdFilePath String: ścieżka systemu plików pliku polecenia

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

Rzuty
ConfigurationException

poczekaj

public void await ()

Czekam na uruchomienie algorytmu szeregowania, w tym na zakończenie przekazywania ze starego pliku TF w odpowiednich przypadkach.

checkDelegation (Przekazywanie dostępu)

public static TradefedDelegator checkDelegation (String[] args)

Utwórz podmiot przekazujący dostęp w wierszu poleceń, aby sprawdzić, czy trzeba przekazać uruchomienie.

Parametry
args String

Zwroty
TradefedDelegator

Rzuty
ConfigurationException

Przeniesienie zakończone

public void completeHandover ()

Informuje algorytm szeregowania poleceń, że zainicjowana sekwencja przełączania jest w pełni ukończona i powinien ponownie zainicjować swojego menedżera zdalnego na porcie domyślnym.

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óry będzie używany do uruchamiania.

Zwroty
ISandbox

displayCommandQueue

public void displayCommandQueue (PrintWriter printWriter)

Przekazuj szczegółowe dane debugowania dotyczące stanu kolejki wykonywania poleceń.

displayCommandsInfo

public void displayCommandsInfo (PrintWriter printWriter, 
                String regex)

Na wyjściu generuje listę bieżących poleceń.

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

regex String: wyrażenie regularne, do którego należy dopasowywać polecenia, aby zostały 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)

Zrzuć rozwinięty plik XML dla polecenia ze wszystkimi Dla wszystkich bieżących poleceń określono wartości Option.

Parametry
printWriter PrintWriter: element ERROR(/PrintWriter), na który ma trafiać stan.

regex String: wyrażenie regularne, do którego należy dopasowywać polecenia w kolejności dla argumentu xml do skopiowania. Jeśli ma wartość null, wszystkie polecenia są kopiowane.

execCommand

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

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

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

device ITestDevice: element ITestDevice, którego należy użyć

args String: argumenty polecenia.

Rzuty
ConfigurationException

execCommand

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

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

Parametry
context IInvocationContext: istniejący IInvocationContext.

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

args String: argumenty polecenia.

Rzuty
ConfigurationException
NoDeviceException

execCommand

public void 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, gdzie będą dostępne informacje

args String: argumenty polecenia.

Rzuty
ConfigurationException
NoDeviceException

getCommandFileWatcher

public CommandFileWatcher getCommandFileWatcher ()

Pobierz odpowiednią funkcję CommandFileWatcher dla tego algorytmu szeregowania

Zwroty
CommandFileWatcher

getExecutingCommandCount;

public int getExecutingCommandCount ()

Zwraca liczbę poleceń w stanie wykonania.

Zwroty
int

getHostState,

public CommandScheduler.HostState getHostState ()

Zwroty
CommandScheduler.HostState

getInvocationInfo

public String getInvocationInfo (int invocationId)

Zwraca informacje o jednostce organizacyjnej wywołania, która zawiera identyfikator wywołania.

Parametry
invocationId int: identyfikator śledzenia wywołania.

Zwroty
String Pole String zawierające informacje o wywołaniu.

getLastInvocationExitCode

public CommandRunner.ExitCode getLastInvocationExitCode ()

Zwraca kod błędu ostatniego uruchomionego wywołania. Jeśli żadne wywołanie nie zostało jeszcze uruchomione, zwróć 0 (brak błędu).

Zwroty
CommandRunner.ExitCode

getLastInvocationThrowable,

public Throwable getLastInvocationThrowable ()

Zwraca Throwable z ostatniego uruchomionego wywołania. Jeśli nie ma dostępnej możliwości zgłoszenia, zwraca wartość null.

Zwroty
Throwable

getReadyCommandCount;

public int getReadyCommandCount ()

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

Zwroty
int

getDisabledownTimeout

public long getShutdownTimeout ()

Zwroty
long

Rozpoczęcie przekazywania

public void handoverInitiationComplete ()

Informuje program szeregowania poleceń o początkowej wymianie używanych urządzeń i poleceń i można rozpocząć planowanie.

przekazanie/Wyłączenie

public boolean handoverShutdown (int handoverPort)

Inicjuje shutdown() i przekazywanie do innego procesu handlowego na tym samym hoście.

Algorytm szeregowania poinformuje proces zdalnego handlu elektronicznego nasłuchującego na tym porcie zwolnionych urządzeń w miarę ich udostępniania.

Parametry
handoverPort int

Zwroty
boolean true, jeśli przekazywanie się udało, false w przeciwnym razie

Powiadomienie o zmianie pliku

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 wykonania w tym wątku.

setClearcutClient

public void setClearcutClient (ClearcutClient client)

Skonfiguruj klienta do raportowania danych o wykorzystywaniu danych

Parametry
client ClearcutClient

Należy wyłączyć_przy plikuCmdfile

public boolean shouldShutdownOnCmdfileError ()

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

Zwroty
boolean

Wyłącz

public void shutdown ()

Spróbuj płynnie wyłączyć algorytm szeregowania poleceń.

Usuwa polecenia oczekujące na przetestowanie i żąda wszystkich wywołań w toku zgrabnie wyłączyć.

Po wywołaniu wyłączenia główna pętla algorytmu szeregowania będzie czekać na wszystkie wywołania w toku przed zamknięciem.

WyłączenieHard

public void shutdownHard (boolean killAdb)

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

Podobnie jak shutdown(), ale opcjonalnie spowoduje też zakończenie połączenia adb w próba „inspirowania” trwalsze wywołania.

Parametry
killAdb boolean

WyłączenieHard

public void shutdownHard ()

Spróbuj wymusić wyłączenie algorytmu szeregowania poleceń. Taka sama jak w przypadku wyłączaniaHard(prawda).

zamknięcieOnPuste

public void shutdownOnEmpty ()

Podobnie jak shutdown(), ale będzie czekać na wykonanie wszystkich poleceń przed wyjściem.

Pamiętaj, że jeśli jakiekolwiek polecenia są w trybie pętli, algorytm szeregowania nigdy nie zostanie zamknięty.

rozpocznij

public void start ()

Uruchamia algorytm szeregowania, w tym konfigurację logowania, inicjowanie DeviceManager itd.

stopInvocation

public boolean stopInvocation (ITestInvocation invocation)

Zatrzymaj uruchomione wywołanie.

Parametry
invocation ITestInvocation

Zwroty
boolean „true”, jeśli wywoływanie zostało zatrzymane. W przeciwnym razie ma wartość „false” (fałsz).

stopInvocation

public boolean stopInvocation (int invocationId, 
                String cause)

Zatrzymaj uruchomione wywołanie, podając jego identyfikator.

Parametry
invocationId int: identyfikator śledzenia wywołania.

cause String: przyczyna zatrzymania wywołania.

Zwroty
boolean „true”, jeśli wywoływanie zostało zatrzymane. W przeciwnym razie ma wartość „false” (fałsz).

Metody chronione

czyszczenie

protected void cleanUp ()

Zamyka logi i przeprowadza inne niezbędne działania, zanim zakończy grę.

Dostępne, aby testy jednostkowe mogły imitować.

createConfiguration

protected IConfiguration createConfiguration (String[] args)

Parametry
args String

Zwroty
IConfiguration

Rzuty
ConfigurationException

createInvocationContext

protected IInvocationContext createInvocationContext ()

Zwroty
IInvocationContext

getConfigFactory,

protected IConfigurationFactory getConfigFactory ()

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

Zwroty
IConfigurationFactory IConfigurationFactory, którego chcesz użyć

getDeviceManager

protected IDeviceManager getDeviceManager ()

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

Zwroty
IDeviceManager IDeviceManager, którego chcesz użyć

getFeatureServer

protected TradefedFeatureServer getFeatureServer ()

Zwroty
TradefedFeatureServer

getHostOptions

protected IHostOptions getHostOptions ()

Zwroty
IHostOptions

getKeyStoreClient

protected IKeyStoreClient getKeyStoreClient ()

Pobiera IKeyStoreClient za pomocą: IKeyStoreFactory zadeklarowana w IGlobalConfiguration lub null, jeśli żadna nie jest zdefiniowana.

Zwroty
IKeyStoreClient Klient IKeyStore

initLogging

protected void initLogging ()

Inicjuje log ddmlib.

Dostępne, aby testy jednostkowe mogły imitować.

isDisabledown

protected boolean isShutdown ()

Zwroty
boolean

jestWyłączanie

protected boolean isShuttingDown ()

Zwroty
boolean

ProcesGotowyPolecenia

protected void processReadyCommands (IDeviceManager manager)

Parametry
manager IDeviceManager

waitForAllInvocationThreads)

protected void waitForAllInvocationThreads ()

Poczekaj na zakończenie wszystkich wątków wywołań.