Example #1
0
def engine_from_settings(config, full_config=False):
    settings = get_appsettings(config, 'assembl')
    if settings['sqlalchemy.url'].startswith('virtuoso:'):
        db_schema = '.'.join((settings['db_schema'], settings['db_user']))
    else:
        db_schema = settings['db_schema']
    set_config(settings, True)
    session = None
    if full_config:
        env = bootstrap(config)
        configure_zmq(settings['changes_socket'], False)
        configure_indexing()
        configure_model_watcher(env['registry'], 'assembl')
        logging.config.fileConfig(config)
        session = get_session_maker()
        metadata = get_metadata()
    else:
        session = make_session_maker(zope_tr=True)
        import assembl.models
        from assembl.lib.sqla import class_registry
        engine = configure_engine(settings, session_maker=session)
        metadata = get_metadata()
        metadata.bind = engine
        session = sessionmaker(engine)()
    return (metadata, session)
Example #2
0
def engine_from_settings(config, full_config=False):
    settings = get_appsettings(config, 'assembl')
    if settings['sqlalchemy.url'].startswith('virtuoso:'):
        db_schema = '.'.join((settings['db_schema'], settings['db_user']))
    else:
        db_schema = settings['db_schema']
    set_config(settings, True)
    session = None
    if full_config:
        env = bootstrap(config)
        configure_zmq(settings['changes_socket'], False)
        configure_indexing()
        configure_model_watcher(env['registry'], 'assembl')
        logging.config.fileConfig(config)
        session = get_session_maker()
        metadata = get_metadata()
    else:
        session = make_session_maker(zope_tr=True)
        import assembl.models
        from assembl.lib.sqla import class_registry
        engine = configure_engine(settings, session_maker=session)
        metadata = get_metadata()
        metadata.bind = engine
        session = sessionmaker(engine)()
    return (metadata, session)
Example #3
0
def engine_from_settings(config, full_config=False):
    settings = get_appsettings(config, 'idealoom')
    db_schema = settings['db_schema']
    set_config(settings, True)
    session = None
    if full_config:
        env = bootstrap(config)
        configure_zmq(settings['changes_socket'], False)
        configure_model_watcher(env['registry'], 'idealoom')
        logging.config.fileConfig(config)
    else:
        session = make_session_maker(zope_tr=True)
    import assembl.models
    from assembl.lib.sqla import class_registry
    engine = configure_engine(settings, session_maker=session)
    metadata = get_metadata()
    metadata.bind = engine
    session = sessionmaker(engine)()
    return (metadata, session)
Example #4
0
    args = parser.parse_args()
    env = bootstrap(args.configuration)
    logging.config.fileConfig(args.configuration)
    settings = get_appsettings(args.configuration, 'assembl')

    set_config(settings)
    setup_raven(settings)
    try:
        configure_zmq(settings['changes.socket'], False)
        configure_model_watcher(env['registry'], 'assembl')
        to_engine = configure_engine(settings, True)
        to_session = get_session_maker()
        init_key_for_classes(to_session)
        new_slug = args.new_name or (args.discussion + "_copy")
        if args.source_db_configuration:
            from_session = make_session_maker(zope_tr=True)
            settings = get_appsettings(args.source_db_configuration, 'assembl')
            from_engine = configure_engine(settings, session_maker=from_session)
            from_session = sessionmaker(from_engine)()
        else:
            from_engine = to_engine
            from_session = to_session
        from assembl.models import Discussion
        discussion = from_session.query(Discussion).filter_by(
            slug=args.discussion).one()
        assert discussion, "No discussion named " + args.discussion
        permissions = [x.split('+') for x in args.permissions]
        for (role, permission) in permissions:
            assert role in SYSTEM_ROLES
            assert permission in ASSEMBL_PERMISSIONS
        existing = to_session.query(Discussion).filter_by(slug=new_slug).first()
Example #5
0
     pipeline = settings.get('pipeline:main', 'pipeline').split()
     if 'raven' in pipeline:
         raven_dsn = settings.get('filter:raven', 'dsn')
         from raven import Client
         raven_client = Client(raven_dsn)
 except Exception:
     pass
 try:
     configure_zmq(settings['changes.socket'], False)
     configure_model_watcher(env['registry'], 'assembl')
     to_engine = configure_engine(settings, True)
     to_session = get_session_maker()
     init_key_for_classes(to_session)
     new_slug = args.new_name or (args.discussion + "_copy")
     if args.source_db_configuration:
         from_session = make_session_maker(zope_tr=True)
         settings = get_appsettings(args.source_db_configuration, 'assembl')
         from_engine = configure_engine(settings,
                                        session_maker=from_session)
         from_session = sessionmaker(from_engine)()
     else:
         from_engine = to_engine
         from_session = to_session
     from assembl.models import Discussion
     discussion = from_session.query(Discussion).filter_by(
         slug=args.discussion).one()
     assert discussion, "No discussion named " + args.discussion
     permissions = [x.split('+') for x in args.permissions]
     for (role, permission) in permissions:
         assert role in SYSTEM_ROLES
         assert permission in ASSEMBL_PERMISSIONS