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 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écution peu fréquente ou rapide auront la priorité sur les commandes à exécution longue.

Fonctionne indéfiniment 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 en attendant que le transfert de l'ancien TF se termine, le cas échéant.

static TradefedDelegator checkDelegation (String[] args)

Créez un délégant 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'invocation 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'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 en cours.

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 de 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 précisant l'id d'invocation.

CommandRunner.ExitCode getLastInvocationExitCode ()

Renvoie le code d'erreur du dernier appel exécuté.

Throwable getLastInvocationThrowable ()

Renvoie l' ERROR(/Throwable) de la dernière invocation exécutée.

int getReadyCommandCount ()

Renvoie le nombre de commandes à l'état prêt dans la file d'attente.

long getShutdownTimeout ()
boolean isDeviceInInvocationThread ( ITestDevice device)

Renvoie true si le périphérique est utilisé par un thread d'invocation actif.

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

void setClearcutClient (ClearcutClient client)

Configurer le client pour qu'il signale les données du harnais

boolean shouldShutdownOnCmdfileError ()

Renvoie vrai si nous devons arrêter le planificateur sur une erreur de commande

void shutdown (boolean notifyStop)

Essayez d'arrêter correctement le planificateur de commandes.

void shutdownHard (boolean killAdb)

Essayez d'arrêter de force le planificateur de commandes.

void shutdownHard ()

Essayez d'arrêter de force le planificateur de commandes.

void shutdownOnEmpty ()

Similaire à shutdown() , mais attendra à la place 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ête un appel en cours d'exécution.

boolean stopInvocation (int invocationId, String cause)

Arrêtez une invocation en cours en spécifiant son identifiant.

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 ()
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 en utilisant le IKeyStoreFactory déclaré dans IGlobalConfiguration ou null si aucun n'est défini.

TestInvocationManagementServer getTestInvocationManagementServer ()
void initLogging ()

Initialise le journal ddmlib.

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

Constructeurs publics

Planificateur de commandes

public CommandScheduler ()

Crée un CommandScheduler .

Remarque : start doit être appelée avant utilisation.

Méthodes publiques

addCommand

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 stdout. 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'identifiant 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.

Lance
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 ERROR(/String) à ajouter à chaque commande analysée à partir du fichier. Peut être vide mais ne doit pas être nul.

Lance
ConfigurationException

attendre

public void await ()

Attend que le planificateur commence à s'exécuter, y compris en attendant que le transfert de l'ancien TF se termine, le cas échéant.

checkDélégation

public static TradefedDelegator checkDelegation (String[] args)

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

Paramètres
args String

Retour
TradefedDelegator

Lance
com.android.tradefed.config.ConfigurationException
ConfigurationException

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

Retour

créerSandbox

public ISandbox createSandbox ()

Créez un ISandbox que l'invocation utilisera pour s'exécuter.

Retour
ISandbox

displayCommandQueue

public void displayCommandQueue (PrintWriter printWriter)

Affiche 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 null, 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 en cours.

Paramètres
printWriter PrintWriter : l' ERROR(/PrintWriter) pour afficher l'état.

regex String : l'expression régulière à laquelle les commandes doivent correspondre pour que le fichier xml soit vidé. Si null, toutes les commandes seront vidées.

execCommand

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

reservedDevices : l' ERROR(/List ) ERROR(/List ) à utiliser

args String : les arguments de la commande

Retour
long ID d'appel de la commande planifiée.

Lance
ConfigurationException

execCommand

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

args String : les arguments de la commande

Retour
long

Lance
ConfigurationException
NoDeviceException

execCommand

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 de commandes.

Paramètres
listener ICommandScheduler.IScheduledInvocationListener : le ICommandScheduler.IScheduledInvocationListener à informer

args String : les arguments de la commande

Retour
long ID d'appel de la commande planifiée.

Lance
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

getHostState

public CommandScheduler.HostState getHostState ()

Retour
CommandScheduler.HostState

getInvocationInfo

public String getInvocationInfo (int invocationId)

Renvoie les informations sur un bu d'invocation en précisant l'id d'invocation.

Paramètres
invocationId int : l'identifiant de suivi de l'invocation.

Retour
String Une ERROR(/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 aucune invocation n'a encore été exécutée.

Retour
CommandRunner.ExitCode

getLastInvocationThrowable

public Throwable getLastInvocationThrowable ()

Renvoie l' ERROR(/Throwable) de la dernière invocation exécutée. Renvoie null, si aucun jetable n'est disponible.

Retour
Throwable

getReadyCommandCount

public int getReadyCommandCount ()

Renvoie le nombre de commandes à l'état prêt dans la file d'attente.

Retour
int

getShutdownTimeout

public long getShutdownTimeout ()

Retour
long

isDeviceInInvocationThread

public boolean isDeviceInInvocationThread (ITestDevice device)

Renvoie true si le périphérique est utilisé par un thread d'invocation actif.

Paramètres
device ITestDevice

Retour
boolean

notifierFichierModifié

public void notifyFileChanged (File cmdFile, 
                 extraArgs)

Paramètres
cmdFile File

extraArgs

removeAllCommands

public void removeAllCommands ()

Supprimer toutes les commandes du planificateur

courir

public void run ()

Le bloc d'exécution principal de ce thread.

setClearcutClient

public void setClearcutClient (ClearcutClient client)

Configurer le client pour qu'il signale les données du harnais

Paramètres
client ClearcutClient

devraitShutdownOnCmdfileError

public boolean shouldShutdownOnCmdfileError ()

Renvoie vrai si nous devons arrêter le planificateur sur une 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êt dur

public void shutdownHard (boolean killAdb)

Essayez d'arrêter de force le planificateur de commandes.

Similaire à shutdown() , mais tuera également éventuellement la connexion adb, dans une tentative "d'inspirer" les invocations en cours pour qu'elles se terminent plus rapidement.

Paramètres
killAdb boolean

arrêt dur

public void shutdownHard ()

Essayez d'arrêter de force le planificateur de commandes. Identique à shutdownHard(true).

shutdownOnEmpty

public void shutdownOnEmpty ()

Similaire à shutdown() , mais attendra à la place que toutes les commandes soient exécutées avant de quitter.

Notez que si des commandes sont en mode boucle, le planificateur ne se fermera 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ête un appel en cours d'exécution.

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

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

Lance
ConfigurationException

createInvocationContextcreateInvocationContext

protected IInvocationContext createInvocationContext ()

Retour
IInvocationContext

execCommand

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

Paramètres
context IInvocationContext

listener ICommandScheduler.IScheduledInvocationListener

reservedDevices

args String

Retour
long

Lance
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

getDeviceManager

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

getKeyStoreClientgetKeyStoreClient

protected IKeyStoreClient getKeyStoreClient ()

Récupère un IKeyStoreClient en utilisant le 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.

estArrêt

protected boolean isShutdown ()

Retour
boolean

est en train de s'arrêter

protected boolean isShuttingDown ()

Retour
boolean

processReadyCommands

protected void processReadyCommands (IDeviceManager manager)

Paramètres
manager IDeviceManager