mirror of
https://github.com/samba-team/samba.git
synced 2025-07-16 20:59:12 +03:00
Start to rework provision for LDAP backends
This is the start of the rework of the provision script to handle an
LDAP backend correctly. For example, we must not set the 'tdb
modules' against an LDAP backend such as OpenLDAP that handles subtree
renames.
Andrew Bartlett
(This used to be commit e462a107d3
)
This commit is contained in:
@ -147,7 +147,12 @@ class Ldb(ldb.Ldb):
|
||||
k = 0
|
||||
while ++k < 10 and (previous_remaining != current_remaining):
|
||||
# and the rest
|
||||
res2 = self.search(basedn, ldb.SCOPE_SUBTREE, "(|(objectclass=*)(distinguishedName=*))", ["distinguishedName"])
|
||||
try:
|
||||
res2 = self.search(basedn, ldb.SCOPE_SUBTREE, "(|(objectclass=*)(distinguishedName=*))", ["distinguishedName"])
|
||||
except ldb.LdbError, (LDB_ERR_NO_SUCH_OBJECT, _):
|
||||
# Ignore missing dn errors
|
||||
return
|
||||
|
||||
previous_remaining = current_remaining
|
||||
current_remaining = len(res2)
|
||||
for msg in res2:
|
||||
|
@ -341,12 +341,21 @@ def setup_samdb_partitions(samdb_path, setup_path, message, lp, session_info,
|
||||
|
||||
if ldap_backend_type == "fedora-ds":
|
||||
backend_modules = ["nsuniqueid", "paged_searches"]
|
||||
# We can handle linked attributes here, as we don't have directory-side subtree operations
|
||||
tdb_modules_list = ["linked_attributes"]
|
||||
elif ldap_backend_type == "openldap":
|
||||
backend_modules = ["normalise", "entryuuid", "paged_searches"]
|
||||
# OpenLDAP handles subtree renames, so we don't want to do any of these things
|
||||
tdb_modules_list = None
|
||||
elif serverrole == "domain controller":
|
||||
backend_modules = ["repl_meta_data"]
|
||||
else:
|
||||
backend_modules = ["objectguid"]
|
||||
|
||||
if tdb_modules_list is None:
|
||||
tdb_modules_list_as_string = ""
|
||||
else:
|
||||
tdb_modules_list_as_string = ","+",".join(tdb_modules_list)
|
||||
|
||||
samdb.transaction_start()
|
||||
try:
|
||||
@ -362,7 +371,7 @@ def setup_samdb_partitions(samdb_path, setup_path, message, lp, session_info,
|
||||
"CONFIGDN_MOD": "naming_fsmo,instancetype",
|
||||
"DOMAINDN_MOD": "pdc_fsmo,password_hash,instancetype",
|
||||
"MODULES_LIST": ",".join(modules_list),
|
||||
"TDB_MODULES_LIST": ","+",".join(tdb_modules_list),
|
||||
"TDB_MODULES_LIST": tdb_modules_list_as_string,
|
||||
"MODULES_LIST2": ",".join(modules_list2),
|
||||
"BACKEND_MOD": ",".join(backend_modules),
|
||||
})
|
||||
|
Reference in New Issue
Block a user