2013-08-27 15:14:44 +04:00
|
|
|
# -*- 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
|
2015-08-20 07:58:17 +04:00
|
|
|
##@tags:
|
2013-08-27 15:14:44 +04:00
|
|
|
##@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.
|
|
|
|
}}}
|