[trigger/trigger.py] Un peu de commentaires pour les deux trucs tricky.

This commit is contained in:
Pierre-Elliott Bécue 2014-06-16 15:58:51 +02:00
parent b7e3d10b62
commit 30e31a078c

View file

@ -22,6 +22,11 @@ from gestion.trigger.host import trigger
hostname = socket.gethostname().split(".")[0] hostname = socket.gethostname().split(".")[0]
# Ce bloc contient le peu de "magie" de la librairie, on utilise les services listés dans config/trigger.py
# comme référence. Pour éviter toute redondance, la commande importe donc les services utiles suivant cette
# config. Leur import ne sert pas directemet, il permet juste de peupler la TriggerFactory contenue dans
# gestion/trigger/host.py.
# Il faut donc bien importer ces fichiers, mais ils ne sont pas utilisés directement ensuite.
import importlib import importlib
services = {} services = {}
for config_service in trigger_config.services[hostname]: for config_service in trigger_config.services[hostname]:
@ -54,6 +59,8 @@ class EvenementListener(cmb.AsynchronousConsumer):
logger.info('Received message # %s from %s: %s', logger.info('Received message # %s from %s: %s',
basic_deliver.delivery_tag, properties.app_id, body) basic_deliver.delivery_tag, properties.app_id, body)
body = cPickle.loads(body) body = cPickle.loads(body)
# On tente d'invoquer le trigger attendu, à l'aide de la méthode trigger
# about contient le nom de la fonction à appeler, body lui est filé en argument.
try: try:
trigger(about)(body) trigger(about)(body)
except AttributeError: except AttributeError:
@ -90,6 +97,7 @@ if __name__ == '__main__':
parser.add_argument('-d', '--daemon', help="Écouter sur civet en arrière plan.", action="store_true") parser.add_argument('-d', '--daemon', help="Écouter sur civet en arrière plan.", action="store_true")
parser.add_argument('-h', '--help', help="Affiche ce message et quitte.", action="store_true") parser.add_argument('-h', '--help', help="Affiche ce message et quitte.", action="store_true")
# For each service supposingly managed by host, generate one parser option # For each service supposingly managed by host, generate one parser option
# Deuxième petit morceau "magique" du code.
for arg_service in trigger_config.services[hostname]: for arg_service in trigger_config.services[hostname]:
parser.add_argument('--%s' % (arg_service,), help="Force la régénération du service %s." % (arg_service,), action="store_true") parser.add_argument('--%s' % (arg_service,), help="Force la régénération du service %s." % (arg_service,), action="store_true")
args = parser.parse_args() args = parser.parse_args()