def test_nominal(self): """Analyse de publication avec et sans durée de vie""" publications = { "un": "uno", "deux": " dos ", "trois": "tres:42", "quatre": " cuatro : 42 "} res_ok = { "un": ("uno", None), "deux": ("dos", None), "trois": ("tres", 42000), "quatre": ("cuatro", 42000) } self.assertEqual(res_ok, parsePublications(publications))
def buspublisher_factory(settings, client=None): """Instanciation d'un L{BusPublisher}. @param settings: fichier de configuration @type settings: C{vigilo.common.conf.settings} @param client: client du bus @type client: L{vigilo.connector.client.VigiloClient} """ publications = parsePublications(settings.get('publications', {}).copy()) batch_send_perf = int(settings["bus"].get("batch_send_perf", 1)) publisher = BusPublisher(publications, batch_send_perf) if client is not None: publisher.setClient(client) return publisher
def statuspublisher_factory(settings, client, providers=None): """ Construit une instance de L{StatusPublisher} @param settings: fichier de configuration @type settings: C{vigilo.common.conf.settings} @param client: client du bus @type client: L{vigilo.connector.client.VigiloClient} @param providers: liste de fournisseurs de statistiques @type providers: C{list} """ hostname = settings.get("connector", {}).get("hostname", None) if hostname is None: hostname = socket.gethostname() if "." in hostname: # on ne veut pas le FQDN hostname = hostname[:hostname.index(".")] idinstance = settings.get("instance", "") servicename = os.path.basename(sys.argv[0]) if idinstance: servicename = servicename + "-" + str(idinstance) servicename = settings.get("connector", {}).get("status_service", servicename) smne = settings["connector"].get("self_monitoring_nagios_exchange", None) smpe = settings["connector"].get("self_monitoring_perf_exchange", None) publications = settings.get('publications', {}).copy() try: # Si besoin (paramètre de surcharge défini dans la configuration) # surcharger le paramètre de publication pour les messages qui viennent # de l'auto-supervision du connecteur. if smne is not None: publications["nagios"] = smne if smpe is not None: publications["perf"] = smpe publications = parsePublications(publications) except Exception, e: LOGGER.error(_('Invalid configuration option for publications: ' '(%(error)s).') % {"error": get_error_message(e)}) sys.exit(1)
def ruledispatcher_factory(settings, database, client): nagios_hls_host = settings['correlator']['nagios_hls_host'] timeout = settings['correlator'].as_int('rules_timeout') if timeout <= 0: timeout = None min_runner = settings['correlator'].as_int('min_rule_runners') max_runner = settings['correlator'].as_int('max_rule_runners') # Identifiant (supposé) unique de l'instance. instance = settings['instance'] try: max_idle = settings['correlator'].as_int('rule_runners_max_idle') except KeyError: max_idle = 20 msg_handler = RuleDispatcher(database, nagios_hls_host, timeout, min_runner, max_runner, max_idle, instance) msg_handler.check_database_connectivity() msg_handler.setClient(client) subs = parseSubscriptions(settings) queue = settings["bus"]["queue"] queue_message_ttl = int(settings['bus'].get('queue_messages_ttl', 0)) msg_handler.subscribe(queue, queue_message_ttl, subs) # Expéditeur de messages publications = parsePublications(settings.get('publications', {}).copy()) publisher = MessagePublisher(nagios_hls_host, publications) publisher.setClient(client) msg_handler.bus_publisher = publisher # Créateur de correvents correvent_builder = CorrEventBuilder(publisher, database) msg_handler.correvent_builder = correvent_builder return msg_handler