diff options
author | Daniel P. Berrange <berrange@redhat.com> | 2006-11-07 23:18:56 +0000 |
---|---|---|
committer | Daniel P. Berrange <berrange@redhat.com> | 2006-11-07 23:18:56 +0000 |
commit | 945919ffff7f4e856d17d2b5a6b48cab5417d92f (patch) | |
tree | 3305085c6fb2534b0e4bc607eb1c6f30eb67e8fd /libvir.py | |
parent | 54db0825da704d121264647798fdd829a3ade6e2 (diff) | |
download | libvirt-python-v6-945919ffff7f4e856d17d2b5a6b48cab5417d92f.tar.gz libvirt-python-v6-945919ffff7f4e856d17d2b5a6b48cab5417d92f.tar.xz libvirt-python-v6-945919ffff7f4e856d17d2b5a6b48cab5417d92f.zip |
Propagate libvirt errors back with python exceptions
Diffstat (limited to 'libvir.py')
-rw-r--r-- | libvir.py | 57 |
1 files changed, 55 insertions, 2 deletions
@@ -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 |