Outil de planification de commandes
public
class
CommandScheduler
extends Object
implements
ICommandScheduler
java.lang.Object | |
↳ | com.android.tradefed.command.CommandScheduler |
Planificateur pour l'exécution des commandes Tradefédération sur tous les appareils disponibles.
tentera de hiérarchiser les commandes à exécuter en fonction du nombre total d'exécutions en temps réel. Ex. : les commandes peu fréquentes ou à exécution rapide seront prioritaires sur les commandes de longue durée.
Fonctionne indéfiniment en arrière-plan jusqu'à l'arrêt.
Résumé
Classes imbriquées | |
---|---|
enum |
CommandScheduler.HostState
Énumérations des différents états de l'hôte |
Constructeurs publics | |
---|---|
CommandScheduler()
Crée un |
Méthodes publiques | |
---|---|
boolean
|
addCommand(String[] args)
Ajoute une commande au planificateur. |
void
|
addCommandFile(String cmdFilePath,
Ajoute toutes les commandes d'un fichier donné au planificateur |
void
|
await()
Attend le démarrage du programmeur, y compris la fin du transfert de l'ancien fichier 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. |
void
|
completeHandover()
Informe l'ordonnanceur de commandes qu'une séquence de transfert initiée est terminée et qu'il réinitialise son gestionnaire distant sur le port par défaut. |
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)
Génère 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)
Affichez la liste des commandes actuelles. |
void
|
displayInvocationsInfo(PrintWriter printWriter)
Affiche la liste des appels en cours. |
void
|
dumpCommandsXml(PrintWriter printWriter, String regex)
Videz le fichier XML développé de la commande en incluant toutes
Valeurs |
void
|
execCommand(ICommandScheduler.IScheduledInvocationListener listener, ITestDevice device, String[] args)
Exécutez directement la commande sur l'appareil déjà alloué. |
void
|
execCommand(IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Alloue directement un appareil et exécute une commande sans l'ajouter à la file d'attente de commandes
en utilisant un |
void
|
execCommand(ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Il alloue directement un appareil et exécute une commande sans l'ajouter à la file d'attente de commandes. |
CommandFileWatcher
|
getCommandFileWatcher()
Obtenir le |
int
|
getExecutingCommandCount()
Renvoie le nombre de commandes en cours d'exécution. |
CommandScheduler.HostState
|
getHostState()
|
String
|
getInvocationInfo(int invocationId)
Renvoyez les informations sur un bu d'appel en spécifiant l'ID d'appel. |
CommandRunner.ExitCode
|
getLastInvocationExitCode()
Renvoyez le code d'erreur du dernier appel exécuté. |
Throwable
|
getLastInvocationThrowable()
Renvoyez la valeur |
int
|
getReadyCommandCount()
Renvoie le nombre de commandes à l'état prêt dans la file d'attente. |
long
|
getShutdownTimeout()
|
void
|
handoverInitiationComplete()
Informe le planificateur de commandes que l'échange initial de transfert des appareils et des commandes en cours d'utilisation est terminée et peut commencer l'opération de planification. |
boolean
|
handoverShutdown(int handoverPort)
Lance un |
void
|
notifyFileChanged(File cmdFile,
|
void
|
removeAllCommands()
Supprimer toutes les commandes du programmeur |
void
|
run()
Bloc d'exécution principal de ce thread. |
void
|
setClearcutClient(ClearcutClient client)
Configurer le client pour qu'il génère des rapports |
boolean
|
shouldShutdownOnCmdfileError()
Renvoyez "true" si nous devons arrêter le planificateur en cas d'erreur de commande. |
void
|
shutdown()
Tentative d'arrêt progressif du 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()
Semblable à |
void
|
start()
Démarre le programmeur, y compris la configuration de la journalisation, l'initialisation de |
boolean
|
stopInvocation(ITestInvocation invocation)
Arrêtez un appel en cours d'exécution. |
boolean
|
stopInvocation(int invocationId, String cause)
Arrêtez un appel en cours d'exécution en spécifiant son ID. |
Méthodes protégées | |
---|---|
void
|
cleanUp()
Ferme les journaux et effectue tout autre nettoyage nécessaire avant la fermeture. |
IConfiguration
|
createConfiguration(String[] args)
|
IInvocationContext
|
createInvocationContext()
|
IConfigurationFactory
|
getConfigFactory()
Méthode par défaut permettant d'obtenir une référence à |
IDeviceManager
|
getDeviceManager()
Méthode par défaut permettant d'obtenir une référence à |
TradefedFeatureServer
|
getFeatureServer()
|
IHostOptions
|
getHostOptions()
|
IKeyStoreClient
|
getKeyStoreClient()
Récupère un |
void
|
initLogging()
Initialise le journal ddmlib. |
boolean
|
isShutdown()
|
boolean
|
isShuttingDown()
|
void
|
processReadyCommands(IDeviceManager manager)
|
void
|
waitForAllInvocationThreads()
Attendez que tous les threads d'appel soient terminés. |
Constructeurs publics
Outil de planification de commandes
public CommandScheduler ()
Crée un CommandScheduler
.
Remarque: la méthode start doit être appelée avant utilisation.
Méthodes publiques
addCommand
public boolean 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 "--help" est spécifié dans le texte d'aide la configuration sera transmise à stdout. Sinon, la configuration sera ajoutée à la file d'attente exécuter.
Paramètres | |
---|---|
args |
String : arguments de configuration. |
Renvoie | |
---|---|
boolean |
true si la commande a bien été ajoutée |
Génère | |
---|---|
ConfigurationException |
addCommandFile
public void addCommandFile (String cmdFilePath,extraArgs)
Ajoute toutes les commandes d'un fichier donné au planificateur
Paramètres | |
---|---|
cmdFilePath |
String : chemin d'accès au système de fichiers du fichier de commande |
extraArgs |
: une liste ERROR(/List) d'arguments String à ajouter à chaque commande analysée
à partir du fichier. Ce champ peut être vide, mais ne doit pas être nul. |
Génère | |
---|---|
ConfigurationException |
attendre
public void await ()
Attend le démarrage du programmeur, y compris la fin du transfert de l'ancien fichier TF le cas échéant.
cocher la dé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 |
Renvoie | |
---|---|
TradefedDelegator |
Génère | |
---|---|
ConfigurationException |
completeHandover
public void completeHandover ()
Informe l'ordonnanceur de commandes qu'une séquence de transfert initiée est terminée et qu'il réinitialise son gestionnaire distant sur le port par défaut.
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 |
Renvoie | |
---|---|
|
createSandbox
public ISandbox createSandbox ()
Créez un ISandbox
que l'appel utilisera pour s'exécuter.
Renvoie | |
---|---|
ISandbox |
displayCommandQueue
public void displayCommandQueue (PrintWriter printWriter)
Génère 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)
Affichez la liste des commandes actuelles.
Paramètres | |
---|---|
printWriter |
PrintWriter : ERROR(/PrintWriter) vers lequel renvoyer. |
regex |
String : expression régulière à laquelle les commandes doivent être mises en correspondance pour être
imprimés. Si la valeur est nulle, toutes les commandes seront imprimées.
|
displayInvocationsInfo
public void displayInvocationsInfo (PrintWriter printWriter)
Affiche la liste des appels en cours.
Paramètres | |
---|---|
printWriter |
PrintWriter : ERROR(/PrintWriter) vers lequel renvoyer.
|
dumpCommandsXml
public void dumpCommandsXml (PrintWriter printWriter, String regex)
Videz le fichier XML développé de la commande en incluant toutes
Valeurs Option
spécifiées pour toutes les commandes actuelles.
Paramètres | |
---|---|
printWriter |
PrintWriter : ERROR(/PrintWriter) auquel renvoyer l'état. |
regex |
String : expression régulière à laquelle les commandes doivent être mises en correspondance pour que le
xml à vider. Si la valeur est nulle, toutes les commandes seront vidées.
|
execCommand
public void execCommand (ICommandScheduler.IScheduledInvocationListener listener, ITestDevice device, String[] args)
Exécutez directement la commande sur l'appareil déjà alloué.
Paramètres | |
---|---|
listener |
ICommandScheduler.IScheduledInvocationListener : ICommandScheduler.IScheduledInvocationListener à informer |
device |
ITestDevice : ITestDevice à utiliser |
args |
String : arguments de la commande |
Génère | |
---|---|
ConfigurationException |
execCommand
public void execCommand (IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Alloue directement un appareil et exécute une commande sans l'ajouter à la file d'attente de commandes
en utilisant un IInvocationContext
existant.
Paramètres | |
---|---|
context |
IInvocationContext : un IInvocationContext existant. |
listener |
ICommandScheduler.IScheduledInvocationListener : ICommandScheduler.IScheduledInvocationListener à informer |
args |
String : arguments de la commande |
Génère | |
---|---|
ConfigurationException |
|
NoDeviceException |
execCommand
public void execCommand (ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Il alloue directement un appareil et exécute une commande sans l'ajouter à la file d'attente de commandes.
Paramètres | |
---|---|
listener |
ICommandScheduler.IScheduledInvocationListener : ICommandScheduler.IScheduledInvocationListener à informer |
args |
String : arguments de la commande |
Génère | |
---|---|
ConfigurationException |
|
NoDeviceException |
getCommandFileWatcher
public CommandFileWatcher getCommandFileWatcher ()
Obtenir le CommandFileWatcher
approprié pour ce planificateur
Renvoie | |
---|---|
CommandFileWatcher |
getExecutingCommandCount
public int getExecutingCommandCount ()
Renvoie le nombre de commandes en cours d'exécution.
Renvoie | |
---|---|
int |
getInvocationInfo
public String getInvocationInfo (int invocationId)
Renvoyez les informations sur un bu d'appel en spécifiant l'ID d'appel.
Paramètres | |
---|---|
invocationId |
int : ID de suivi de l'appel. |
Renvoie | |
---|---|
String |
Une String contenant des informations sur l'appel.
|
getLastInvocationExitCode
public CommandRunner.ExitCode getLastInvocationExitCode ()
Renvoyez le code d'erreur du dernier appel exécuté. Renvoyez 0 (aucune erreur) si aucune invocation n'a encore été exécutée.
Renvoie | |
---|---|
CommandRunner.ExitCode |
getLastInvocationThrowable
public Throwable getLastInvocationThrowable ()
Renvoyez la valeur Throwable
du dernier appel exécuté.
Renvoie la valeur "null" si aucun Throwable n'est disponible.
Renvoie | |
---|---|
Throwable |
getReadyCommandCount
public int getReadyCommandCount ()
Renvoie le nombre de commandes à l'état prêt dans la file d'attente.
Renvoie | |
---|---|
int |
getShutdownTimeout
public long getShutdownTimeout ()
Renvoie | |
---|---|
long |
HandoverInitiationComplete
public void handoverInitiationComplete ()
Informe le planificateur de commandes que l'échange initial de transfert des appareils et des commandes en cours d'utilisation est terminée et peut commencer l'opération de planification.
arrêt de transfert
public boolean handoverShutdown (int handoverPort)
Lance un shutdown()
et le transfert à un autre processus échangé sur ce même hôte.
Le programmeur informe le processus échangé à distance qui écoute sur ce port d'appareils libérés dès qu'elles sont disponibles.
Paramètres | |
---|---|
handoverPort |
int |
Renvoie | |
---|---|
boolean |
true si le transfert a réussi, false
sinon
|
notifierFichierChanged
public void notifyFileChanged (File cmdFile,extraArgs)
Paramètres | |
---|---|
cmdFile |
File |
extraArgs |
|
removeAllCommands
public void removeAllCommands ()
Supprimer toutes les commandes du programmeur
Exécuter
public void run ()
Bloc d'exécution principal de ce thread.
setClearcutClient
public void setClearcutClient (ClearcutClient client)
Configurer le client pour qu'il génère des rapports
Paramètres | |
---|---|
client |
ClearcutClient |
doitShutdownOnCmdfileError
public boolean shouldShutdownOnCmdfileError ()
Renvoyez "true" si nous devons arrêter le planificateur en cas d'erreur de commande.
Renvoie | |
---|---|
boolean |
arrêter
public void shutdown ()
Tentative d'arrêt progressif du planificateur de commandes.
Efface les commandes en attente de test et demande que tous les appels en cours s'arrêter en douceur.
Une fois l'arrêt appelé, la boucle principale du programmeur attend que tous les appels soient en cours avant de quitter complètement l'application.
shutdownHard
public void shutdownHard (boolean killAdb)
Tentative d'arrêt forcé du planificateur de commandes.
Semblable à shutdown()
, mais supprime également la connexion adb, dans une
pour "inspirer" d'appels en cours pour se terminer plus rapidement.
Paramètres | |
---|---|
killAdb |
boolean |
shutdownHard
public void shutdownHard ()
Tentative d'arrêt forcé du planificateur de commandes. Identique à shutdownHard(true).
shutdownOnEmpty
public void shutdownOnEmpty ()
Semblable à shutdown()
, mais attend que toutes les commandes soient exécutées
avant de quitter.
Notez que si des commandes sont en mode boucle, le planificateur ne se ferme jamais.
départ
public void start ()
Démarre le programmeur, y compris la configuration de la journalisation, l'initialisation de DeviceManager
, etc.
arrêter l'appel
public boolean stopInvocation (ITestInvocation invocation)
Arrêtez un appel en cours d'exécution.
Paramètres | |
---|---|
invocation |
ITestInvocation |
Renvoie | |
---|---|
boolean |
"true" si l'appel a été arrêté, "false" dans le cas contraire |
arrêter l'appel
public boolean stopInvocation (int invocationId, String cause)
Arrêtez un appel en cours d'exécution en spécifiant son ID.
Paramètres | |
---|---|
invocationId |
int : ID de suivi de l'appel. |
cause |
String : cause de l'arrêt de l'appel. |
Renvoie | |
---|---|
boolean |
"true" si l'appel a été arrêté, "false" dans le cas contraire |
Méthodes protégées
nettoyage
protected void cleanUp ()
Ferme les journaux et effectue tout autre nettoyage nécessaire avant la fermeture.
Il est exposé pour que les tests unitaires puissent être fictifs.
Créer une configuration
protected IConfiguration createConfiguration (String[] args)
Paramètres | |
---|---|
args |
String |
Renvoie | |
---|---|
IConfiguration |
Génère | |
---|---|
ConfigurationException |
createInvocationContext
protected IInvocationContext createInvocationContext ()
Renvoie | |
---|---|
IInvocationContext |
getConfigFactory
protected IConfigurationFactory getConfigFactory ()
Méthode par défaut permettant d'obtenir une référence à IConfigurationFactory
Renvoie | |
---|---|
IConfigurationFactory |
le IConfigurationFactory pour utiliser
|
getDeviceManager
protected IDeviceManager getDeviceManager ()
Méthode par défaut permettant d'obtenir une référence à IDeviceManager
Renvoie | |
---|---|
IDeviceManager |
le IDeviceManager pour utiliser
|
getHostOptions
protected IHostOptions getHostOptions ()
Renvoie | |
---|---|
IHostOptions |
getKeyStoreClient
protected IKeyStoreClient getKeyStoreClient ()
Récupère un IKeyStoreClient
à l'aide de IKeyStoreFactory
.
déclarée dans IGlobalConfiguration
ou nulle si aucune n'est définie.
Renvoie | |
---|---|
IKeyStoreClient |
IKeyStoreClient |
initLogging
protected void initLogging ()
Initialise le journal ddmlib.
Il est exposé pour que les tests unitaires puissent être fictifs.
isShutdown
protected boolean isShutdown ()
Renvoie | |
---|---|
boolean |
isShuttingDown
protected boolean isShuttingDown ()
Renvoie | |
---|---|
boolean |
processReadyCommands
protected void processReadyCommands (IDeviceManager manager)
Paramètres | |
---|---|
manager |
IDeviceManager |
WaitForAllInvocationThreads
protected void waitForAllInvocationThreads ()
Attendez que tous les threads d'appel soient terminés.