From 47c62eeb68b95d0505936bf1e63b36f18ac1f2b2 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Mon, 27 Feb 2012 03:50:37 +0100 Subject: upgradehelpers: Simplify transaction handling. Autobuild-User: Jelmer Vernooij Autobuild-Date: Mon Feb 27 05:25:04 CET 2012 on sn-devel-104 --- source4/scripting/python/samba/upgradehelpers.py | 49 ++++++++---------------- 1 file changed, 16 insertions(+), 33 deletions(-) diff --git a/source4/scripting/python/samba/upgradehelpers.py b/source4/scripting/python/samba/upgradehelpers.py index c6c9527e36..396e665294 100755 --- a/source4/scripting/python/samba/upgradehelpers.py +++ b/source4/scripting/python/samba/upgradehelpers.py @@ -74,11 +74,12 @@ class ProvisionLDB(object): self.hku = None self.hklm = None + def dbs(self): + return (self.sam, self.secrets, self.idmap, self.privilege) + def startTransactions(self): - self.sam.transaction_start() - self.secrets.transaction_start() - self.idmap.transaction_start() - self.privilege.transaction_start() + for db in self.dbs(): + db.transaction_start() # TO BE DONE # self.hkcr.transaction_start() # self.hkcu.transaction_start() @@ -87,26 +88,11 @@ class ProvisionLDB(object): def groupedRollback(self): ok = True - try: - self.sam.transaction_cancel() - except Exception: - ok = False - - try: - self.secrets.transaction_cancel() - except Exception: - ok = False - - try: - self.idmap.transaction_cancel() - except Exception: - ok = False - - try: - self.privilege.transaction_cancel() - except Exception: - ok = False - + for db in self.dbs(): + try: + db.transaction_cancel() + except Exception: + ok = False return ok # TO BE DONE # self.hkcr.transaction_cancel() @@ -116,10 +102,8 @@ class ProvisionLDB(object): def groupedCommit(self): try: - self.sam.transaction_prepare_commit() - self.secrets.transaction_prepare_commit() - self.idmap.transaction_prepare_commit() - self.privilege.transaction_prepare_commit() + for db in self.dbs(): + db.transaction_prepare_commit() except Exception: return self.groupedRollback() # TO BE DONE @@ -128,10 +112,8 @@ class ProvisionLDB(object): # self.hku.transaction_prepare_commit() # self.hklm.transaction_prepare_commit() try: - self.sam.transaction_commit() - self.secrets.transaction_commit() - self.idmap.transaction_commit() - self.privilege.transaction_commit() + for db in self.dbs(): + db.transaction_commit() except Exception: return self.groupedRollback() @@ -142,6 +124,7 @@ class ProvisionLDB(object): # self.hklm.transaction_commit() return True + def get_ldbs(paths, creds, session, lp): """Return LDB object mapped on most important databases @@ -534,7 +517,7 @@ def update_secrets(newsecrets_ldb, secrets_ldb, messagefunc): res2 = secrets_ldb.search(expression="(samaccountname=dns)", scope=SCOPE_SUBTREE, attrs=["dn"]) - if (len(res2) == 1): + if len(res2) == 1: messagefunc(SIMPLE, "Remove old dns account") secrets_ldb.delete(res2[0]["dn"]) -- cgit