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

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

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

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 IInvocationContext déjà existant.

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 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 ()
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 à shutdown() , mais attendra que toutes les commandes soient exécutées avant de quitter.

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.

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.

Méthodes protégées

void cleanUp ()

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

IConfiguration createConfiguration (String[] args)
IInvocationContext createInvocationContext ()
void dryRunCommandReporting ( ICommandScheduler.IScheduledInvocationListener handler, IConfiguration config)

Détermine si une commande donnée est un essai à sec.

long execCommand ( IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, reservedDevices, String[] args) execCommand ( IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, reservedDevices, String[] args)
IConfigurationFactory getConfigFactory ()

Méthode d'usine pour obtenir une référence à IConfigurationFactory

DeviceManagementGrpcServer getDeviceManagementServer ()
IDeviceManager getDeviceManager ()

Méthode d'usine pour 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 null si aucun n'est défini.

TestInvocationManagementServer getTestInvocationManagementServer ()
void initLogging ()

Initialise le journal ddmlib.

boolean isShutdown ()
void processReadyCommands ( IDeviceManager manager)

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 : une 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 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

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 : l' 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.

Notez que si des commandes sont en mode boucle, le planificateur ne se terminera jamais.

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

getFeatureServer

protected TradefedFeatureServer getFeatureServer ()

Retour
TradefedFeatureServer

getHostOptions

protected IHostOptions getHostOptions ()

Retour
IHostOptions

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