Planificateur de commandes
public class CommandScheduler
extends Object
implements ICommandScheduler
java.lang.Object | |
↳ | com.android.tradefed.command.CommandScheduler |
Un planificateur pour exécuter les commandes TradeFederation sur tous les appareils disponibles.
Tentera de hiérarchiser les commandes à exécuter en fonction du nombre total d'exécutions de leur temps d'exécution. par exemple, les commandes à exécution peu fréquente ou rapide auront la priorité sur les commandes à exécution longue.
Fonctionne indéfiniment en arrière-plan jusqu'à l'arrêt.
Résumé
Constructeurs publics | |
---|---|
CommandScheduler () Crée un |
Méthodes publiques | |
---|---|
Pair <Boolean, Integer> | addCommand (String[] args) Ajoute une commande au planificateur. |
void | addCommandFile (String cmdFilePath, extraArgs) addCommandFile (String cmdFilePath, extraArgs) Ajoute toutes les commandes d'un fichier donné au planificateur |
void | await () Attend que le planificateur commence à s'exécuter, y compris en attendant que le transfert de l'ancien TF se termine, le cas échéant. |
static TradefedDelegator | checkDelegation (String[] args) Créez un délégant basé sur la ligne de commande pour voir si nous devons déléguer l'exécution. |
static | createReleaseMap ( IInvocationContext context, Throwable e) Créez une carte de l'état des appareils afin qu'ils puissent être libérés de manière appropriée. |
ISandbox | createSandbox () Créez un |
void | displayCommandQueue (PrintWriter printWriter) Affiche des informations de débogage détaillées sur l'état de la file d'attente d'exécution des commandes. |
void | displayCommandsInfo (PrintWriter printWriter, String regex) Afficher une liste des commandes actuelles. |
void | displayInvocationsInfo (PrintWriter printWriter) Affiche une liste des appels en cours. |
void | dumpCommandsXml (PrintWriter printWriter, String regex) Videz le fichier xml développé pour la commande avec toutes les valeurs |
long | execCommand ( ICommandScheduler.IScheduledInvocationListener listener, reservedDevices, String[] args) execCommand ( ICommandScheduler.IScheduledInvocationListener listener, reservedDevices, String[] args) Exécutez directement la commande sur les appareils déjà alloués. |
long | execCommand ( IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, String[] args) Alloue directement un périphérique et exécute une commande sans l'ajouter à la file d'attente de commandes à l'aide d'un |
long | execCommand ( ICommandScheduler.IScheduledInvocationListener listener, String[] args) Alloue directement un périphérique et exécute une commande sans l'ajouter à la file d'attente de commandes. |
CommandFileWatcher | getCommandFileWatcher () Obtenez le |
int | getExecutingCommandCount () Renvoie le nombre de commandes en état d'exécution. |
CommandScheduler.HostState | getHostState () |
String | getInvocationInfo (int invocationId) Renvoie les informations sur un bu d'invocation en précisant l'id d'invocation. |
CommandRunner.ExitCode | getLastInvocationExitCode () Renvoie le code d'erreur du dernier appel exécuté. |
Throwable | getLastInvocationThrowable () Renvoie l' |
int | getReadyCommandCount () Renvoie le nombre de commandes à l'état prêt dans la file d'attente. |
long | getShutdownTimeout () |
boolean | isDeviceInInvocationThread ( ITestDevice device) Renvoie true si le périphérique est utilisé par un thread d'invocation actif. |
void | notifyFileChanged (File cmdFile, extraArgs) notifyFileChanged (File cmdFile, extraArgs) |
void | removeAllCommands () Supprimer toutes les commandes du planificateur |
void | run () Le bloc d'exécution principal de ce thread. |
void | setClearcutClient (ClearcutClient client) Configurer le client pour qu'il signale les données du harnais |
boolean | shouldShutdownOnCmdfileError () Renvoie vrai si nous devons arrêter le planificateur sur une erreur de commande |
void | shutdown (boolean notifyStop) Essayez d'arrêter correctement le planificateur de commandes. |
void | shutdownHard (boolean killAdb) Essayez d'arrêter de force le planificateur de commandes. |
void | shutdownHard () Essayez d'arrêter de force le planificateur de commandes. |
void | shutdownOnEmpty () Similaire à |
void | start () Démarre le planificateur, y compris la configuration de la journalisation, l'initialisation de |
boolean | stopInvocation ( ITestInvocation invocation) Arrête un appel en cours d'exécution. |
boolean | stopInvocation (int invocationId, String cause) Arrêtez une invocation en cours en spécifiant son identifiant. |
Constructeurs publics
Planificateur de commandes
public CommandScheduler ()
Crée un CommandScheduler
.
Remarque : start doit être appelée avant utilisation.
Méthodes publiques
addCommand
public Pair<Boolean, Integer> addCommand (String[] args)
Ajoute une commande au planificateur.
Une commande est essentiellement une instance d'une configuration à exécuter et ses arguments associés.
Si l'argument "--help" est spécifié, le texte d'aide pour la configuration sera affiché sur stdout. Sinon, la configuration sera ajoutée à la file d'attente à exécuter.
Paramètres | |
---|---|
args | String : les arguments de configuration. |
Retour | |
---|---|
Pair <Boolean, Integer> | Une paire de valeurs, la première valeur est un booléen true si la commande a été ajoutée avec succès. La deuxième valeur est l'identifiant de suivi de commande connu (valeur non négative) si la commande a été ajoutée avec succès, renvoie 0 lorsque la commande est ajoutée pour tous les appareils, sinon -1. |
Lance | |
---|---|
ConfigurationException |
addCommandFile
public void addCommandFile (String cmdFilePath,extraArgs)
Ajoute toutes les commandes d'un fichier donné au planificateur
Paramètres | |
---|---|
cmdFilePath | String : le chemin du système de fichiers du fichier de commande |
extraArgs | ERROR(/List) d'arguments ERROR(/String) à ajouter à chaque commande analysée à partir du fichier. Peut être vide mais ne doit pas être nul. |
Lance | |
---|---|
ConfigurationException |
attendre
public void await ()
Attend que le planificateur commence à s'exécuter, y compris en attendant que le transfert de l'ancien TF se termine, le cas échéant.
checkDélégation
public static TradefedDelegator checkDelegation (String[] args)
Créez un délégant basé sur la ligne de commande pour voir si nous devons déléguer l'exécution.
Paramètres | |
---|---|
args | String |
Retour | |
---|---|
TradefedDelegator |
Lance | |
---|---|
| com.android.tradefed.config.ConfigurationException |
ConfigurationException |
createReleaseMap
public staticcreateReleaseMap (IInvocationContext context, Throwable e)
Créez une carte de l'état des appareils afin qu'ils puissent être libérés de manière appropriée.
Paramètres | |
---|---|
context | IInvocationContext |
e | Throwable |
Retour | |
---|---|
créerSandbox
public ISandbox createSandbox ()
Créez un ISandbox
que l'invocation utilisera pour s'exécuter.
Retour | |
---|---|
ISandbox |
displayCommandQueue
public void displayCommandQueue (PrintWriter printWriter)
Affiche des informations de débogage détaillées sur l'état de la file d'attente d'exécution des commandes.
displayCommandsInfo
public void displayCommandsInfo (PrintWriter printWriter, String regex)
Afficher une liste des commandes actuelles.
Paramètres | |
---|---|
printWriter | PrintWriter : l' ERROR(/PrintWriter) vers laquelle sortir. |
regex | String : l'expression régulière à laquelle les commandes doivent correspondre pour être imprimées. Si null, toutes les commandes seront imprimées. |
displayInvocationsInfo
public void displayInvocationsInfo (PrintWriter printWriter)
Affiche une liste des appels en cours.
Paramètres | |
---|---|
printWriter | PrintWriter : l' ERROR(/PrintWriter) vers laquelle sortir. |
dumpCommandsXml
public void dumpCommandsXml (PrintWriter printWriter, String regex)
Videz le fichier xml développé pour la commande avec toutes les valeurs Option
spécifiées pour toutes les commandes en cours.
Paramètres | |
---|---|
printWriter | PrintWriter : l' ERROR(/PrintWriter) pour afficher l'état. |
regex | String : l'expression régulière à laquelle les commandes doivent correspondre pour que le fichier xml soit vidé. Si null, toutes les commandes seront vidées. |
execCommand
public long execCommand (ICommandScheduler.IScheduledInvocationListener listener,reservedDevices, String[] args)
Exécutez directement la commande sur les appareils déjà alloués.
Paramètres | |
---|---|
listener | ICommandScheduler.IScheduledInvocationListener : le ICommandScheduler.IScheduledInvocationListener à informer |
reservedDevices | ERROR(/List ) ERROR(/List ) à utiliser |
args | String : les arguments de la commande |
Retour | |
---|---|
long | ID d'appel de la commande planifiée. |
Lance | |
---|---|
ConfigurationException |
execCommand
public long execCommand (IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Alloue directement un périphérique et exécute une commande sans l'ajouter à la file d'attente de commandes à l'aide d'un IInvocationContext
déjà existant.
Paramètres | |
---|---|
context | IInvocationContext : un IInvocationContext existant. |
listener | ICommandScheduler.IScheduledInvocationListener : le ICommandScheduler.IScheduledInvocationListener à informer |
args | String : les arguments de la commande |
Retour | |
---|---|
long |
Lance | |
---|---|
ConfigurationException | |
NoDeviceException |
execCommand
public long execCommand (ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Alloue directement un périphérique et exécute une commande sans l'ajouter à la file d'attente de commandes.
Paramètres | |
---|---|
listener | ICommandScheduler.IScheduledInvocationListener : le ICommandScheduler.IScheduledInvocationListener à informer |
args | String : les arguments de la commande |
Retour | |
---|---|
long | ID d'appel de la commande planifiée. |
Lance | |
---|---|
ConfigurationException | |
NoDeviceException |
getCommandFileWatcher
public CommandFileWatcher getCommandFileWatcher ()
Obtenez le CommandFileWatcher
approprié pour ce planificateur
Retour | |
---|---|
CommandFileWatcher |
getExecutingCommandCount
public int getExecutingCommandCount ()
Renvoie le nombre de commandes en état d'exécution.
Retour | |
---|---|
int |
getInvocationInfo
public String getInvocationInfo (int invocationId)
Renvoie les informations sur un bu d'invocation en précisant l'id d'invocation.
Paramètres | |
---|---|
invocationId | int : l'identifiant de suivi de l'invocation. |
Retour | |
---|---|
String | Une ERROR(/String) contenant des informations sur l'appel. |
getLastInvocationExitCode
public CommandRunner.ExitCode getLastInvocationExitCode ()
Renvoie le code d'erreur du dernier appel exécuté. Renvoie 0 (pas d'erreur), si aucune invocation n'a encore été exécutée.
Retour | |
---|---|
CommandRunner.ExitCode |
getLastInvocationThrowable
public Throwable getLastInvocationThrowable ()
Renvoie l' ERROR(/Throwable)
de la dernière invocation exécutée. Renvoie null, si aucun jetable n'est disponible.
Retour | |
---|---|
Throwable |
getReadyCommandCount
public int getReadyCommandCount ()
Renvoie le nombre de commandes à l'état prêt dans la file d'attente.
Retour | |
---|---|
int |
getShutdownTimeout
public long getShutdownTimeout ()
Retour | |
---|---|
long |
isDeviceInInvocationThread
public boolean isDeviceInInvocationThread (ITestDevice device)
Renvoie true si le périphérique est utilisé par un thread d'invocation actif.
Paramètres | |
---|---|
device | ITestDevice |
Retour | |
---|---|
boolean |
notifierFichierModifié
public void notifyFileChanged (File cmdFile,extraArgs)
Paramètres | |
---|---|
cmdFile | File |
extraArgs |
removeAllCommands
public void removeAllCommands ()
Supprimer toutes les commandes du planificateur
courir
public void run ()
Le bloc d'exécution principal de ce thread.
setClearcutClient
public void setClearcutClient (ClearcutClient client)
Configurer le client pour qu'il signale les données du harnais
Paramètres | |
---|---|
client | ClearcutClient |
devraitShutdownOnCmdfileError
public boolean shouldShutdownOnCmdfileError ()
Renvoie vrai si nous devons arrêter le planificateur sur une erreur de commande
Retour | |
---|---|
boolean |
fermer
public void shutdown (boolean notifyStop)
Essayez d'arrêter correctement le planificateur de commandes.
Paramètres | |
---|---|
notifyStop | boolean : si vrai, notifie les invocations de l'arrêt de TF. |
arrêt dur
public void shutdownHard (boolean killAdb)
Essayez d'arrêter de force le planificateur de commandes.
Similaire à shutdown()
, mais tuera également éventuellement la connexion adb, dans une tentative "d'inspirer" les invocations en cours pour qu'elles se terminent plus rapidement.
Paramètres | |
---|---|
killAdb | boolean |
arrêt dur
public void shutdownHard ()
Essayez d'arrêter de force le planificateur de commandes. Identique à shutdownHard(true).
shutdownOnEmpty
public void shutdownOnEmpty ()
Similaire à shutdown()
, mais attendra à la place que toutes les commandes soient exécutées avant de quitter.
commencer
public void start ()
Démarre le planificateur, y compris la configuration de la journalisation, l'initialisation de DeviceManager
, etc.
stopInvocation
public boolean stopInvocation (ITestInvocation invocation)
Arrête un appel en cours d'exécution.
Paramètres | |
---|---|
invocation | ITestInvocation |
Retour | |
---|---|
boolean | vrai si l'invocation a été arrêtée, faux sinon |
stopInvocation
public boolean stopInvocation (int invocationId, String cause)
Arrêtez une invocation en cours en spécifiant son identifiant.
Paramètres | |
---|---|
invocationId | int : l'identifiant de suivi de l'invocation. |
cause | String : la cause de l'arrêt de l'invocation. |
Retour | |
---|---|
boolean | vrai si l'invocation a été arrêtée, faux sinon |
Méthodes protégées
nettoyer
protected void cleanUp ()
Ferme les journaux et effectue tout autre nettoyage nécessaire avant de quitter.
Exposé afin que les tests unitaires puissent se moquer.
créerConfiguration
protected IConfiguration createConfiguration (String[] args)
Paramètres | |
---|---|
args | String |
Retour | |
---|---|
IConfiguration |
Lance | |
---|---|
ConfigurationException |
createInvocationContextcreateInvocationContext
protected IInvocationContext createInvocationContext ()
Retour | |
---|---|
IInvocationContext |
execCommand
protected long execCommand (IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener,reservedDevices, String[] args)
Paramètres | |
---|---|
context | IInvocationContext |
listener | ICommandScheduler.IScheduledInvocationListener |
reservedDevices | |
args | String |
Retour | |
---|---|
long |
Lance | |
---|---|
ConfigurationException |
getConfigFactory
protected IConfigurationFactory getConfigFactory ()
Méthode d'usine pour obtenir une référence à IConfigurationFactory
Retour | |
---|---|
IConfigurationFactory | la IConfigurationFactory à utiliser |
getDeviceManagementServer
protected DeviceManagementGrpcServer getDeviceManagementServer ()
Retour | |
---|---|
DeviceManagementGrpcServer |
getDeviceManager
protected IDeviceManager getDeviceManager ()
Méthode d'usine pour obtenir une référence à IDeviceManager
Retour | |
---|---|
IDeviceManager | l' IDeviceManager à utiliser |
getKeyStoreClientgetKeyStoreClient
protected IKeyStoreClient getKeyStoreClient ()
Récupère un IKeyStoreClient
en utilisant le IKeyStoreFactory
déclaré dans IGlobalConfiguration
ou null si aucun n'est défini.
Retour | |
---|---|
IKeyStoreClient | IKeyStoreClient |
getTestInvocationManagementServer
protected TestInvocationManagementServer getTestInvocationManagementServer ()
Retour | |
---|---|
TestInvocationManagementServer |
initLogging
protected void initLogging ()
Initialise le journal ddmlib.
Exposé afin que les tests unitaires puissent se moquer.
estArrêt
protected boolean isShutdown ()
Retour | |
---|---|
boolean |
est en train de s'arrêter
protected boolean isShuttingDown ()
Retour | |
---|---|
boolean |
processReadyCommands
protected void processReadyCommands (IDeviceManager manager)
Paramètres | |
---|---|
manager | IDeviceManager |