summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Bartlett <abartlet@samba.org>2006-08-22 10:19:46 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 14:16:28 -0500
commit4c69b46944b9ddc765b5a48deb2e3edea5e240d8 (patch)
tree4517d11ac0ab1ce7fc2287c4cdb5e1a794719f83
parent6ddd5f6e6686644be8163f289c9480253b45db12 (diff)
downloadsamba-4c69b46944b9ddc765b5a48deb2e3edea5e240d8.tar.gz
samba-4c69b46944b9ddc765b5a48deb2e3edea5e240d8.tar.bz2
samba-4c69b46944b9ddc765b5a48deb2e3edea5e240d8.zip
r17704: Add comments suggesting how to get the LDAP backend working.
Shutdown and reload the LDB, so the entryUUID module knows to read the schema (will be changed once we have a central schema store and notifications). Andrew Bartlett (This used to be commit d5814b689eedfc4c4701beb18a516db716a466f1)
-rw-r--r--source4/scripting/libjs/provision.js26
1 files changed, 23 insertions, 3 deletions
diff --git a/source4/scripting/libjs/provision.js b/source4/scripting/libjs/provision.js
index 7663f055f6..f8d321e8cb 100644
--- a/source4/scripting/libjs/provision.js
+++ b/source4/scripting/libjs/provision.js
@@ -236,6 +236,7 @@ function open_ldb(info, dbname, erase)
var connect_ok = ldb.connect(dbname);
if (!connect_ok) {
+ var lp = loadparm_init();
sys.unlink(sprintf("%s/%s", lp.get("private dir"), dbname));
connect_ok = ldb.connect(dbname);
assert(connect_ok);
@@ -307,8 +308,9 @@ function setup_ldb_modify(ldif, info, ldb)
var mod_ok = ldb.modify(data);
if (!mod_ok) {
info.message("ldb load failed: " + ldb.errstring() + "\n");
- assert(mod_ok);
+ return mod_ok;
}
+ return mod_ok;
}
/*
@@ -453,14 +455,32 @@ function provision(subobj, message, blank, paths, session_info, credentials)
ldb_erase_partitions(info, samdb);
message("Adding baseDN: " + subobj.BASEDN + " (permitted to fail)\n");
- setup_add_ldif("provision_basedn.ldif", info, samdb, true);
+ var add_ok = setup_add_ldif("provision_basedn.ldif", info, samdb, true);
message("Modifying baseDN: " + subobj.BASEDN + "\n");
- setup_ldb_modify("provision_basedn_modify.ldif", info, samdb);
+ var modify_ok = setup_ldb_modify("provision_basedn_modify.ldif", info, samdb);
+ if (!modify_ok) {
+ if (!add_ok) {
+ message("Failed to both add and modify " + subobj.BASEDN + " in target " + subobj.LDAPBACKEND + "\n");
+ message("Perhaps you need to run the provision script with the --ldap-base-dn option, and add this record to the backend manually\n");
+ };
+ assert(modify_ok);
+ };
message("Setting up sam.ldb Samba4 schema\n");
setup_add_ldif("schema_samba4.ldif", info, samdb, false);
message("Setting up sam.ldb AD schema\n");
setup_add_ldif("schema.ldif", info, samdb, false);
+
+ // (hack) Reload, now we have the schema loaded.
+ var commit_ok = samdb.transaction_commit();
+ if (!commit_ok) {
+ info.message("samdb commit failed: " + samdb.errstring() + "\n");
+ assert(commit_ok);
+ }
+ samdb.close();
+
+ samdb = open_ldb(info, paths.samdb, false);
+
message("Setting up display specifiers\n");
setup_add_ldif("display_specifiers.ldif", info, samdb, false);
message("Setting up sam.ldb templates\n");