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)

יצירת גרסת dump של קובץ ה-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)

קונסטרוקטורים גלויים לכולם

CommandScheduler

public CommandScheduler ()

יצירת CommandScheduler.

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

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

addCommand

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

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

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

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

פרמטרים
args String: ארגומנטים של תצורה.

החזרות
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)

יצירת גרסת dump של קובץ ה-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

execCommand

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

isDeviceInInvocationThread

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).

shutdownOnEmpty

public void shutdownOnEmpty ()

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

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

התחל

public void start ()

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

stopInvocation

public boolean stopInvocation (ITestInvocation invocation)

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

פרמטרים
invocation ITestInvocation

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

stopInvocation

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.ConfigurationException
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 IKeyStoreClient

getTestInvocationManagementServer

protected TestInvocationManagementServer getTestInvocationManagementServer ()

החזרות
TestInvocationManagementServer

initLogging

protected void initLogging ()

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

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

isShutdown

protected boolean isShutdown ()

החזרות
boolean

processReadyCommands

protected void processReadyCommands (IDeviceManager manager)

פרמטרים
manager IDeviceManager