1
0
mirror of https://github.com/samba-team/samba.git synced 2025-08-03 04:22:09 +03:00

s4:provision Allow provision-backend to not run slapd for 'make test'

As the version of OpenLDAP required for Samba4 is fairly new, we don't
want to make it a requirement before this python code is run in 'make
test'.

As such, skip over the actual starting of slapd, but check the rest
runs alright (which still validates syntax and other modules).

Andrew Bartlett
This commit is contained in:
Andrew Bartlett
2009-08-12 11:09:50 +10:00
parent 69fa901bca
commit 7bc566a882
3 changed files with 33 additions and 28 deletions

View File

@ -1275,7 +1275,7 @@ def provision_backend(setup_dir=None, message=None,
domain=None, hostname=None, adminpass=None, root=None, serverrole=None,
ldap_backend_type=None, ldap_backend_port=None,
ol_mmr_urls=None, ol_olc=None,
ol_slapd=None, nosync=False):
ol_slapd=None, nosync=False, testing_mode=False):
def setup_path(file):
return os.path.join(setup_dir, file)
@ -1303,7 +1303,7 @@ def provision_backend(setup_dir=None, message=None,
targetdir)
# if openldap-backend was chosen, check if path to slapd was given and exists
if ldap_backend_type == "openldap" and ol_slapd is None:
if ldap_backend_type == "openldap" and ol_slapd is None and not testing_mode:
sys.exit("Warning: OpenLDAP-Backend must be setup with path to slapd (OpenLDAP-Daemon), e.g. --ol-slapd=\"/usr/local/libexec/slapd\"!")
if ldap_backend_type == "openldap" and ol_slapd is not None:
if not os.path.exists(ol_slapd):
@ -1659,6 +1659,7 @@ def provision_backend(setup_dir=None, message=None,
print e
message("Ok. - No other slapd-Instance listening on: " + ldapi_uri + ". Starting slapd now for final provision.")
if not testing_mode:
p = subprocess.Popen(slapdcommand_prov, shell=True)
# after startup: store slapd-provision-pid also in a separate file.

View File

@ -73,6 +73,9 @@ parser.add_option("--ol-olc", type="choice", metavar="OPENLDAP-OLC",
choices=["yes", "no"])
parser.add_option("--ol-slapd", type="string", metavar="SLAPD-PATH",
help="Path to OpenLDAP-Daemon (slapd) [e.g.:'/usr/local/libexec/slapd']. Required for Setup with OpenLDAP-Backend. OpenLDAP Version >= 2.4.17 should be used.")
parser.add_option("--testing-mode", type="choice", metavar="TESTING-MODE",
help="Do not select this option, except as part of 'make test' to verify behaviour without a slapd on the system",
choices=["yes", "no"])
opts = parser.parse_args()[0]
@ -112,4 +115,5 @@ provision_backend(setup_dir=setup_dir, message=message, smbconf=smbconf, targetd
ol_mmr_urls=opts.ol_mmr_urls,
ol_olc=opts.ol_olc,
ol_slapd=opts.ol_slapd,
nosync=opts.nosync)
nosync=opts.nosync,
testing_mode=opts.testing_mode)

View File

@ -12,13 +12,13 @@ shift 1
. `dirname $0`/../../../testprogs/blackbox/subunit.sh
testit "openldap-backend" $PYTHON ./setup/provision-backend --domain=FOO --realm=foo.example.com --host-name=samba --ldap-backend-type=openldap --targetdir=$PREFIX/openldap-backend
testit "openldap-mmr-backend" $PYTHON ./setup/provision-backend --domain=FOO --realm=foo.example.com --host-name=samba --ldap-backend-type=openldap --targetdir=$PREFIX/openldap-mmr-backend --ol-mmr-urls='ldap://localdc1:9000,ldap://localdc2:9000,ldap://localdc3:9000'
testit "fedora-ds-backend" $PYTHON ./setup/provision-backend --domain=FOO --realm=foo.example.com --host-name=samba --ldap-backend-type=fedora-ds --targetdir=$PREFIX/fedora-ds-backend
testit "openldap-backend" $PYTHON ./setup/provision-backend --domain=FOO --realm=foo.example.com --host-name=samba --ldap-backend-type=openldap --targetdir=$PREFIX/openldap-backend --testing-mode=yes --ol-slapd=/dev/null
testit "openldap-mmr-backend" $PYTHON ./setup/provision-backend --domain=FOO --realm=foo.example.com --host-name=samba --ldap-backend-type=openldap --targetdir=$PREFIX/openldap-mmr-backend --ol-mmr-urls='ldap://localdc1:9000,ldap://localdc2:9000,ldap://localdc3:9000' --testing-mode=yes --ol-slapd=/dev/null
testit "fedora-ds-backend" $PYTHON ./setup/provision-backend --domain=FOO --realm=foo.example.com --host-name=samba --ldap-backend-type=fedora-ds --targetdir=$PREFIX/fedora-ds-backend --testing-mode=yes --ol-slapd=/dev/null
reprovision() {
$PYTHON ./setup/provision-backend --domain=FOO --realm=foo.example.com --host-name=samba --ldap-backend-type=openldap --targetdir=$PREFIX/openldap-backend-reprovision
$PYTHON ./setup/provision-backend --domain=FOO --realm=foo.example.com --host-name=samba --ldap-backend-type=openldap --targetdir=$PREFIX/openldap-backend-reprovision
$PYTHON ./setup/provision-backend --domain=FOO --realm=foo.example.com --host-name=samba --ldap-backend-type=openldap --targetdir=$PREFIX/openldap-backend-reprovision --testing-mode=yes --ol-slapd=/dev/null
$PYTHON ./setup/provision-backend --domain=FOO --realm=foo.example.com --host-name=samba --ldap-backend-type=openldap --targetdir=$PREFIX/openldap-backend-reprovision --testing-mode=yes --ol-slapd=/dev/null
}
testit "reprovision-backend" reprovision