debian/rules
author julien tayon <julien.tayon@logilab.fr>
Thu, 16 May 2019 14:26:38 +0200
branch3.26
changeset 12618 3f125fdbcd70
parent 11836 21c72857178f
child 12630 1c156d9f224a
permissions -rwxr-xr-x
[ldapfeed] FIX: Unique Key violation when synchronizing with LDAPfeed What was happening ================== The bug appears when ldapfeed tries to insert a user while another user exists exists with a different source. Simple use case to reproduce: - create a local user in cubicweb (source=system) - sync with ldap - ldapfeed will stop complaining user already exists. Without next patch the test MUST fail with message: cubicweb/server/sources/native.py:714: UniqueTogetherError The ldapfeed is thus stopped ignoring any further ldap entries. The proposal ============ Prior to this patch, the insertion was trying to create all CWUser with the computed login from eeimporter.extid2eid (method process of DataFeedLDAPAdapter). When a CWUser existed with a different cw_source ("system" for user created with cubicweb for instance), it created a conflict. To avoid collisions, in the extentities_generator method a bypass was added at the insertion layer. Prior to insertion the absence of the computed login is checked on a list of all existing login from a different source. If collision is detected, we skip the ldap record. By short circuiting at the CWUser entity insertion level we also avoid to treat CWGroup and EmailAddress related to this user. Hence ensuring a behaviour that will not break existing instances. (conservative approach: faced with ambiguity better do nothing than guess). An error message is added stating explicitly the conflict.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
11515
b3267ba817b4 Initial debian packaging
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
     1
#!/usr/bin/make -f
0
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
     2
# Sample debian/rules that uses debhelper.
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
     3
# GNU copyright 1997 to 1999 by Joey Hess.
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
     4
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
     5
# Uncomment this to turn on verbose mode.
11832
e8be49ecb522 [debian] Update debian packaging (closes #16133259)
David Douard <david.douard@logilab.fr>
parents: 11631
diff changeset
     6
# export DH_VERBOSE=1
0
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
     7
11832
e8be49ecb522 [debian] Update debian packaging (closes #16133259)
David Douard <david.douard@logilab.fr>
parents: 11631
diff changeset
     8
export PYBUILD_NAME=cubicweb
e8be49ecb522 [debian] Update debian packaging (closes #16133259)
David Douard <david.douard@logilab.fr>
parents: 11631
diff changeset
     9
export PYBUILD_DISABLE_python2=test
0
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    10
11832
e8be49ecb522 [debian] Update debian packaging (closes #16133259)
David Douard <david.douard@logilab.fr>
parents: 11631
diff changeset
    11
%:
e8be49ecb522 [debian] Update debian packaging (closes #16133259)
David Douard <david.douard@logilab.fr>
parents: 11631
diff changeset
    12
	dh $@ --with python2,sphinxdoc --buildsystem=pybuild
11515
b3267ba817b4 Initial debian packaging
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
    13
11832
e8be49ecb522 [debian] Update debian packaging (closes #16133259)
David Douard <david.douard@logilab.fr>
parents: 11631
diff changeset
    14
override_dh_auto_build: export http_proxy=127.0.0.1:9
e8be49ecb522 [debian] Update debian packaging (closes #16133259)
David Douard <david.douard@logilab.fr>
parents: 11631
diff changeset
    15
override_dh_auto_build: export https_proxy=127.0.0.1:9
e8be49ecb522 [debian] Update debian packaging (closes #16133259)
David Douard <david.douard@logilab.fr>
parents: 11631
diff changeset
    16
override_dh_auto_build:
e8be49ecb522 [debian] Update debian packaging (closes #16133259)
David Douard <david.douard@logilab.fr>
parents: 11631
diff changeset
    17
	dh_auto_build
e8be49ecb522 [debian] Update debian packaging (closes #16133259)
David Douard <david.douard@logilab.fr>
parents: 11631
diff changeset
    18
ifeq (,$(findstring nodocs, $(DEB_BUILD_OPTIONS)))
e8be49ecb522 [debian] Update debian packaging (closes #16133259)
David Douard <david.douard@logilab.fr>
parents: 11631
diff changeset
    19
	PYTHONPATH=. sphinx-build -N -bhtml doc/ debian/cubicweb-doc/html
e8be49ecb522 [debian] Update debian packaging (closes #16133259)
David Douard <david.douard@logilab.fr>
parents: 11631
diff changeset
    20
endif
11515
b3267ba817b4 Initial debian packaging
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
    21
11836
21c72857178f [debian] Rework split of cubicweb-ctl package
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 11832
diff changeset
    22
override_dh_auto_install:
21c72857178f [debian] Rework split of cubicweb-ctl package
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 11832
diff changeset
    23
	dh_auto_install
21c72857178f [debian] Rework split of cubicweb-ctl package
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 11832
diff changeset
    24
	mv debian/python-${PYBUILD_NAME}/usr/bin/cubicweb-ctl \
21c72857178f [debian] Rework split of cubicweb-ctl package
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 11832
diff changeset
    25
		debian/cubicweb-ctl/usr/bin/cubicweb-ctl
0
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    26
11832
e8be49ecb522 [debian] Update debian packaging (closes #16133259)
David Douard <david.douard@logilab.fr>
parents: 11631
diff changeset
    27
override_dh_installchangelogs:
e8be49ecb522 [debian] Update debian packaging (closes #16133259)
David Douard <david.douard@logilab.fr>
parents: 11631
diff changeset
    28
	dh_installchangelogs -Xdoc/changes
0
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    29