svn commit: samba r15091 - in
branches/SAMBA_4_0/source/lib/ldb/swig: .
tpot at samba.org
tpot at samba.org
Sat Apr 15 10:10:24 GMT 2006
Author: tpot
Date: 2006-04-15 10:10:23 +0000 (Sat, 15 Apr 2006)
New Revision: 15091
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=15091
Log:
Raise LdbError instead of IOError when ldb function calls return an
error.
Modified:
branches/SAMBA_4_0/source/lib/ldb/swig/Ldb.py
Changeset:
Modified: branches/SAMBA_4_0/source/lib/ldb/swig/Ldb.py
===================================================================
--- branches/SAMBA_4_0/source/lib/ldb/swig/Ldb.py 2006-04-15 07:44:06 UTC (rev 15090)
+++ branches/SAMBA_4_0/source/lib/ldb/swig/Ldb.py 2006-04-15 10:10:23 UTC (rev 15091)
@@ -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 @@
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)
More information about the samba-cvs
mailing list