CommandScheduler

public class CommandScheduler
extends Object implements ICommandScheduler

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


Un planificateur permettant d'exécuter des commandes TradeFederation sur tous les appareils disponibles.

Essaye 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écutées rarement ou rapidement seront prioritaires sur les commandes exécutées sur une longue période.

S'exécute en arrière-plan sans fin jusqu'à l'arrêt.

Résumé

Classes imbriquées

enum CommandScheduler.HostState

Enumérations des différents états de l'hôte

Constructeurs publics

CommandScheduler()

Crée un objet CommandScheduler.

Méthodes publiques

boolean addCommand(String[] args)

Ajoute une commande au planificateur.

void addCommandFile(String cmdFilePath, extraArgs)

Ajoute toutes les commandes du fichier donné au planificateur

void await()

Attend que le planificateur commence à s'exécuter, y compris qu'il attend la fin de la transition de l'ancien TF, le cas échéant.

static TradefedDelegator checkDelegation(String[] args)

Créez un délégué basé sur la ligne de commande pour voir si nous devons déléguer l'exécution.

void completeHandover()

Informe le planificateur de commandes qu'une séquence de transfert lancée est complètement terminée et qu'il doit réinitialiser son gestionnaire à distance 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 ISandbox que l'appel utilisera pour s'exécuter.

void displayCommandQueue(PrintWriter printWriter)

Affiche des informations de débogage détaillées sur l'état de la file d'exécution des commandes.

void displayCommandsInfo(PrintWriter printWriter, String regex)

Affiche une liste des commandes en cours.

void displayInvocationsInfo(PrintWriter printWriter)

Affiche la liste des invocations en cours.

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.

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

Exécutez directement la commande sur un 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 à l'aide d'un IInvocationContext déjà existant.

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

Alloue directement un appareil et exécute une commande sans l'ajouter à la file d'attente de commandes.

CommandFileWatcher getCommandFileWatcher()

Obtenir le CommandFileWatcher approprié pour ce planificateur

int getExecutingCommandCount()

Renvoie le nombre de commandes en cours d'exécution.

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

Renvoyez les informations sur une invocation en spécifiant l'ID d'invocation.

CommandRunner.ExitCode getLastInvocationExitCode()

Renvoie le code d'erreur de la dernière invocation exécutée.

Throwable getLastInvocationThrowable()

Renvoie le Throwable de la dernière invocation exécutée.

int getReadyCommandCount()

Renvoie le nombre de commandes prêtes 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é et qu'il peut commencer à planifier l'opération.

boolean handoverShutdown(int handoverPort)

Lance un shutdown() et un transfert vers un autre processus de tradefed sur ce même hôte.

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

Supprimer toutes les commandes du planificateur

void run()

Bloc d'exécution principal de ce thread.

void setClearcutClient(ClearcutClient client)

Configurer le client pour générer des rapports sur les données du faisceau

boolean shouldShutdownOnCmdfileError()

Renvoie la valeur "true" si nous devons arrêter le planificateur en cas d'erreur de commande.

void shutdown()

Essayez d'arrêter de manière appropriée 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()

Semblable à shutdown(), mais attend que toutes les commandes soient exécutées avant de se fermer.

void start()

Démarre le planificateur, y compris la configuration de la journalisation, l'initialisation de DeviceManager, etc.

boolean stopInvocation(ITestInvocation invocation)

Arrêtez une invocation en cours d'exécution.

boolean stopInvocation(int invocationId, String cause)

Arrêtez une invocation en cours d'exécution en spécifiant son ID.

Méthodes protégées

void cleanUp()

Ferme les journaux et effectue tout nettoyage nécessaire avant de quitter.

IConfiguration createConfiguration(String[] args)
IInvocationContext createInvocationContext()
IConfigurationFactory getConfigFactory()

Méthode de fabrique permettant d'obtenir une référence à IConfigurationFactory

IDeviceManager getDeviceManager()

Méthode de fabrique permettant d'obtenir une référence à IDeviceManager

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

Récupère un IKeyStoreClient à l'aide du IKeyStoreFactory déclaré dans IGlobalConfiguration ou de la valeur nulle si aucun n'est défini.

void initLogging()

Initialise le journal ddmlib.

boolean isShutdown()
boolean isShuttingDown()
void processReadyCommands(IDeviceManager manager)
void waitForAllInvocationThreads()

Attendez que tous les threads d'invocation soient terminés.

Constructeurs publics

CommandScheduler

public CommandScheduler ()

Crée un objet CommandScheduler.

Remarque: start doit être appelé avant d'être utilisé.

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 de ses arguments associés.

Si l'argument "--help" est spécifié, le texte d'aide de la configuration est affiché sur la sortie standard. Sinon, la configuration sera ajoutée à la file d'attente pour être exécutée.

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 du fichier donné au planificateur

Paramètres
cmdFilePath String: chemin d'accès au système de fichiers du fichier de commande

extraArgs : ERROR(/List) d'arguments String à ajouter à chaque commande analysée à partir d'un fichier. Peut être vide, mais ne doit pas être nul.

Génère
ConfigurationException

await

public void await ()

Attend que le planificateur commence à s'exécuter, y compris qu'il attend la fin de la transition de l'ancien TF, le cas échéant.

checkDelegation

public static TradefedDelegator checkDelegation (String[] args)

Créez un délégué 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 le planificateur de commandes qu'une séquence de transfert lancée est complètement terminée et qu'il doit réinitialiser son gestionnaire à distance sur le port par défaut.

createReleaseMap

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

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)

Affiche des informations de débogage détaillées sur l'état de la file d'exécution des commandes.

displayCommandsInfo

public void displayCommandsInfo (PrintWriter printWriter, 
                String regex)

Affiche une liste des commandes en cours.

Paramètres
printWriter PrintWriter: ERROR(/PrintWriter) à utiliser pour la sortie.

regex String: expression régulière à laquelle les commandes doivent correspondre pour être imprimées. Si la valeur est nulle, toutes les commandes sont imprimées.

displayInvocationsInfo

public void displayInvocationsInfo (PrintWriter printWriter)

Affiche la liste des invocations en cours.

Paramètres
printWriter PrintWriter: ERROR(/PrintWriter) à utiliser pour la sortie.

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: ERROR(/PrintWriter) à utiliser pour afficher l'état.

regex String: expression régulière à laquelle les commandes doivent correspondre pour que le fichier XML soit extrait. Si la valeur est nulle, toutes les commandes sont affichées.

execCommand

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

Exécutez directement la commande sur un 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 à l'aide d'un IInvocationContext déjà existant.

Paramètres
context IInvocationContext: 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)

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

getHostState

public CommandScheduler.HostState getHostState ()

Renvoie
CommandScheduler.HostState

getInvocationInfo

public String getInvocationInfo (int invocationId)

Renvoyez les informations sur une invocation en spécifiant l'ID d'invocation.

Paramètres
invocationId int: ID de suivi de l'appel.

Renvoie
String String contenant des informations sur l'appel.

getLastInvocationExitCode

public CommandRunner.ExitCode getLastInvocationExitCode ()

Renvoie le code d'erreur de la dernière invocation exécutée. Renvoie 0 (aucune erreur) si aucune invocation n'a encore été exécutée.

Renvoie
CommandRunner.ExitCode

getLastInvocationThrowable

public Throwable getLastInvocationThrowable ()

Renvoie le Throwable de la dernière invocation exécutée. Renvoie la valeur "null" si aucun throwable n'est disponible.

Renvoie
Throwable

getReadyCommandCount

public int getReadyCommandCount ()

Renvoie le nombre de commandes prêtes 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é et qu'il peut commencer à planifier l'opération.

handoverShutdown

public boolean handoverShutdown (int handoverPort)

Lance un shutdown() et un transfert vers un autre processus de tradefed sur ce même hôte.

Le planificateur informe le processus de tradefed à distance qui écoute sur ce port des appareils libérés à mesure qu'ils deviennent disponibles.

Paramètres
handoverPort int

Renvoie
boolean true si l'initiation du transfert a réussi, false dans le cas contraire

notifyFileChanged

public void notifyFileChanged (File cmdFile, 
                 extraArgs)

Paramètres
cmdFile File

extraArgs

removeAllCommands

public void removeAllCommands ()

Supprimer toutes les commandes du planificateur

Exécuter

public void run ()

Bloc d'exécution principal de ce thread.

setClearcutClient

public void setClearcutClient (ClearcutClient client)

Configurer le client pour générer des rapports sur les données du faisceau

Paramètres
client ClearcutClient

shouldShutdownOnCmdfileError

public boolean shouldShutdownOnCmdfileError ()

Renvoie la valeur "true" si nous devons arrêter le planificateur en cas d'erreur de commande.

Renvoie
boolean

arrêt

public void shutdown ()

Essayez d'arrêter de manière appropriée le planificateur de commandes.

Efface les commandes en attente d'être testées et demande à toutes les invocations en cours de s'arrêter correctement.

Une fois l'arrêt appelé, la boucle principale de l'ordonnanceur attend que toutes les invocations en cours soient terminées avant de se fermer complètement.

shutdownHard

public void shutdownHard (boolean killAdb)

Tentative d'arrêt forcé du planificateur de commandes.

Semblable à shutdown(), mais peut également fermer la connexion adb, dans le but d''inspirer' les invocations en cours pour qu'elles soient effectuées 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 se fermer.

Notez que si des commandes sont en mode boucle, le planificateur ne s'arrêtera jamais.

départ

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 d'exécution.

Paramètres
invocation ITestInvocation

Renvoie
boolean "true" si l'appel a été arrêté, "false" dans le cas contraire

stopInvocation

public boolean stopInvocation (int invocationId, 
                String cause)

Arrêtez une invocation 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

cleanUp

protected void cleanUp ()

Ferme les journaux et effectue tout nettoyage nécessaire avant de quitter.

Exposé pour que les tests unitaires puissent simuler.

createConfiguration

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 de fabrique permettant d'obtenir une référence à IConfigurationFactory

Renvoie
IConfigurationFactory le IConfigurationFactory à utiliser

getDeviceManager

protected IDeviceManager getDeviceManager ()

Méthode de fabrique permettant d'obtenir une référence à IDeviceManager

Renvoie
IDeviceManager le IDeviceManager à utiliser

getFeatureServer

protected TradefedFeatureServer getFeatureServer ()

Renvoie
TradefedFeatureServer

getHostOptions

protected IHostOptions getHostOptions ()

Renvoie
IHostOptions

getKeyStoreClient

protected IKeyStoreClient getKeyStoreClient ()

Récupère un IKeyStoreClient à l'aide du IKeyStoreFactory déclaré dans IGlobalConfiguration ou de la valeur nulle si aucun n'est défini.

Renvoie
IKeyStoreClient IKeyStoreClient

initLogging

protected void initLogging ()

Initialise le journal ddmlib.

Exposé pour que les tests unitaires puissent simuler.

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'invocation soient terminés.