cubicweb/misc/migration/3.15.0_Any.py
author Denis Laxalde <denis.laxalde@logilab.fr>
Fri, 05 Apr 2019 17:58:19 +0200
changeset 12567 26744ad37953
parent 12133 8743c3bda480
permissions -rw-r--r--
Drop python2 support This mostly consists in removing the dependency on "six" and updating the code to use only Python3 idioms. Notice that we previously used TemporaryDirectory from cubicweb.devtools.testlib for compatibility with Python2. We now directly import it from tempfile.
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()