cubicweb/misc/migration/3.15.0_Any.py
author Philippe Pepiot <ph@itsalwaysdns.eu>
Tue, 31 Mar 2020 18:22:05 +0200
changeset 12966 6cd938c29ca3
parent 12567 26744ad37953
permissions -rw-r--r--
[server] Make connection pooler configurable and set better default values Drop the configuration connections-pool-size and add new configurations options: * connections-pool-min-size. Set to 0 by default so we open connections only when needed. This avoid opening min-size*processes connections at startup, which is, it think, a good default. * connections-pool-max-size. Set to 0 (unlimited) by default, so we move the bottleneck to postgresql. * connections-idle-timeout. Set to 10 minutes. I don't have arguments about this except that this is the default in pgbouncer.

from cubicweb.server import SOURCE_TYPES
from cubicweb.server.serverconfig import (SourceConfiguration,
                                          generate_source_config)


sync_schema_props_perms('EmailAddress')


def update_config(source, **config):
    cfg = source.dictconfig
    cfg.update(config)
    options = SOURCE_TYPES[source.type].options
    sconfig = SourceConfiguration(source._cw.vreg.config, options=options)
    for opt, val in cfg.items():
        try:
            sconfig.set_option(opt, val)
        except OptionError:
            continue
    cfgstr = str(generate_source_config(sconfig), source._cw.encoding)
    source.cw_set(config=cfgstr)


for source in rql('CWSource X WHERE X type "ldapuser"').entities():
    config = source.dictconfig
    host = config.pop('host', u'ldap')
    protocol = config.pop('protocol', u'ldap')
    source.cw_set(url=u'%s://%s' % (protocol, host))
    update_config(source, **config)

commit()