コード例 #1
0
def main():
    config_fname = sys.argv[1]
    settings = get_appsettings(config_fname, 'assembl')
    set_config(settings)
    logging.config.fileConfig(config_fname)
    configure_zmq(settings['changes_socket'], False)
    configure_engine(settings, True)
    session = get_session_maker()()
    add_semantic_analysis_tab_to_all_discussions(session)
コード例 #2
0
def main():
    parser = argparse.ArgumentParser()
    parser.add_argument("configuration", help="configuration file")
    parser.add_argument("-d", "--discussion", help="id of discussion")
    args = parser.parse_args()
    settings = get_appsettings(args.configuration, 'assembl')
    set_config(settings)
    configure_engine(settings, True)
    session = get_session_maker()()
    semantic_analyze_all_posts(session, args.discussion)
コード例 #3
0
ファイル: clone_discussion.py プロジェクト: assembl/assembl
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)
コード例 #4
0
ファイル: clone_discussion.py プロジェクト: shangxor/assembl
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)
コード例 #5
0
def main():
    parser = argparse.ArgumentParser()
    parser.add_argument(
        "configuration",
        help="configuration file with destination database configuration")
    args = parser.parse_args()
    settings = get_appsettings(args.configuration, 'assembl')
    set_config(settings)
    logging.config.fileConfig(args.configuration)
    configure_zmq(settings['changes.socket'], False)
    configure_engine(settings, True)
    session = get_session_maker()()
    try:
        reindex_all_contents(session)
        transaction.commit()
    except Exception as e:
        traceback.print_exc()
        pdb.post_mortem()
コード例 #6
0
def main():
    parser = argparse.ArgumentParser()
    parser.add_argument(
        "configuration",
        help="configuration file with destination database configuration")
    args = parser.parse_args()
    env = bootstrap(args.configuration)
    settings = get_appsettings(args.configuration, 'assembl')
    set_config(settings)
    logging.config.fileConfig(args.configuration)
    configure_zmq(settings['changes_socket'], False)
    configure_indexing()
    configure_engine(settings, True)
    session = get_session_maker()()
    try:
        reindex_all_contents(session)
        transaction.commit()
    except Exception as e:
        traceback.print_exc()
        pdb.post_mortem()
コード例 #7
0
def main():
    parser = argparse.ArgumentParser()
    parser.add_argument("configuration", help="The configuration of the application.", default="local.ini")
    args = parser.parse_args()
    env = bootstrap(args.configuration)
    settings = get_appsettings(args.configuration, 'assembl')
    set_config(settings)
    configure_zmq(settings['changes_socket'], False)
    configure_model_watcher(env['registry'], 'assembl')
    _ = configure_engine(settings, True)
    try:
        from assembl.graphql.schema import Schema, generate_schema_json_from_schema
        generate_schema_json_from_schema(Schema, spec_wrap=True)

    except Exception as _:
        traceback.print_exc()
        pdb.post_mortem()
コード例 #8
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)
コード例 #9
0
def main():
    parser = argparse.ArgumentParser()
    parser.add_argument("configuration",
                        help="The configuration of the application.",
                        default="local.ini")
    args = parser.parse_args()
    env = bootstrap(args.configuration)
    settings = get_appsettings(args.configuration, 'assembl')
    set_config(settings)
    configure_zmq(settings['changes_socket'], False)
    configure_model_watcher(env['registry'], 'assembl')
    _ = configure_engine(settings, True)
    try:
        from assembl.graphql.schema import Schema, generate_schema_json_from_schema
        generate_schema_json_from_schema(Schema, spec_wrap=True)

    except Exception as _:
        traceback.print_exc()
        pdb.post_mortem()
コード例 #10
0
ファイル: rebuild_tables.py プロジェクト: shangxor/assembl
                     help="All tables fkeys will be rebuilt.")
 parser.add_argument("--rebuild_all_tables", action="store_true", default=False,
                     help="All tables will be rebuilt.")
 parser.add_argument("--ensure_inheritance", action="store_true", default=False,
                     help="Make sure no class has a missing subclass row.")
 parser.add_argument("-d", "--delete_missing", action="store_true", default=False,
                     help="Delete rows with missing corresponding values. (otherwise abort rebuild.)")
 parser.add_argument("--reset_extract_discussion", action="store_true", default=False,
                     help="Special case: rebuild a dependent foreign key on extract table")
 args = parser.parse_args()
 settings = get_appsettings(args.configuration, 'assembl')
 set_config(settings)
 logging.config.fileConfig(args.configuration)
 configure_zmq(settings['changes_socket'], False)
 configure_indexing()
 configure_engine(settings, True)
 session = get_session_maker()()
 import assembl.models
 try:
     if (args.reset_extract_discussion and
             session.query(assembl.models.Extract).filter_by(discussion_id=-1).count()):
         session.execute("""UPDATE "extract" SET discussion_id = (
             SELECT content.discussion_id FROM content
                 JOIN idea_content_link on (content_id=content.id)
                 JOIN "extract" on ("extract".id = idea_content_link.id)
                 WHERE "extract".discussion_id=-1)""")
     if args.rebuild_all_tables:
         rebuild_all_tables(session, args.delete_missing)
     elif args.rebuild_all_fkeys:
         rebuild_all_tables_fkeys(session, args.rebuild_table, args.delete_missing)
     else:
コード例 #11
0
# this is the Alembic Config object, which provides
# access to the values within the .ini file in use.
config = context.config

# Interpret the config file for Python logging.
# This line sets up loggers basically.
fileConfig(config.config_file_name)

_settings = config.file_config._sections['app:idealoom']
# Add a marker that we're in alembic, some things need not happen
_settings['in_alembic'] = True
set_config(_settings)
pyramid_env = bootstrap(config.config_file_name)
configure_zmq(pyramid_env['registry'].settings['changes_socket'], False)

configure_engine(pyramid_env['registry'].settings, False)

def run_migrations_online():
    """Run migrations in 'online' mode.

    In this scenario we need to create an Engine
    and associate a connection with the context.

    """
    engine = get_session_maker().bind
    connection = engine.connect()
    context.configure(connection=connection,
                      target_metadata=get_metadata())

    try:
        context.run_migrations(pyramid_env=pyramid_env)
コード例 #12
0
           config.registry.settings.get('celery_tasks.imap.broker'))
    _producer_connection = BrokerConnection(url)



if __name__ == '__main__':
    if len(sys.argv) != 2:
        print "usage: python source_reader.py configuration.ini"
    config_file_name = sys.argv[-1]
    settings = get_appsettings(config_file_name, 'assembl')
    registry = getGlobalSiteManager()
    registry.settings = settings
    set_config(settings)
    fileConfig(config_file_name)
    # set the basic session maker without zope or autoflush
    engine = configure_engine(settings, False, autoflush=False, max_overflow=20)

    # @event.listens_for(engine, "checkin")
    def show_checkin(*args):
        global pool_counter
        pool_counter -= 1
        print "checkin pool: %d in %s" % (pool_counter, currentThread())
        print_stack()

    # @event.listens_for(engine, "checkout")
    def show_checkout(*args):
        global pool_counter
        pool_counter += 1
        print "checkout pool: %d in %s" % (pool_counter, currentThread())
        print_stack()
コード例 #13
0
ファイル: clone_discussion.py プロジェクト: iilab/assembl
 env = bootstrap(args.configuration)
 settings = get_appsettings(args.configuration, 'assembl')
 set_config(settings)
 raven_client = None
 try:
     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()
     new_slug = args.new_name or (args.discussion + "_copy")
     if args.connection_string:
         from_engine = configure_engine(args.connection)
         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
コード例 #14
0
ファイル: env.py プロジェクト: assembl/assembl
from assembl.indexing.changes import configure_indexing
from assembl.lib.migration import bootstrap_db_data

# this is the Alembic Config object, which provides
# access to the values within the .ini file in use.
config = context.config

# Interpret the config file for Python logging.
# This line sets up loggers basically.
fileConfig(config.config_file_name)
_config = config.file_config._sections['app:assembl']
_config['in_migration'] = True
set_config(_config)
pyramid_env = bootstrap(config.config_file_name)
configure_zmq(pyramid_env['registry'].settings['changes_socket'], False)
configure_engine(pyramid_env['registry'].settings, False)
configure_indexing()


def run_migrations_online():
    """Run migrations in 'online' mode.

    In this scenario we need to create an Engine
    and associate a connection with the context.

    """
    session_maker = get_session_maker()
    engine = session_maker.bind
    connection = engine.connect()
    context.configure(connection=connection,
                      target_metadata=get_metadata())
コード例 #15
0
ファイル: clone_discussion.py プロジェクト: festrade/assembl
        Be aware that ODBC.ini settings are distinct.""")
    parser.add_argument("discussion", help="original discussion slug")
    parser.add_argument("-p", "--permissions", action="append", default=[],
                        help="Add a role+permission pair to the copy "
                        "(eg system.Authenticated+admin_discussion)")
    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
コード例 #16
0
ファイル: source_reader.py プロジェクト: hypnotics/assembl
def includeme(config):
    global _producer_connection, _exchange
    setup_logging(loglevel='DEBUG')
    url = config.registry.settings.get('celery_tasks.imap.broker')
    _producer_connection = BrokerConnection(url)



if __name__ == '__main__':
    if len(sys.argv) != 2:
        print "usage: python source_reader.py configuration.ini"
    config_file_name = sys.argv[-1]
    settings = get_appsettings(config_file_name, 'assembl')
    registry = getGlobalSiteManager()
    registry.settings = settings
    set_config(settings)
    fileConfig(config_file_name)
    # set the basic session maker without zope or autoflush
    configure_engine(settings, False, autoflush=False)
    configure(registry, 'source_reader')
    url = settings.get('celery_tasks.imap.broker')
    with BrokerConnection(url) as conn:
        sourcedispatcher = SourceDispatcher(conn)
        def shutdown(*args):
            sourcedispatcher.shutdown()
        signal.signal(signal.SIGTERM, shutdown)
        try:
            sourcedispatcher.run()
        except KeyboardInterrupt:
            shutdown()
コード例 #17
0
 logging.config.fileConfig(args.configuration)
 settings = get_appsettings(args.configuration, 'assembl')
 set_config(settings)
 raven_client = None
 try:
     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()