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:
parent
c4f7b0e5f6
commit
38a26f79ea
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user