diff options
Diffstat (limited to 'source4/scripting')
| -rwxr-xr-x | source4/scripting/python/samba/upgradehelpers.py | 49 | 
1 files 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"])  | 
