summaryrefslogtreecommitdiff
path: root/source4/scripting
diff options
context:
space:
mode:
authorAndrew Bartlett <abartlet@samba.org>2009-11-23 20:30:35 +1100
committerStefan Metzmacher <metze@samba.org>2009-11-23 14:15:07 +0100
commit401ba9c9cf357d6b420a7401fc1a915871d96f8d (patch)
tree0bf733a327ce712e4d815b0a62e3f2278780a4ae /source4/scripting
parente297af00fad2032e79f1889fd6d2713932249bb0 (diff)
downloadsamba-401ba9c9cf357d6b420a7401fc1a915871d96f8d.tar.gz
samba-401ba9c9cf357d6b420a7401fc1a915871d96f8d.tar.bz2
samba-401ba9c9cf357d6b420a7401fc1a915871d96f8d.zip
s4:dsdb Move module configuration from each ldb into samba_dsdb.c
This makes getting the module order correct, the obligation of Samba4 developers, and not system administrators. In particular, once an ldb is updated to use only the 'samba_dsdb' module, no further changes to the ldb should be required when upgrading to later Samba4 versions. (thanks to metze for the suggestion of samba_dsdb as a long-term stable name for the module) Andrew Bartlett
Diffstat (limited to 'source4/scripting')
-rw-r--r--source4/scripting/python/samba/provision.py79
1 files changed, 4 insertions, 75 deletions
diff --git a/source4/scripting/python/samba/provision.py b/source4/scripting/python/samba/provision.py
index 334a4c9bf8..b5e8867e16 100644
--- a/source4/scripting/python/samba/provision.py
+++ b/source4/scripting/python/samba/provision.py
@@ -549,78 +549,9 @@ def setup_samdb_partitions(samdb_path, setup_path, message, lp, session_info,
samdb = Ldb(url=samdb_path, session_info=session_info,
lp=lp, options=["modules:"])
- #Add modules to the list to activate them by default
- #beware often order is important
- #
- # Some Known ordering constraints:
- # - rootdse must be first, as it makes redirects from "" -> cn=rootdse
- # - extended_dn_in must be before objectclass.c, as it resolves the DN
- # - objectclass must be before password_hash, because password_hash checks
- # that the objectclass is of type person (filled in by objectclass
- # module when expanding the objectclass list)
- # - partition must be last
- # - each partition has its own module list then
- modules_list = ["resolve_oids",
- "rootdse",
- "lazy_commit",
- "paged_results",
- "ranged_results",
- "anr",
- "server_sort",
- "asq",
- "extended_dn_store",
- "extended_dn_in",
- "rdn_name",
- "objectclass",
- "descriptor",
- "acl",
- "samldb",
- "password_hash",
- "operational",
- "kludge_acl",
- "schema_load",
- "instancetype"]
- if serverrole == "domain controller":
- objectguid_module = "repl_meta_data"
- else:
- objectguid_module = "objectguid"
- tdb_modules_list = [
- "subtree_rename",
- "subtree_delete",
- "linked_attributes"]
- extended_dn_module = "extended_dn_out_ldb"
- modules_list2 = ["show_deleted",
- "new_partition",
- "partition"]
-
- backend_modules = []
-
ldap_backend_line = "# No LDAP backend"
if provision_backend.type is not "ldb":
ldap_backend_line = "ldapBackend: %s" % provision_backend.ldapi_uri
-
- # The LDAP backends assign the objectGUID on thier own
- objectguid_module = None
- # OpenLDAP and FDS handles subtree renames, so we don't want to do any of these things
- tdb_modules_list = []
-
- if provision_backend.ldap_backend_type == "fedora-ds":
- backend_modules = ["nsuniqueid", "paged_searches"]
- extended_dn_module_list = ["extended_dn_out_fds"];
- elif provision_backend.ldap_backend_type == "openldap":
- backend_modules = ["entryuuid", "paged_searches"]
- extended_dn_module_list = ["extended_dn_out_openldap"]
-
- if objectguid_module is not None:
- modules_list.append(objectguid_module)
-
- for m in tdb_modules_list:
- modules_list.append(m)
-
- modules_list.append(extended_dn_module)
-
- for m in modules_list2:
- modules_list.append(m)
samdb.transaction_start()
try:
@@ -629,16 +560,14 @@ def setup_samdb_partitions(samdb_path, setup_path, message, lp, session_info,
"SCHEMADN": ldb.Dn(schema.ldb, names.schemadn).get_casefold(),
"CONFIGDN": ldb.Dn(schema.ldb, names.configdn).get_casefold(),
"DOMAINDN": ldb.Dn(schema.ldb, names.domaindn).get_casefold(),
- "SCHEMADN_MOD": "schema_data",
- "CONFIGDN_MOD": "naming_fsmo",
- "DOMAINDN_MOD": "pdc_fsmo",
- "MODULES_LIST": ",".join(modules_list),
- "BACKEND_MOD": ",".join(backend_modules),
"LDAP_BACKEND_LINE": ldap_backend_line,
})
- samdb.load_ldif_file_add(setup_path("provision_init.ldif"))
+ setup_add_ldif(samdb, setup_path("provision_init.ldif"), {
+ "BACKEND_TYPE": provision_backend.type,
+ "SERVER_ROLE": serverrole
+ })
message("Setting up sam.ldb rootDSE")
setup_samdb_rootdse(samdb, setup_path, names)