CommandScheduler

public class CommandScheduler
extends Object implements ICommandScheduler

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


מתזמן להרצת פקודות של TradeFederation בכל המכשירים הזמינים.

המערכת תנסה לתת עדיפות לפקודות להרצה על סמך מספר ההפעלות הכולל שלהן בזמן הביצוע. לדוגמה, פקודות שמופעלות לעיתים רחוקות או פקודות שמופעלות במהירות יקבלו עדיפות על פני פקודות שמופעלות זמן רב.

פועלת לנצח ברקע עד להשבתה.

סיכום

יוצרים ציבוריים

CommandScheduler()

ייווצר CommandScheduler.

שיטות ציבוריות

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

הוספת פקודה לתזמון.

void addCommandFile(String cmdFilePath, extraArgs)

הוספת כל הפקודות מהקובץ הנתון לתזמון

void await()

המערכת ממתינה שהמתזמן יתחיל לפעול, כולל המתנה להשלמת ההעברה מ-TF הישן, אם רלוונטי.

static TradefedDelegator checkDelegation(String[] args)

יוצרים משתמש שנותן לאחרים הרשאה לניהול שיחות על סמך שורת הפקודה כדי לבדוק אם צריך להעביר את ההפעלה.

static createReleaseMap(IInvocationContext context, Throwable e)

יוצרים מפה של מצב המכשירים כדי שאפשר יהיה לשחרר אותם בצורה מתאימה.

ISandbox createSandbox()

יוצרים ISandbox שישמש להפעלה.

void displayCommandQueue(PrintWriter printWriter)

הפלט של פרטי ניפוי באגים מפורטים על סטטוס התור לביצוע פקודות.

void displayCommandsInfo(PrintWriter printWriter, String regex)

הפקת רשימה של הפקודות הנוכחיות.

void displayInvocationsInfo(PrintWriter printWriter)

הצגת רשימה של ההפעלות הנוכחיות.

void dumpCommandsXml(PrintWriter printWriter, String regex)

איך פורקים את קובץ ה-xml המורחב של הפקודה עם כל הערכים של Option שצוינו לכל הפקודות הנוכחיות.

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

הפעלת הפקודה באופן ישיר במכשיר שכבר הוקצה.

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

ביצוע פקודות ישירות במכשירים שכבר הוקצו.

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

הקצאה ישירה של מכשיר והפעלת פקודה בלי להוסיף אותה לתור הפקודות באמצעות IInvocationContext שכבר קיים.

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

מקצה מכשיר באופן ישיר ומבצע פקודות בלי להוסיף אותו לתור הפקודות.

CommandFileWatcher getCommandFileWatcher()

אחזור של ה-CommandFileWatcher המתאים לתזמון הזה

int getExecutingCommandCount()

הפונקציה מחזירה את מספר הפקודות במצב ביצוע.

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

החזרת המידע על קריאה באמצעות ציון מזהה הקריאה.

CommandRunner.ExitCode getLastInvocationExitCode()

הפונקציה מחזירה את קוד השגיאה של ההפעלה האחרונה שפועלה.

Throwable getLastInvocationThrowable()

מחזירים את Throwable מהקריאה האחרונה שהופעל.

int getReadyCommandCount()

הפונקציה מחזירה את מספר הפקודות במצב 'מוכן' בתור.

long getShutdownTimeout()
boolean isDeviceInInvocationThread(ITestDevice device)

הפונקציה מחזירה את הערך true אם יש שימוש במכשיר על ידי שרשור קריאה פעיל.

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

הסרת כל הפקודות מהמתזמן

void run()

בלוק הביצוע הראשי של ה-thread הזה.

void setClearcutClient(ClearcutClient client)

הגדרת הלקוח לדיווח על נתוני רתמות

boolean shouldShutdownOnCmdfileError()

הפונקציה מחזירה את הערך True אם צריך לכבות את מתזמן הפקודות בגלל שגיאות בפקודה

void shutdown(boolean notifyStop)

ניסיון להשבית את מתזמן הפקודות בצורה תקינה.

void shutdownHard(boolean killAdb)

ניסיון לכבות בכוח את מתזמן הפקודות.

void shutdownHard()

ניסיון לכבות בכוח את מתזמן הפקודות.

void shutdownOnEmpty()

דומה לפקודה shutdown(), אבל במקום זאת היא ממתינה עד להשלמת כל הפקודות לפני היציאה.

void start()

הפעלת מתזמן המשימות, כולל הגדרת הרישום ביומן, אתחול של DeviceManager וכו'

boolean stopInvocation(ITestInvocation invocation)

איך מפסיקים קריאה שפועלת.

boolean stopInvocation(int invocationId, String cause)

כדי להפסיק קריאה שפועלת, מציינים את המזהה שלה.

void stopScheduling()

השירות יפסיק לתזמן ולקבל בדיקות חדשות, אבל Tradefed לא יושבת.

שיטות מוגנות

void cleanUp()

סגירת היומנים וביצוע פעולות ניקוי אחרות לפני היציאה.

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

הפונקציה קובעת אם פקודה נתונה היא ריצה ללא ביצוע.

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

שיטת היצרן לקבלת הפניה אל IConfigurationFactory

DeviceManagementGrpcServer getDeviceManagementServer()
IDeviceManager getDeviceManager()

שיטת המפעל לקבלת הפניה ל-IDeviceManager

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

אחזור של IKeyStoreClient באמצעות IKeyStoreFactory שמוצהר ב-IGlobalConfiguration, או null אם לא הוגדר אף אחד.

TestInvocationManagementServer getTestInvocationManagementServer()
void initLogging()

אתחול היומן של ddmlib.

boolean isShutdown()
void processReadyCommands(IDeviceManager manager)

יוצרים ציבוריים

מתזמן המשימות

public CommandScheduler ()

יצירת CommandScheduler.

הערה: צריך להפעיל את start לפני השימוש.

שיטות ציבוריות

addCommand

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

הוספת פקודה לתזמון.

פקודה היא למעשה מופע של הגדרה להרצה והארגומנטים המשויכים לה.

אם מציינים את הארגומנט '--help', טקסט העזרה של ההגדרה יופיע בפלט של stdout. אחרת, ההגדרה תתווסף לתור להרצה.

פרמטרים
args String: הארגומנטים מסוג config.

החזרות
Pair<Boolean, Integer> צמד ערכים, הערך הראשון הוא בוליאני true אם הפקודה נוספה בהצלחה. הערך השני הוא מזהה המעקב אחרי הפקודה הידוע(ערך לא שלילי). אם הפקודה נוספה בהצלחה, הפונקציה מחזירה 0 כשהפקודה נוספה לכל המכשירים, אחרת היא מחזירה -1.

זריקות
ConfigurationException

addCommandFile

public void addCommandFile (String cmdFilePath, 
                 extraArgs)

הוספה של כל הפקודות מקובץ נתון למתזמן

פרמטרים
cmdFilePath String: הנתיב של קובץ הפקודה במערכת הקבצים

extraArgs : ERROR(/List) של ארגומנטים מסוג String שצריך לצרף לכל פקודה שמנותחת מהקובץ. השדה יכול להיות ריק אבל לא יכול להיות null.

זריקות
ConfigurationException

await

public void await ()

המערכת ממתינה שהמתזמן יתחיל לפעול, כולל המתנה להשלמת ההעברה מ-TF הישן, אם רלוונטי.

checkDelegation

public static TradefedDelegator checkDelegation (String[] args)

יוצרים משתמש שנותן לאחרים הרשאה לניהול שיחות על סמך שורת הפקודה כדי לבדוק אם צריך להעביר את ההפעלה.

פרמטרים
args String

החזרות
TradefedDelegator

זריקות
com.android.tradefed.config.ConfigurationException
ConfigurationException

createReleaseMap

public static  createReleaseMap (IInvocationContext context, 
                Throwable e)

יוצרים מפה של מצב המכשירים כדי שאפשר יהיה לשחרר אותם בצורה מתאימה.

פרמטרים
context IInvocationContext

e Throwable

החזרות

createSandbox

public ISandbox createSandbox ()

יוצרים ISandbox שבו ההפעלה תשתמש כדי להריץ את הפקודה.

החזרות
ISandbox

displayCommandQueue

public void displayCommandQueue (PrintWriter printWriter)

הפלט של פרטי ניפוי באגים מפורטים על סטטוס התור לביצוע פקודות.

displayCommandsInfo

public void displayCommandsInfo (PrintWriter printWriter, 
                String regex)

יוצרים פלט של רשימה של הפקודות הנוכחיות.

פרמטרים
printWriter PrintWriter: ה-ERROR(/PrintWriter) שאליו רוצים להעביר את הפלט.

regex String: הביטוי הרגולרי שאליו צריכות להתאים הפקודות כדי להדפיס אותן. אם הערך הוא null, כל הפקודות יודפסו.

displayInvocationsInfo

public void displayInvocationsInfo (PrintWriter printWriter)

הצגת רשימה של ההפעלות הנוכחיות.

פרמטרים
printWriter PrintWriter: ה-ERROR(/PrintWriter) שאליו רוצים להעביר את הפלט.

dumpCommandsXml

public void dumpCommandsXml (PrintWriter printWriter, 
                String regex)

מציגים את קובץ ה-XML המורחב של הפקודה עם כל ערכי Option שצוינו לכל הפקודות הנוכחיות.

פרמטרים
printWriter PrintWriter: ה-ERROR(/PrintWriter) שאליו יש להוציא את הסטטוס.

regex String: הביטוי הרגולרי שאליו צריכות להתאים הפקודות כדי לבצע דמפ של קובץ ה-XML. אם הערך הוא null, כל הפקודות יימחקו.

execCommand

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

ביצוע הפקודה ישירות במכשיר שכבר הוקצה.

פרמטרים
listener ICommandScheduler.IScheduledInvocationListener: הICommandScheduler.IScheduledInvocationListener שרוצים להודיע לו

device ITestDevice: ITestDevice לשימוש

args String: הארגומנטים של הפקודה

החזרות
long מזהה ההפעלה של הפקודה המתוזמנת.

זריקות
ConfigurationException

execCommand

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

ביצוע הפקודה ישירות במכשירים שכבר הוקצו.

פרמטרים
listener ICommandScheduler.IScheduledInvocationListener: הICommandScheduler.IScheduledInvocationListener שרוצים להודיע לו

reservedDevices : ה-ERROR(/List) לשימוש

args String: ארגומנטים של הפקודה

החזרות
long מזהה ההפעלה של הפקודה המתוזמנת.

זריקות
ConfigurationException

פקודה

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

הקצאת מכשיר ישירה והרצת פקודה בלי להוסיף אותו לתור הפקודות באמצעות IInvocationContext קיים שכבר קיים.

פרמטרים
context IInvocationContext: IInvocationContext קיים.

listener ICommandScheduler.IScheduledInvocationListener: הICommandScheduler.IScheduledInvocationListener שרוצים להודיע לו

args String: ארגומנטים של הפקודה

החזרות
long

זריקות
ConfigurationException
NoDeviceException

execCommand

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

הקצאה ישירה של מכשיר והפעלת פקודה בלי להוסיף אותה לתור הפקודות.

פרמטרים
listener ICommandScheduler.IScheduledInvocationListener: הICommandScheduler.IScheduledInvocationListener שרוצים להודיע לו

args String: ארגומנטים של הפקודה

החזרות
long מזהה ההפעלה של הפקודה המתוזמנת.

קליעות
ConfigurationException
NoDeviceException

getCommandFileWatcher

public CommandFileWatcher getCommandFileWatcher ()

אחזור של ה-CommandFileWatcher המתאים לתזמון הזה

החזרות
CommandFileWatcher

getExecutingCommandCount

public int getExecutingCommandCount ()

הפונקציה מחזירה את מספר הפקודות במצב ביצוע.

החזרות
int

getHostState

public CommandScheduler.HostState getHostState ()

החזרות
CommandScheduler.HostState

getInvocationInfo

public String getInvocationInfo (int invocationId)

החזרת המידע על קריאה באמצעות ציון מזהה הקריאה.

פרמטרים
invocationId int: המזהה לצורכי מעקב של ההפעלה.

החזרות
String String שמכיל מידע על ההפעלה.

getLastInvocationExitCode

public CommandRunner.ExitCode getLastInvocationExitCode ()

הפונקציה מחזירה את קוד השגיאה של ההפעלה האחרונה שפועלה. מחזירים 0 (ללא שגיאה) אם עדיין לא בוצעה קריאה.

החזרות
CommandRunner.ExitCode

getLastInvocationThrowable

public Throwable getLastInvocationThrowable ()

מחזירים את Throwable מהקריאה האחרונה שהופעל. הפונקציה מחזירה null אם אין זריקת חריגה זמינה.

החזרות
Throwable

getReadyCommandCount

public int getReadyCommandCount ()

הפונקציה מחזירה את מספר הפקודות במצב 'מוכן' בתור.

החזרות
int

getShutdownTimeout

public long getShutdownTimeout ()

החזרות
long

isDeviceInvocationThread

public boolean isDeviceInInvocationThread (ITestDevice device)

הפונקציה מחזירה את הערך true אם יש שימוש במכשיר על ידי שרשור קריאה פעיל.

פרמטרים
device ITestDevice

החזרות
boolean

isShuttingDown

public boolean isShuttingDown ()

החזרות
boolean

notifyFileChanged

public void notifyFileChanged (File cmdFile, 
                 extraArgs)

פרמטרים
cmdFile File

extraArgs

removeAllCommands

public void removeAllCommands ()

הסרת כל הפקודות מהמתזמן

ראן

public void run ()

בלוק הביצוע הראשי של ה-thread הזה.

setClearcutClient

public void setClearcutClient (ClearcutClient client)

הגדרת הלקוח לדיווח על נתוני רתמה

פרמטרים
client ClearcutClient

shouldShutdownOnCmdfileError

public boolean shouldShutdownOnCmdfileError ()

הפונקציה מחזירה את הערך True אם צריך לכבות את מתזמן הפקודות בגלל שגיאות בפקודה

החזרות
boolean

כיבוי

public void shutdown (boolean notifyStop)

ניסיון להשבית את מתזמן הפקודות בצורה תקינה.

פרמטרים
notifyStop boolean: אם הערך הוא true, מתקבלת התראה על הפעלות של השבתת TF.

shutdownHard

public void shutdownHard (boolean killAdb)

ניסיון לכבות בכוח את מתזמן הפקודות.

דומה ל-shutdown(), אבל אפשר גם להרוג את החיבור ל-adb, בניסיון 'להמריץ' קריאות שנמצאות בתהליך כדי שהן יסתיימו מהר יותר.

פרמטרים
killAdb boolean

shutdownHard

public void shutdownHard ()

ניסיון לכבות בכוח את מתזמן הפקודות. זהה ל-shutdownHard(true).

כיבוי ריק

public void shutdownOnEmpty ()

דומה לפקודה shutdown(), אבל במקום זאת היא ממתינה להרצה של כל הפקודות לפני היציאה.

חשוב לדעת שאם פקודות כלשהן נמצאות במצב לולאה, מתזמן הפקודות לא ייצא לעולם.

התחל

public void start ()

הפעלת מתזמן המשימות, כולל הגדרת הרישום ביומן, אתחול של DeviceManager וכו'

stopInvocation

public boolean stopInvocation (ITestInvocation invocation)

איך מפסיקים קריאה שפועלת.

פרמטרים
invocation ITestInvocation

החזרות
boolean true אם ההפעלה הופסקה, אחרת false

הפסקת ההפעלה

public boolean stopInvocation (int invocationId, 
                String cause)

כדי להפסיק קריאה שפועלת, מציינים את המזהה שלה.

פרמטרים
invocationId int: מזהה המעקב של ההפעלה.

cause String: הסיבה להפסקת ההפעלה.

החזרות
boolean true אם ההפעלה הופסקה, false אחרת

stopScheduling

public void stopScheduling ()

השירות יפסיק לתזמן ולקבל בדיקות חדשות, אבל Tradefed לא יושבת. המטרה היא לאפשר השבתה בשני שלבים, שבהם קודם מסיימים את כל הבדיקות שפועלות ואז מסיימים את תהליך Tradefed.

שיטות מוגנות

cleanUp

protected void cleanUp ()

סגירת היומנים וביצוע פעולות ניקוי אחרות לפני היציאה.

החשיפה מאפשרת לבצע בדיקות מק"ט.

createConfiguration

protected IConfiguration createConfiguration (String[] args)

פרמטרים
args String

החזרות
IConfiguration

קליעות
ConfigurationException

createInvocationContext

protected IInvocationContext createInvocationContext ()

החזרות
IInvocationContext

dryRunCommandReporting

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

הפונקציה קובעת אם הפקודה נתונה היא ריצה ללא ביצוע. אם הפקודה היא ריצה ללא ביצוע, צריך לאמת אותה. אם יש בעיה בהגדרות, תופיע הודעת שגיאה מסוג ConfigurationException.

פרמטרים
handler ICommandScheduler.IScheduledInvocationListener: ERROR(/InvocationEventHandler) כדי לדווח על אירועים לאימות במצב 'הרצת ניסיון'.

config IConfiguration

החזרות
void true אם הפקודה היא ריצה ללא ביצוע, false אחרת.

זריקות
com.android.tradefed.config.Configuration וכל החריגות
ConfigurationException

execCommand

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

פרמטרים
context IInvocationContext

listener ICommandScheduler.IScheduledInvocationListener

reservedDevices

args String

החזרות
long

זריקות
ConfigurationException

getConfigFactory

protected IConfigurationFactory getConfigFactory ()

שיטת היצרן לקבלת הפניה אל IConfigurationFactory

החזרות
IConfigurationFactory IConfigurationFactory לשימוש

getDeviceManagementServer

protected DeviceManagementGrpcServer getDeviceManagementServer ()

החזרות
DeviceManagementGrpcServer

getDeviceManager

protected IDeviceManager getDeviceManager ()

שיטת המפעל לקבלת הפניה ל-IDeviceManager

החזרות
IDeviceManager את IDeviceManager לשימוש

getFeatureServer

protected TradefedFeatureServer getFeatureServer ()

החזרות
TradefedFeatureServer

getHostOptions

protected IHostOptions getHostOptions ()

החזרות
IHostOptions

getKeyStoreClient

protected IKeyStoreClient getKeyStoreClient ()

אחזור של IKeyStoreClient באמצעות IKeyStoreFactory שמוצהר ב-IGlobalConfiguration, או null אם לא הוגדר אף אחד.

החזרות
IKeyStoreClient לקוח IKeyStore

getTestInvocationManagementServer

protected TestInvocationManagementServer getTestInvocationManagementServer ()

החזרות
TestInvocationManagementServer

initLogging

protected void initLogging ()

הפעלת יומן ה-ddmlib.

החשיפה מאפשרת לבצע בדיקות מק"ט.

כיבוי

protected boolean isShutdown ()

החזרות
boolean

processReadyCommands

protected void processReadyCommands (IDeviceManager manager)

פרמטרים
manager IDeviceManager