コード例 #1
0
ファイル: manager.py プロジェクト: vigilo/vigiconf
        for metro_server in vba[hostname]["connector-metro"]:
            if metro_server in nagios_servers:
                return metro_server
        return vba[hostname]["connector-metro"][0]


def _run_db_generator(appclass):
    from vigilo.models.session import DBSession

    # Pour éviter que le pool loggue les déconnexions (SALE)
    # DBSession.bind.pool._should_log_info = False
    # On force la reconnection à la base de données
    DBSession.bind.dispose()
    transaction.begin()

    app = appclass()
    generator = app.generator(app, {})
    try:
        generator.generate()
    except SkipGenerator, e:
        LOGGER.warning(e)
        LOGGER.warning(_("Skipping %s generator"), app.name)
        transaction.abort()
    else:
        transaction.commit()
        LOGGER.info(_("Generated configuration for %s"), app.name)
    finally:
        DBSession.close_all()
        # fermeture propre des connexions, ce sous-process va être tué
        DBSession.bind.dispose()