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