summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Bartlett <abartlet@samba.org>2006-10-13 01:35:52 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 14:20:58 -0500
commitd70fbdbefa321825998b5bf558c23733fb46425a (patch)
treec1e7b0b2930c0ac122b181c4ec4544474b85c231
parent6c4bc15f3b76ccfb154cababfccd443d83d2c28a (diff)
downloadsamba-d70fbdbefa321825998b5bf558c23733fb46425a.tar.gz
samba-d70fbdbefa321825998b5bf558c23733fb46425a.tar.bz2
samba-d70fbdbefa321825998b5bf558c23733fb46425a.zip
r19258: Don't delete the contents of the partitions twice, and in particular
don't delete their contents until we have specified the new partition locations. However, preserve the important part of tridge's change, that is to ensure that no database index is present when the mass delete occours. In my testing, it is best to leave the index until the provision is compleated. Andrew Bartlett (This used to be commit 962219df7dc53ce6f6889f4b71ee19850c7ff7b5)
-rw-r--r--source4/scripting/libjs/provision.js23
-rw-r--r--source4/setup/provision_index.ldif16
-rw-r--r--source4/setup/provision_init.ldif16
3 files changed, 22 insertions, 33 deletions
diff --git a/source4/scripting/libjs/provision.js b/source4/scripting/libjs/provision.js
index e020cc41bd..2dc6bb522b 100644
--- a/source4/scripting/libjs/provision.js
+++ b/source4/scripting/libjs/provision.js
@@ -157,25 +157,8 @@ function ldb_delete(ldb)
*/
function ldb_erase(ldb)
{
- var attrs = new Array("namingContexts");
var res;
- /* delete within each naming context - this copes with existing partitions */
- res = ldb.search("objectClass=*", "", ldb.SCOPE_BASE, attrs);
- if (typeof(res) != "undefined") {
- if (res.length > 0) {
- var names = res[0].namingContexts;
- for (i=0;i<names.length;i++) {
- attrs = new Array("dn");
- res = ldb.search("(objectclass=*)", names[i], ldb.SCOPE_SUBTREE, attrs);
- var j;
- for (j=0;j<res.length;j++) {
- ldb.del(res[j].dn);
- }
- }
- }
- }
-
/* delete the specials */
ldb.del("@INDEXLIST");
ldb.del("@ATTRIBUTES");
@@ -528,6 +511,9 @@ function provision(subobj, message, blank, paths, session_info, credentials)
setup_add_ldif("provision.ldif", info, samdb, false);
if (blank != false) {
+ message("Setting up sam.ldb index\n");
+ setup_add_ldif("provision_index.ldif", info, samdb, false);
+
var commit_ok = samdb.transaction_commit();
if (!commit_ok) {
info.message("ldb commit failed: " + samdb.errstring() + "\n");
@@ -543,6 +529,9 @@ function provision(subobj, message, blank, paths, session_info, credentials)
return false;
}
+ message("Setting up sam.ldb index\n");
+ setup_add_ldif("provision_index.ldif", info, samdb, false);
+
var commit_ok = samdb.transaction_commit();
if (!commit_ok) {
info.message("samdb commit failed: " + samdb.errstring() + "\n");
diff --git a/source4/setup/provision_index.ldif b/source4/setup/provision_index.ldif
new file mode 100644
index 0000000000..2dd2e7d60f
--- /dev/null
+++ b/source4/setup/provision_index.ldif
@@ -0,0 +1,16 @@
+dn: @INDEXLIST
+@IDXATTR: name
+@IDXATTR: sAMAccountName
+@IDXATTR: objectSid
+@IDXATTR: objectCategory
+@IDXATTR: member
+@IDXATTR: uidNumber
+@IDXATTR: gidNumber
+@IDXATTR: unixName
+@IDXATTR: privilege
+@IDXATTR: nCName
+@IDXATTR: lDAPDisplayName
+@IDXATTR: subClassOf
+@IDXATTR: dnsRoot
+@IDXATTR: nETBIOSName
+
diff --git a/source4/setup/provision_init.ldif b/source4/setup/provision_init.ldif
index 8f4258ae1b..a3eb60ab94 100644
--- a/source4/setup/provision_init.ldif
+++ b/source4/setup/provision_init.ldif
@@ -1,19 +1,3 @@
-dn: @INDEXLIST
-@IDXATTR: name
-@IDXATTR: sAMAccountName
-@IDXATTR: objectSid
-@IDXATTR: objectCategory
-@IDXATTR: member
-@IDXATTR: uidNumber
-@IDXATTR: gidNumber
-@IDXATTR: unixName
-@IDXATTR: privilege
-@IDXATTR: nCName
-@IDXATTR: lDAPDisplayName
-@IDXATTR: subClassOf
-@IDXATTR: dnsRoot
-@IDXATTR: nETBIOSName
-
dn: @ATTRIBUTES
userPrincipalName: CASE_INSENSITIVE
servicePrincipalName: CASE_INSENSITIVE