summaryrefslogtreecommitdiffstats
path: root/libvir.py
diff options
context:
space:
mode:
authorDaniel P. Berrange <berrange@redhat.com>2006-11-07 23:18:56 +0000
committerDaniel P. Berrange <berrange@redhat.com>2006-11-07 23:18:56 +0000
commit945919ffff7f4e856d17d2b5a6b48cab5417d92f (patch)
tree3305085c6fb2534b0e4bc607eb1c6f30eb67e8fd /libvir.py
parent54db0825da704d121264647798fdd829a3ade6e2 (diff)
downloadlibvirt-python-split-945919ffff7f4e856d17d2b5a6b48cab5417d92f.tar.gz
libvirt-python-split-945919ffff7f4e856d17d2b5a6b48cab5417d92f.tar.xz
libvirt-python-split-945919ffff7f4e856d17d2b5a6b48cab5417d92f.zip
Propagate libvirt errors back with python exceptions
Diffstat (limited to 'libvir.py')
-rw-r--r--libvir.py57
1 files changed, 55 insertions, 2 deletions
diff --git a/libvir.py b/libvir.py
index 29dc8c4..b0f0b2c 100644
--- a/libvir.py
+++ b/libvir.py
@@ -7,10 +7,63 @@
import libvirtmod
import types
-# The root of all libxml2 errors.
+# The root of all libvirt errors.
class libvirtError(Exception):
- pass
+ def __init__(self, msg, conn=None):
+ Exception.__init__(self, msg)
+ if conn is None:
+ self.err = virGetLastError()
+ else:
+ self.err = conn.virConnGetLastError()
+
+ def get_error_code(self):
+ if self.err is None:
+ return None
+ return self.err[0]
+
+ def get_error_domain(self):
+ if self.err is None:
+ return None
+ return self.err[1]
+
+ def get_error_message(self):
+ if self.err is None:
+ return None
+ return self.err[2]
+
+ def get_error_level(self):
+ if self.err is None:
+ return None
+ return self.err[3]
+
+ def get_str1(self):
+ if self.err is None:
+ return None
+ return self.err[4]
+
+ def get_str2(self):
+ if self.err is None:
+ return None
+ return self.err[5]
+
+ def get_str3(self):
+ if self.err is None:
+ return None
+ return self.err[6]
+
+ def get_int1(self):
+ if self.err is None:
+ return None
+ return self.err[7]
+
+ def get_int2(self):
+ if self.err is None:
+ return None
+ return self.err[8]
+
+ def __str__(self):
+ return Exception.__str__(self) + " " + self.get_error_message()
#
# register the libvirt global error handler