diff options
author | Andrew Bartlett <abartlet@samba.org> | 2009-11-20 12:16:33 +1100 |
---|---|---|
committer | Stefan Metzmacher <metze@samba.org> | 2009-11-23 14:15:06 +0100 |
commit | e297af00fad2032e79f1889fd6d2713932249bb0 (patch) | |
tree | 809954636ba6aff956a55a5996879849ff64c7cc /source4/scripting/python | |
parent | 83b41aa959d1c71b26f7e9c327b5956ddfe0a267 (diff) | |
download | samba-e297af00fad2032e79f1889fd6d2713932249bb0.tar.gz samba-e297af00fad2032e79f1889fd6d2713932249bb0.tar.bz2 samba-e297af00fad2032e79f1889fd6d2713932249bb0.zip |
s4:provision Simplify the module list
This makes the member server much more like the DC, the objectGUID
module replaces the repl_meta_data module.
We also generally rework the construction of the list, building a full
list in python, and then transforming it into a string, rather than
playing string concatonation games
Andrew Bartlett
Diffstat (limited to 'source4/scripting/python')
-rw-r--r-- | source4/scripting/python/samba/provision.py | 44 |
1 files changed, 25 insertions, 19 deletions
diff --git a/source4/scripting/python/samba/provision.py b/source4/scripting/python/samba/provision.py index 6d779c38ba..334a4c9bf8 100644 --- a/source4/scripting/python/samba/provision.py +++ b/source4/scripting/python/samba/provision.py @@ -580,53 +580,59 @@ def setup_samdb_partitions(samdb_path, setup_path, message, lp, session_info, "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_out_ldb"] + "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"] - # We can handle linked attributes here, as we don't have directory-side subtree operations - tdb_modules_list = ["extended_dn_out_fds"] + extended_dn_module_list = ["extended_dn_out_fds"]; elif provision_backend.ldap_backend_type == "openldap": backend_modules = ["entryuuid", "paged_searches"] - # OpenLDAP handles subtree renames, so we don't want to do any of these things - tdb_modules_list = ["extended_dn_out_openldap"] + extended_dn_module_list = ["extended_dn_out_openldap"] - elif serverrole == "domain controller": - tdb_modules_list.insert(0, "repl_meta_data") - backend_modules = [] - else: - backend_modules = ["objectguid"] + 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) - 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: message("Setting up sam.ldb partitions and settings") setup_add_ldif(samdb, setup_path("provision_partitions.ldif"), { "SCHEMADN": ldb.Dn(schema.ldb, names.schemadn).get_casefold(), - "SCHEMADN_MOD2": ",objectguid", "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), - "TDB_MODULES_LIST": tdb_modules_list_as_string, - "MODULES_LIST2": ",".join(modules_list2), "BACKEND_MOD": ",".join(backend_modules), "LDAP_BACKEND_LINE": ldap_backend_line, }) |