1
0
mirror of https://github.com/samba-team/samba.git synced 2025-02-02 09:47:23 +03:00

s4 upgradeprovision: Make grouped commit / rollback more resistant to unexpected problems

Signed-off-by: Jelmer Vernooij <jelmer@samba.org>
This commit is contained in:
Matthieu Patou 2010-06-16 11:25:19 +04:00 committed by Jelmer Vernooij
parent c4f7b0e5f6
commit 38a26f79ea

View File

@ -81,39 +81,68 @@ class ProvisionLDB(object):
self.secrets.transaction_start()
self.idmap.transaction_start()
self.privilege.transaction_start()
# TO BE DONE
# self.hkcr.transaction_start()
# self.hkcu.transaction_start()
# self.hku.transaction_start()
# self.hklm.transaction_start()
def groupedRollback(self):
ok = True
try:
self.sam.transaction_cancel()
except:
ok = False
try:
self.secrets.transaction_cancel()
except:
ok = False
try:
self.idmap.transaction_cancel()
except:
ok = False
try:
self.privilege.transaction_cancel()
except:
ok = False
return ok
# TO BE DONE
# self.hkcr.transaction_cancel()
# self.hkcu.transaction_cancel()
# self.hku.transaction_cancel()
# self.hklm.transaction_cancel()
def groupedCommit(self):
try:
self.sam.transaction_prepare_commit()
self.secrets.transaction_prepare_commit()
self.idmap.transaction_prepare_commit()
self.privilege.transaction_prepare_commit()
except:
return self.groupedRollback()
# TO BE DONE
# self.hkcr.transaction_prepare_commit()
# self.hkcu.transaction_prepare_commit()
# 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()
except:
return self.groupedRollback()
# TO BE DONE
# self.hkcr.transaction_commit()
# self.hkcu.transaction_commit()
# self.hku.transaction_commit()
# self.hklm.transaction_commit()
return True
def get_ldbs(paths, creds, session, lp):
"""Return LDB object mapped on most important databases