From 410114e41c713ccba2ac7d46e3f5acfddd986669 Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Fri, 14 Aug 2009 08:29:19 +1000 Subject: [PATCH] s4:provision Keep a single transaction for the erase and rebuild Using a single transaction to both erase the bulk of the data and the rebuild of that data means that the in-memory index list is maintained, and not written out to disk until it is all compleated. All the writes then occour at the end. Andrew Bartlett --- source4/scripting/python/samba/provision.py | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/source4/scripting/python/samba/provision.py b/source4/scripting/python/samba/provision.py index 253add1205cb..12625d98d6a7 100644 --- a/source4/scripting/python/samba/provision.py +++ b/source4/scripting/python/samba/provision.py @@ -838,24 +838,15 @@ def setup_samdb(path, setup_path, session_info, credentials, lp, # Load the schema (again). This time it will force a reindex, to make the below computationally sane samdb.set_schema_from_ldb(schema.ldb) samdb.erase_partitions() - - except: - samdb.transaction_cancel() - raise - - samdb.transaction_commit() - samdb.set_opaque_integer("domainFunctionality", domainFunctionality) - samdb.set_opaque_integer("forestFunctionality", forestFunctionality) - samdb.set_opaque_integer("domainControllerFunctionality", domainControllerFunctionality) + samdb.set_opaque_integer("domainFunctionality", domainFunctionality) + samdb.set_opaque_integer("forestFunctionality", forestFunctionality) + samdb.set_opaque_integer("domainControllerFunctionality", domainControllerFunctionality) - samdb.set_domain_sid(str(domainsid)) - if serverrole == "domain controller": - samdb.set_invocation_id(invocationid) + samdb.set_domain_sid(str(domainsid)) + if serverrole == "domain controller": + samdb.set_invocation_id(invocationid) - samdb.transaction_start() - - try: message("Adding DomainDN: %s" % names.domaindn) if serverrole == "domain controller": domain_oc = "domainDNS" -- 2.34.1