s4:provision Rework and further automate setup of OpenLDAP backend
commit28bcdf5266f75ef835fd3cbb353aadb782a1f27c
authorOliver Liebel <oliver@itc.li>
Sun, 9 Aug 2009 23:45:01 +0000 (10 09:45 +1000)
committerAndrew Bartlett <abartlet@samba.org>
Wed, 12 Aug 2009 00:01:48 +0000 (12 10:01 +1000)
treee1472895449327d416dab1cd2163e7a7dbe3dcf1
parenta038f1e05b8b7acb5e99257e59178e1ece4ce156
s4:provision Rework and further automate setup of OpenLDAP backend

heres the summary of all changes/extensions:

- Andrew Bartlett's patch to generate indext
- Howard Chu's idea to use nosync on the DB included, but made optional

- slaptest-path is not needed any more (slapd -Ttest is used instead)
and is therefore removed. slapd-path is now recommended when
openldap-backend is chosen.
its also used for olc-conversion

- slapd-detection is now always done by ldapsearch (ldb module),
looking anonymous for objectClass: OpenLDAProotDSE via our ldapi_uri.

- if ldapsearch was not successfull, (no slapd listening on our socket)
slapd is
started via special generated slapdcommand_prov  (ldapi_uri only)

- slapd-"provision-process" startup is done via pythons subprocess.

- the slapd-provision-pid is stored under paths.ldapdir/slapd_provision_pid.

- after provision-backend is finished:
--- slapd.pid is compared with our stored slapd_provision_pid.
if the are unique, slapd.pid will be read out, and the
slapd "provison"-process will be shut down.
--- proper slapd-shutdown is verified again with ldb-search -> ldapi_uri
-> rootDSE.
--- if the pids are different or one of the pid-files is missing, slapd
will not be shut down,
instead an error message is displayed to locate slapd manually
--- extended help-messages (relevant to slapd) are always displayed,
e.g. the commandline with which slapd has to be started when everythings
finished
(slapd-commandline is stored under paths.ldapdir/slapd_command_file.txt))

- upgraded the content of the mini-howto (howto-ol-backend-s4.txt)
howto-ol-backend-s4.txt [new file with mode: 0644]
selftest/target/Samba4.pm
source4/scripting/python/samba/provision.py
source4/setup/provision-backend
source4/setup/slapd.conf