From c845ab1e60f2c97410fa4d530aa594f1f3d5fe55 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Wed, 2 Nov 2005 06:41:11 +0000 Subject: r11474: - enable ldb transactions from ejs - speed up provisioning a bit using a ldb transaction (also means you can't end up with a ldb being half done) (This used to be commit 91dfe304cf688bb81b69ff3192ac84b78b34b311) --- source4/scripting/libjs/provision.js | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) (limited to 'source4/scripting/libjs') diff --git a/source4/scripting/libjs/provision.js b/source4/scripting/libjs/provision.js index 6b76d2bc1f..8c2398e74e 100644 --- a/source4/scripting/libjs/provision.js +++ b/source4/scripting/libjs/provision.js @@ -128,9 +128,12 @@ function hostname() function ldb_delete(ldb) { println("Deleting " + ldb.filename); - sys.unlink(ldb.filename); + var lp = loadparm_init(); + sys.unlink(sprintf("%s/%s", lp.get("private dir"), ldb.filename)); + ldb.transaction_cancel(); ldb.close(); var ok = ldb.connect(ldb.filename); + ldb.transaction_start(); assert(ok); } @@ -148,7 +151,7 @@ function ldb_erase(ldb) ldb.del("@MODULES"); /* and the rest */ - var res = ldb.search("(|(objectclass=*)(dn=*))", attrs); + var res = ldb.search("(&(|(objectclass=*)(dn=*))(!(dn=@BASEINFO)))", attrs); var i; if (typeof(res) == "undefined") { ldb_delete(ldb); @@ -157,12 +160,13 @@ function ldb_erase(ldb) for (i=0;i