# -*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
##@creator: jclain
##@created: 15/03/2012 22:15
##@modifier: jclain
##@changecount: 1
##@tags: 
##@title: ulib/wondermonitor

!! {{{wom__statistics}}}
{{{
Afficher les statistiques pour le serveur $1, avec éventuellement le mot
de passe $2
}}}
!! {{{wom__info}}}
{{{
Contacter le moniteur sur l'hôte $2, avec éventuellement le mot de passe
$3, et afficher des informations sur l'application $1 (par défaut, all)
}}}
!! {{{wom__info_filter}}}
{{{
filtrer le résultat de wom__info en ne gardant que les tags
name, state, activeSessions, autoRecover, deaths, host, port
}}}
!! {{{wom_info}}}
{{{
Contacter le moniteur sur l'hôte $3, avec éventuellement le mot de passe
$4, et initialiser le tableau $1 avec une liste de valeurs quotés de la
forme:
"'name' 'state' 'activeSessions' 'autoRecover' 'deaths' 'host' 'port'"
concernant l'application $2 (par défaut, toutes les applications). Notez
qu'il y a une ligne par instance d'application
Ces valeurs peuvent être utilisées comme arguments d'une fonction. par
exemple:
wom_info appinfos "" host pw
for args in "${appinfos[@]}"; do
eval "userfunc $args"
done
}}}
!! {{{wom_getValidAndRunning}}}
{{{
Placer la liste des applications valides dans le tableau $1(=valid_apps)
et la liste des applications qui tournent dans le tableau
$2=(running_apps), en contactant le moniteur sur l'hôte $3, avec
éventuellement le mot de passe $4.
}}}
!! {{{show_appinfo}}}
{{{
Afficher des informations sur une application. Les arguments doivent être
le résultat de la fonction wom_info()
}}}
!! {{{wom_running}}}
{{{
Contacter le moniteur sur l'hôte $2, avec éventuellement le mot de passe
$3, et tester si l'application $1 (par défaut, all) tourne actuellement
}}}
!! {{{wom_start}}}
{{{
Contacter le moniteur sur l'hôte $2, avec éventuellement le mot de passe
$3, et démarrer l'application $1 (par défaut, all)
}}}
!! {{{wom_stopped}}}
{{{
Contacter le moniteur sur l'hôte $2, avec éventuellement le mot de passe
$3, et tester si l'application $1 (par défaut, all) est actuellement arrêtée
}}}
!! {{{wom_stop}}}
{{{
Contacter le moniteur sur l'hôte $2, avec éventuellement le mot de passe
$3, et arrêter l'application $1 (par défaut, all)
}}}
!! {{{wom_forceQuit}}}
{{{
Contacter le moniteur sur l'hôte $2, avec éventuellement le mot de passe
$3, et forcer l'arrêt de l'application $1 (par défaut, all)
}}}
!! {{{wom_turnScheduledOn}}}
{{{
Contacter le moniteur sur l'hôte $2, avec éventuellement le mot de passe
$3, et activer le flag scheduled sur l'application $1 (par défaut, all)
}}}
!! {{{wom_turnScheduledOff}}}
{{{
Contacter le moniteur sur l'hôte $2, avec éventuellement le mot de passe
$3, et désactiver le flag scheduled sur l'application $1 (par défaut, all)
}}}
!! {{{wom_turnRefuseNewSessionOn}}}
{{{
Contacter le moniteur sur l'hôte $2, avec éventuellement le mot de passe
$3, et activer le flag refuseNewSession sur l'application $1 (par défaut,
all)
}}}
!! {{{wom_turnRefuseNewSessionOff}}}
{{{
Contacter le moniteur sur l'hôte $2, avec éventuellement le mot de passe
$3, et désactiver le flag refuseNewSession sur l'application $1 (par
défaut, all)
}}}
!! {{{wom_turnAutoRecoverOn}}}
{{{
Contacter le moniteur sur l'hôte $2, avec éventuellement le mot de passe
$3, et activer le flag autoRecover sur l'application $1 (par défaut, all)
}}}
!! {{{wom_turnAutoRecoverOff}}}
{{{
Contacter le moniteur sur l'hôte $2, avec éventuellement le mot de passe
$3, et désactiver le flag autoRecover sur l'application $1 (par défaut,
all)
}}}
!! {{{wom_bounce}}}
{{{
Contacter le moniteur sur l'hôte $2, avec éventuellement le mot de passe
$3, et redémarrer l'application $1 (par défaut, all) en mode bounce
}}}
!! {{{wom_clearDeaths}}}
{{{
Contacter le moniteur sur l'hôte $2, avec éventuellement le mot de passe
$3, et effacer le compte des morts suspectes pour l'application $1 (par
défaut, all)
}}}
!! {{{wom__getApplications}}}
{{{
Obtenir des information sur la définition de l'application $1 (ou de
toutes les applications si $1=="") en contactant le moniteur sur l'hôte $2
avec éventuellement le mot de passe $3. Le résultat est un flux xml,
chaque application étant défini dans un tag <MApplications>. Si un erreur
se produit, l'erreur est dans un tag <Strings>
}}}
!! {{{wom__getApplications_filter}}}
{{{
filtrer le résultat de wom__getApplications en ne gardant que les tags
name, unixPath, macPath, winPath
}}}
!! {{{wom_getApplications}}}
{{{
Obtenir la liste des applications définies en contactant le moniteur sur
l'hôte $3 avec éventuellement le mot de passe $4, et initialiser le
tableau $1 avec une liste de valeurs quotées de la forme:
"'name' 'unixPath' 'macPath' 'winPath'"
concernant l'application $2 (par défaut, toutes les applications)
Ces valeurs peuvent être utilisées comme arguments d'une fonction. par
exemple:
wom_getApplications appinfos "" host pw
for args in "${appinfos[@]}"; do
eval "userfunc $args"
done
}}}
!! {{{wom_addApplication}}}
{{{
Ajouter une application nommée $1 en contactant le moniteur sur l'hôte $2,
avec éventuellement le mot de passe $3.
Soit le nom Name, par défaut l'exécutable se trouve dans
WOAPPLICATIONS/Name.woa/Name et les logs dans /var/log/WebObjects, et le
flag autoRecover est activé
XXX supporter la possibilité de modifier les valeurs par défaut
}}}
!! {{{wom_addInstance}}}
{{{
Ajouter une instance sur localhost pour l'application nommée $1 en
contactant le moniteur sur l'hôte $2, avec éventuellement le mot de passe
$3.
XXX supporter la possibilité de modifier les valeurs par défaut
}}}
!! {{{check_compute_apps_localhost}}}
{{{
si les arguments de compute_apps contiennent des bundles de framework, il
faut avoir accès au système de fichier local. vérifier si l'un des
arguments $2..* est un framework. si c'est le cas, vérifier que l'hôte $1
est localhost.
retourner 0 si c'est ok, 1 s'il y a des frameworks et que host n'est pas
localhost
}}}
!! {{{compute_apps}}}
{{{
Remplir le tableau $1(=apps) avec la liste des applications correspondant
aux arguments $3...*
Un bundle de framework (Name.framework) est remplacé par la liste des
bundles d'applications qui dépendent de ce framework. Cette information
est obtenue en consultant le système de fichier local.
Un bundle d'application est remplacé par la liste des applications qui
sont définies pour ce bundle. Cette information est obtenue en consultant
le tableau généré par wom_getApplications(), dont le nom est $2
Les arguments de la forme @N sont ignorés, ils correspondent à des délais
à respecter lors du démarrage de l'application
}}}
!! {{{get_error_msg}}}
!! {{{start_apps}}}
{{{
Démarrer les applications $3..$* en contactant le moniteur sur l'hôte $1
avec le mot de passe éventuel $2
Les variables globales enable_autorecover et force_enable_autorecover
permettent respectivement d'activer l'autoRecover après le démarrage de
l'application et de forcer l'activation de l'autoRecover même si
l'instance tournait déjà.
Un argument de la forme @N provoque une attente de N secondes. Ceci permet
de placer un temps d'attente entre le démarrage de certaines applications.
}}}
!! {{{stop_apps}}}
{{{
Arrêter les applications $3..$* en contactant le moniteur sur l'hôte $1
avec le mot de passe éventuel $2
Les variables globales disable_autorecover et force_disable_autorecover
permettent respectivement de désactiver l'autoRecover après l'arrêt de
l'application et de forcer la désactivation de l'autoRecover même si
l'instance ne tournait pas.
L'option {-a ARRAY} permet de remplir ARRAY avec la liste des applications
qui ont été effectivement arrêtées. Cette option si elle est spécifiée
doit être en premier
Pour compatibilité avec start_apps, les arguments de la forme @N sont
ignorés. Il n'y a pas de temps d'attente entre les applications lors de
l'arrêt.
}}}
!! {{{bounce_apps}}}
{{{
Redémarrer les applications $3..$* en mode bounce en contactant le
moniteur sur l'hôte $1 avec le mot de passe éventuel $2
Pour compatibilité avec start_apps, les arguments de la forme @N sont
ignorés. Il n'y a pas de temps d'attente entre les applications lors du
redémarrage.
}}}
