diff options
author | Tim Potter <tpot@samba.org> | 2006-04-15 10:10:23 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 14:04:08 -0500 |
commit | bd41ecdcd0b566c63b9c184a8f5ffdf8db8bd869 (patch) | |
tree | c7662949ff5ea2d2a47fabf76a9207d65ed23b78 | |
parent | 6aa32f4217cfa659d042d3e6a72ec156f11b9675 (diff) | |
download | samba-bd41ecdcd0b566c63b9c184a8f5ffdf8db8bd869.tar.gz samba-bd41ecdcd0b566c63b9c184a8f5ffdf8db8bd869.tar.bz2 samba-bd41ecdcd0b566c63b9c184a8f5ffdf8db8bd869.zip |
r15091: Raise LdbError instead of IOError when ldb function calls return an
error.
(This used to be commit e13c6d7c49e1586cc9b25c30d3f9d51f42d1c785)
-rw-r--r-- | source4/lib/ldb/swig/Ldb.py | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/source4/lib/ldb/swig/Ldb.py b/source4/lib/ldb/swig/Ldb.py index f761aec398..00480ca3e8 100644 --- a/source4/lib/ldb/swig/Ldb.py +++ b/source4/lib/ldb/swig/Ldb.py @@ -22,6 +22,10 @@ import ldb +class LdbError(Exception): + """An exception raised when a ldb error occurs.""" + pass + class LdbElement: """A class representing a ldb element as an array of values.""" @@ -84,19 +88,22 @@ class Ldb: def search(self, expression): - result = ldb.search(self.ldb_ctx, None, ldb.LDB_SCOPE_DEFAULT, - expression, None); + self._ldb_call(ldb.search, self.ldb_ctx, None, ldb.LDB_SCOPE_DEFAULT, + expression, None); return [LdbMessage(ldb.ldb_message_ptr_array_getitem(result.msgs, ndx)) for ndx in range(result.count)] + def _ldb_call(self, fn, *args): + result = fn(*args) + if result != ldb.LDB_SUCCESS: + raise LdbError, (result, ldb.strerror(result)) + def delete(self, dn): - if ldb.delete(self.ldb_ctx, dn) != 0: - raise IOError, ldb.errstring(self.ldb_ctx) + self._ldb_call(ldb.delete, self.ldb_ctx, dn) def rename(self, olddn, newdn): - if ldb.rename(self.ldb_ctx, olddn, newdn) != 0: - raise IOError, ldb.errstring(self.ldb_ctx) + self._ldb_call(ldb.rename, self.ldb_ctx, olddn, newdn) def add(self, msg): - ldb.add(self.ldb_ctx, msg) + self._ldb_call(ldb.add, self.ldb_ctx, msg) |