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 prioriser les commandes à exécuter en fonction du nombre total d'exécution de leur temps d'exécution. par exemple, les commandes peu fréquentes ou à exécution rapide auront la priorité sur les commandes à exécution longue.
Fonctionne éternellement 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 la fin du transfert de l'ancien TF, le cas échéant. |
static TradefedDelegator | checkDelegation (String[] args) Créez un délégateur 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) Afficher 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 des commandes. |
CommandFileWatcher | getCommandFileWatcher () Obtenez le CommandFileWatcher approprié pour ce planificateur |
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 spécifiant l'identifiant de l'invocation. |
CommandRunner.ExitCode | getLastInvocationExitCode () Renvoie le code d'erreur du dernier appel exécuté. |
Throwable | getLastInvocationThrowable () Renvoie le |
int | getReadyCommandCount () Renvoie le nombre de commandes prêtes dans la file d'attente. |
long | getShutdownTimeout () |
boolean | isDeviceInInvocationThread ( ITestDevice device) Renvoie vrai si le périphérique est utilisé par un thread d’invocation actif. |
boolean | isShuttingDown () |
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 fil. |
void | setClearcutClient (ClearcutClient client) Configurer le client pour qu'il rapporte les données du faisceau |
boolean | shouldShutdownOnCmdfileError () Renvoie true si nous devons arrêter le planificateur en cas d'erreur de commande |
void | shutdown (boolean notifyStop) Essayez d'arrêter correctement le planificateur de commandes. |
void | shutdownHard (boolean killAdb) Tentative d'arrêt forcé du planificateur de commandes. |
void | shutdownHard () Tentative d'arrêt forcé du 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êtez une invocation en cours. |
boolean | stopInvocation (int invocationId, String cause) Arrêtez une invocation en cours en spécifiant son identifiant. |
void | stopScheduling () Arrête de planifier et d'accepter de nouveaux tests, mais n'arrête pas Tradefed. |
Constructeurs publics
Planificateur de commandes
public CommandScheduler ()
Crée un CommandScheduler
.
Remarque : start doit être appelé avant utilisation.
Méthodes publiques
ajouterCommand
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 la sortie standard. 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'ID 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. |
Jetés | |
---|---|
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 String à ajouter à chaque commande analysée à partir du fichier. Peut être vide mais ne doit pas être nul. |
Jetés | |
---|---|
ConfigurationException |
attendre
public void await ()
Attend que le planificateur commence à s'exécuter, y compris la fin du transfert de l'ancien TF, le cas échéant.
checkDélégation
public static TradefedDelegator checkDelegation (String[] args)
Créez un délégateur basé sur la ligne de commande pour voir si nous devons déléguer l'exécution.
Paramètres | |
---|---|
args | String |
Retour | |
---|---|
TradefedDelegator |
Jetés | |
---|---|
| com.android.tradefed.config.ConfigurationException |
ConfigurationException |
créerReleaseMap
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éer un bac à sable
public ISandbox createSandbox ()
Créez un ISandbox
que l'appel utilisera pour s'exécuter.
Retour | |
---|---|
ISandbox |
displayCommandQueue
public void displayCommandQueue (PrintWriter printWriter)
Afficher 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 nul, alors 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 actuelles.
Paramètres | |
---|---|
printWriter | PrintWriter : l' ERROR(/PrintWriter) vers laquelle afficher l'état. |
regex | String : l'expression régulière à laquelle les commandes doivent correspondre pour que le fichier XML soit vidé. Si nul, alors toutes les commandes seront vidées. |
CommandeExec
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 à renseigner |
reservedDevices | ERROR(/List ) ERROR(/List ) utiliser |
args | String : les arguments de la commande |
Retour | |
---|---|
long | L’identifiant d’invocation de la commande planifiée. |
Jetés | |
---|---|
ConfigurationException |
CommandeExec
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 à renseigner |
args | String : les arguments de la commande |
Retour | |
---|---|
long |
Jetés | |
---|---|
ConfigurationException | |
NoDeviceException |
CommandeExec
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 des commandes.
Paramètres | |
---|---|
listener | ICommandScheduler.IScheduledInvocationListener : le ICommandScheduler.IScheduledInvocationListener à renseigner |
args | String : les arguments de la commande |
Retour | |
---|---|
long | L’identifiant d’invocation de la commande planifiée. |
Jetés | |
---|---|
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 |
obtenirHostState
public CommandScheduler.HostState getHostState ()
Retour | |
---|---|
CommandScheduler.HostState |
getInvocationInfo
public String getInvocationInfo (int invocationId)
Renvoie les informations sur un bu d'invocation en spécifiant l'identifiant de l'invocation.
Paramètres | |
---|---|
invocationId | int : l'identifiant de suivi de l'invocation. |
Retour | |
---|---|
String | Une 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 aucun appel n'a encore été exécuté.
Retour | |
---|---|
CommandRunner.ExitCode |
getLastInvocationThrowable
public Throwable getLastInvocationThrowable ()
Renvoie le Throwable
de la dernière invocation exécutée. Renvoie null, si aucun objet jetable n'est disponible.
Retour | |
---|---|
Throwable |
getReadyCommandCount
public int getReadyCommandCount ()
Renvoie le nombre de commandes prêtes dans la file d'attente.
Retour | |
---|---|
int |
getShutdownTimeout
public long getShutdownTimeout ()
Retour | |
---|---|
long |
isDeviceInInvocationThread
public boolean isDeviceInInvocationThread (ITestDevice device)
Renvoie vrai si le périphérique est utilisé par un thread d’invocation actif.
Paramètres | |
---|---|
device | ITestDevice |
Retour | |
---|---|
boolean |
estShuttingDown
public boolean isShuttingDown ()
Retour | |
---|---|
boolean |
notifyFileChanged
public void notifyFileChanged (File cmdFile,extraArgs)
Paramètres | |
---|---|
cmdFile | File |
extraArgs |
supprimerTouteslesCommandes
public void removeAllCommands ()
Supprimer toutes les commandes du planificateur
courir
public void run ()
Le bloc d'exécution principal de ce fil.
setClearcutClient
public void setClearcutClient (ClearcutClient client)
Configurer le client pour qu'il rapporte les données du faisceau
Paramètres | |
---|---|
client | ClearcutClient |
devraitShutdownOnCmdfileError
public boolean shouldShutdownOnCmdfileError ()
Renvoie true si nous devons arrêter le planificateur en cas d'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êtDur
public void shutdownHard (boolean killAdb)
Tentative d'arrêt forcé du planificateur de commandes.
Semblable à shutdown()
, mais tuera également éventuellement la connexion adb, dans le but « d'inspirer » les invocations en cours pour qu'elles se terminent plus rapidement.
Paramètres | |
---|---|
killAdb | boolean |
arrêtDur
public void shutdownHard ()
Tentative d'arrêt forcé du planificateur de commandes. Identique à shutdownHard (true).
arrêt sur vide
public void shutdownOnEmpty ()
Similaire à shutdown()
, mais attendra 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êtez une invocation en cours.
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 |
arrêter la planification
public void stopScheduling ()
Arrête de planifier et d'accepter de nouveaux tests, mais n'arrête pas Tradefed. Ceci est destiné à permettre un arrêt en deux étapes où nous vidons d'abord tous les tests en cours, puis terminons le processus Tradefed.
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 |
Jetés | |
---|---|
ConfigurationException |
createInvocationContext
protected IInvocationContext createInvocationContext ()
Retour | |
---|---|
IInvocationContext |
dryRunCommandReporting
protected void dryRunCommandReporting (ICommandScheduler.IScheduledInvocationListener handler, IConfiguration config)
Détermine si une commande donnée est un essai à sec. Si la commande est un essai à sec, validez-la. S'il y a un problème de configuration, une exception ConfigurationException sera générée.
Paramètres | |
---|---|
handler | ICommandScheduler.IScheduledInvocationListener : ERROR(/InvocationEventHandler) pour signaler les événements pour la validation à sec. |
config | IConfiguration |
Retour | |
---|---|
void | vrai si la commande est un essai à sec, faux sinon. |
Jetés | |
---|---|
| com.android.tradefed.config.ConfigurationException |
ConfigurationException |
CommandeExec
protected long execCommand (IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener,reservedDevices, String[] args)
Paramètres | |
---|---|
context | IInvocationContext |
listener | ICommandScheduler.IScheduledInvocationListener |
reservedDevices | |
args | String |
Retour | |
---|---|
long |
Jetés | |
---|---|
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 |
obtenirDeviceManager
protected IDeviceManager getDeviceManager ()
Méthode d'usine pour obtenir une référence à IDeviceManager
Retour | |
---|---|
IDeviceManager | l' IDeviceManager à utiliser |
getKeyStoreClient
protected IKeyStoreClient getKeyStoreClient ()
Récupère un IKeyStoreClient
à l'aide du 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.
estShutdown
protected boolean isShutdown ()
Retour | |
---|---|
boolean |
processReadyCommands
protected void processReadyCommands (IDeviceManager manager)
Paramètres | |
---|---|
manager | IDeviceManager |