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

Méthodes publiques

boolean addCommand(String[] args)

Ajoute une commande au planificateur.

void addCommandFile(String cmdFilePath, extraArgs)

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 ISandbox que l'appel utilisera pour s'exécuter.

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 Option spécifiées pour toutes les commandes actuelles.

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 IInvocationContext existant.

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 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 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 Throwable du dernier appel exécuté.

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 shutdown() et le transfert à un autre processus échangé sur ce même hôte.

void notifyFileChanged(File cmdFile, extraArgs)
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 à shutdown(), mais attend que toutes les commandes soient exécutées avant de quitter.

void start()

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

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 à IConfigurationFactory

IDeviceManager getDeviceManager()

Méthode par défaut permettant d'obtenir une référence à IDeviceManager

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

Récupère un IKeyStoreClient à l'aide de IKeyStoreFactory. déclarée dans IGlobalConfiguration ou nulle si aucune n'est définie.

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

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

getHostState

public CommandScheduler.HostState getHostState ()

Renvoie
CommandScheduler.HostState

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

getFeatureServer

protected TradefedFeatureServer getFeatureServer ()

Renvoie
TradefedFeatureServer

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.