cubicweb/misc/migration/3.15.0_Any.py
author Philippe Pepiot <ph@itsalwaysdns.eu>
Tue, 31 Mar 2020 19:15:03 +0200
changeset 12957 0c973204033a
parent 12567 26744ad37953
permissions -rw-r--r--
[server] prevent returning closed cursor to the database pool In since c8c6ad8 init_repository use repo.internal_cnx() instead of repo.system_source.get_connection() so it use the pool and we should not close cursors from the pool before returning it back. Otherwise we may have "connection already closed" error. This bug only trigger when connection-pool-size = 1. Since we are moving to use a dynamic pooler we need to get this fixed. This does not occur with sqlite since the connection wrapper instantiate new cursor everytime, but this occur with other databases.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
12133
8743c3bda480 [entities] Move CWSource update_config method as a function in 3.15 migration script
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 11057
diff changeset
     1
from cubicweb.server import SOURCE_TYPES
8743c3bda480 [entities] Move CWSource update_config method as a function in 3.15 migration script
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 11057
diff changeset
     2
from cubicweb.server.serverconfig import (SourceConfiguration,
8743c3bda480 [entities] Move CWSource update_config method as a function in 3.15 migration script
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 11057
diff changeset
     3
                                          generate_source_config)
8743c3bda480 [entities] Move CWSource update_config method as a function in 3.15 migration script
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 11057
diff changeset
     4
8743c3bda480 [entities] Move CWSource update_config method as a function in 3.15 migration script
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 11057
diff changeset
     5
8158
2ee254e74382 [schema] restrictive email address read permission. Closes #2148141
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
     6
sync_schema_props_perms('EmailAddress')
8188
1867e252e487 [repository] ldap-feed source. Closes #2086984
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8158
diff changeset
     7
12133
8743c3bda480 [entities] Move CWSource update_config method as a function in 3.15 migration script
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 11057
diff changeset
     8
8743c3bda480 [entities] Move CWSource update_config method as a function in 3.15 migration script
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 11057
diff changeset
     9
def update_config(source, **config):
8743c3bda480 [entities] Move CWSource update_config method as a function in 3.15 migration script
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 11057
diff changeset
    10
    cfg = source.dictconfig
8743c3bda480 [entities] Move CWSource update_config method as a function in 3.15 migration script
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 11057
diff changeset
    11
    cfg.update(config)
8743c3bda480 [entities] Move CWSource update_config method as a function in 3.15 migration script
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 11057
diff changeset
    12
    options = SOURCE_TYPES[source.type].options
8743c3bda480 [entities] Move CWSource update_config method as a function in 3.15 migration script
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 11057
diff changeset
    13
    sconfig = SourceConfiguration(source._cw.vreg.config, options=options)
8743c3bda480 [entities] Move CWSource update_config method as a function in 3.15 migration script
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 11057
diff changeset
    14
    for opt, val in cfg.items():
8743c3bda480 [entities] Move CWSource update_config method as a function in 3.15 migration script
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 11057
diff changeset
    15
        try:
8743c3bda480 [entities] Move CWSource update_config method as a function in 3.15 migration script
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 11057
diff changeset
    16
            sconfig.set_option(opt, val)
8743c3bda480 [entities] Move CWSource update_config method as a function in 3.15 migration script
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 11057
diff changeset
    17
        except OptionError:
8743c3bda480 [entities] Move CWSource update_config method as a function in 3.15 migration script
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 11057
diff changeset
    18
            continue
12567
26744ad37953 Drop python2 support
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 12133
diff changeset
    19
    cfgstr = str(generate_source_config(sconfig), source._cw.encoding)
12133
8743c3bda480 [entities] Move CWSource update_config method as a function in 3.15 migration script
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 11057
diff changeset
    20
    source.cw_set(config=cfgstr)
8743c3bda480 [entities] Move CWSource update_config method as a function in 3.15 migration script
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 11057
diff changeset
    21
8743c3bda480 [entities] Move CWSource update_config method as a function in 3.15 migration script
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 11057
diff changeset
    22
8188
1867e252e487 [repository] ldap-feed source. Closes #2086984
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8158
diff changeset
    23
for source in rql('CWSource X WHERE X type "ldapuser"').entities():
1867e252e487 [repository] ldap-feed source. Closes #2086984
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8158
diff changeset
    24
    config = source.dictconfig
8251
df46bf02b107 [ldap migration] use unicode strings
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8188
diff changeset
    25
    host = config.pop('host', u'ldap')
df46bf02b107 [ldap migration] use unicode strings
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8188
diff changeset
    26
    protocol = config.pop('protocol', u'ldap')
8483
4ba11607d84a [entity api] unify set_attributes / set_relations into a cw_set method. Closes #2423719
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8251
diff changeset
    27
    source.cw_set(url=u'%s://%s' % (protocol, host))
12133
8743c3bda480 [entities] Move CWSource update_config method as a function in 3.15 migration script
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 11057
diff changeset
    28
    update_config(source, **config)
8188
1867e252e487 [repository] ldap-feed source. Closes #2086984
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8158
diff changeset
    29
1867e252e487 [repository] ldap-feed source. Closes #2086984
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8158
diff changeset
    30
commit()