diff options
author | Andrew Bartlett <abartlet@samba.org> | 2006-10-13 01:35:52 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 14:20:58 -0500 |
commit | d70fbdbefa321825998b5bf558c23733fb46425a (patch) | |
tree | c1e7b0b2930c0ac122b181c4ec4544474b85c231 /source4 | |
parent | 6c4bc15f3b76ccfb154cababfccd443d83d2c28a (diff) | |
download | samba-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)
Diffstat (limited to 'source4')
-rw-r--r-- | source4/scripting/libjs/provision.js | 23 | ||||
-rw-r--r-- | source4/setup/provision_index.ldif | 16 | ||||
-rw-r--r-- | source4/setup/provision_init.ldif | 16 |
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 |