mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-03 15:43:51 +00:00
Fixed exception reporting for domain/network operations
This commit is contained in:
parent
cc05eaf803
commit
b4259bbc37
@ -1,3 +1,9 @@
|
|||||||
|
Mon Apr 16 08:30:04 EST 2007 Daniel P. Berrange <berrange@redhat.com>
|
||||||
|
|
||||||
|
* python/generator.py, python/libvir.py: Ensure that connection
|
||||||
|
info is passed into virError object when a virNetwork or virDomain
|
||||||
|
operation fails
|
||||||
|
|
||||||
Sun Apr 15 15:57:04 EST 2007 Daniel P. Berrange <berrange@redhat.com>
|
Sun Apr 15 15:57:04 EST 2007 Daniel P. Berrange <berrange@redhat.com>
|
||||||
|
|
||||||
* qemud/driver.c: Fixed integer overflow in calculating CPU time
|
* qemud/driver.c: Fixed integer overflow in calculating CPU time
|
||||||
|
@ -535,10 +535,10 @@ def buildStubs():
|
|||||||
# The type automatically remapped to generated classes
|
# The type automatically remapped to generated classes
|
||||||
#
|
#
|
||||||
classes_type = {
|
classes_type = {
|
||||||
"virDomainPtr": ("._o", "virDomain(_obj=%s)", "virDomain"),
|
"virDomainPtr": ("._o", "virDomain(self,_obj=%s)", "virDomain"),
|
||||||
"virDomain *": ("._o", "virDomain(_obj=%s)", "virDomain"),
|
"virDomain *": ("._o", "virDomain(self, _obj=%s)", "virDomain"),
|
||||||
"virNetworkPtr": ("._o", "virNetwork(_obj=%s)", "virNetwork"),
|
"virNetworkPtr": ("._o", "virNetwork(self, _obj=%s)", "virNetwork"),
|
||||||
"virNetwork *": ("._o", "virNetwork(_obj=%s)", "virNetwork"),
|
"virNetwork *": ("._o", "virNetwork(self, _obj=%s)", "virNetwork"),
|
||||||
"virConnectPtr": ("._o", "virConnect(_obj=%s)", "virConnect"),
|
"virConnectPtr": ("._o", "virConnect(_obj=%s)", "virConnect"),
|
||||||
"virConnect *": ("._o", "virConnect(_obj=%s)", "virConnect"),
|
"virConnect *": ("._o", "virConnect(_obj=%s)", "virConnect"),
|
||||||
}
|
}
|
||||||
@ -556,11 +556,6 @@ classes_destructors = {
|
|||||||
"virConnect": "virConnectClose",
|
"virConnect": "virConnectClose",
|
||||||
}
|
}
|
||||||
|
|
||||||
classes_references = {
|
|
||||||
"virDomain": "virConnect",
|
|
||||||
"virNetwork": "virConnect",
|
|
||||||
}
|
|
||||||
|
|
||||||
functions_noexcept = {
|
functions_noexcept = {
|
||||||
'virDomainGetID': True,
|
'virDomainGetID': True,
|
||||||
'virDomainGetName': True,
|
'virDomainGetName': True,
|
||||||
@ -872,11 +867,16 @@ def buildWrappers():
|
|||||||
else:
|
else:
|
||||||
txt.write("Class %s()\n" % (classname))
|
txt.write("Class %s()\n" % (classname))
|
||||||
classes.write("class %s:\n" % (classname))
|
classes.write("class %s:\n" % (classname))
|
||||||
classes.write(" def __init__(self, _obj=None):\n")
|
if classname == "virDomain" or classname == "virNetwork":
|
||||||
|
classes.write(" def __init__(self, conn, _obj=None):\n")
|
||||||
|
else:
|
||||||
|
classes.write(" def __init__(self, _obj=None):\n")
|
||||||
if reference_keepers.has_key(classname):
|
if reference_keepers.has_key(classname):
|
||||||
list = reference_keepers[classname]
|
list = reference_keepers[classname]
|
||||||
for ref in list:
|
for ref in list:
|
||||||
classes.write(" self.%s = None\n" % ref[1])
|
classes.write(" self.%s = None\n" % ref[1])
|
||||||
|
if classname == "virDomain" or classname == "virNetwork":
|
||||||
|
classes.write(" self._conn = conn\n")
|
||||||
classes.write(" if _obj != None:self._o = _obj;return\n")
|
classes.write(" if _obj != None:self._o = _obj;return\n")
|
||||||
classes.write(" self._o = None\n\n");
|
classes.write(" self._o = None\n\n");
|
||||||
destruct=None
|
destruct=None
|
||||||
@ -961,6 +961,14 @@ def buildWrappers():
|
|||||||
classes.write(
|
classes.write(
|
||||||
" if ret is None:raise libvirtError('%s() failed', conn=self)\n" %
|
" if ret is None:raise libvirtError('%s() failed', conn=self)\n" %
|
||||||
(name))
|
(name))
|
||||||
|
elif classname == "virDomain":
|
||||||
|
classes.write(
|
||||||
|
" if ret is None:raise libvirtError('%s() failed', dom=self)\n" %
|
||||||
|
(name))
|
||||||
|
elif classname == "virNetwork":
|
||||||
|
classes.write(
|
||||||
|
" if ret is None:raise libvirtError('%s() failed', net=self)\n" %
|
||||||
|
(name))
|
||||||
else:
|
else:
|
||||||
classes.write(
|
classes.write(
|
||||||
" if ret is None:raise libvirtError('%s() failed')\n" %
|
" if ret is None:raise libvirtError('%s() failed')\n" %
|
||||||
@ -973,12 +981,6 @@ def buildWrappers():
|
|||||||
classes.write(classes_type[ret[0]][1] % ("ret"));
|
classes.write(classes_type[ret[0]][1] % ("ret"));
|
||||||
classes.write("\n");
|
classes.write("\n");
|
||||||
|
|
||||||
#
|
|
||||||
# hook up a reference if needed
|
|
||||||
#
|
|
||||||
if classes_references.has_key(classes_type[ret[0]][2]):
|
|
||||||
classes.write(" __tmp.ref = self\n");
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Sometime one need to keep references of the source
|
# Sometime one need to keep references of the source
|
||||||
# class in the returned class object.
|
# class in the returned class object.
|
||||||
@ -1031,6 +1033,14 @@ def buildWrappers():
|
|||||||
classes.write ((" if " + test +
|
classes.write ((" if " + test +
|
||||||
": raise libvirtError ('%s() failed', conn=self)\n") %
|
": raise libvirtError ('%s() failed', conn=self)\n") %
|
||||||
("ret", name))
|
("ret", name))
|
||||||
|
elif classname == "virDomain":
|
||||||
|
classes.write ((" if " + test +
|
||||||
|
": raise libvirtError ('%s() failed', dom=self)\n") %
|
||||||
|
("ret", name))
|
||||||
|
elif classname == "virNetwork":
|
||||||
|
classes.write ((" if " + test +
|
||||||
|
": raise libvirtError ('%s() failed', net=self)\n") %
|
||||||
|
("ret", name))
|
||||||
else:
|
else:
|
||||||
classes.write ((" if " + test +
|
classes.write ((" if " + test +
|
||||||
": raise libvirtError ('%s() failed')\n") %
|
": raise libvirtError ('%s() failed')\n") %
|
||||||
@ -1053,6 +1063,14 @@ def buildWrappers():
|
|||||||
classes.write ((" if " + test +
|
classes.write ((" if " + test +
|
||||||
": raise libvirtError ('%s() failed', conn=self)\n") %
|
": raise libvirtError ('%s() failed', conn=self)\n") %
|
||||||
("ret", name))
|
("ret", name))
|
||||||
|
elif classname == "virDomain":
|
||||||
|
classes.write ((" if " + test +
|
||||||
|
": raise libvirtError ('%s() failed', dom=self)\n") %
|
||||||
|
("ret", name))
|
||||||
|
elif classname == "virNetwork":
|
||||||
|
classes.write ((" if " + test +
|
||||||
|
": raise libvirtError ('%s() failed', net=self)\n") %
|
||||||
|
("ret", name))
|
||||||
else:
|
else:
|
||||||
classes.write ((" if " + test +
|
classes.write ((" if " + test +
|
||||||
": raise libvirtError ('%s() failed')\n") %
|
": raise libvirtError ('%s() failed')\n") %
|
||||||
|
@ -9,9 +9,14 @@ import types
|
|||||||
|
|
||||||
# The root of all libvirt errors.
|
# The root of all libvirt errors.
|
||||||
class libvirtError(Exception):
|
class libvirtError(Exception):
|
||||||
def __init__(self, msg, conn=None):
|
def __init__(self, msg, conn=None, dom=None, net=None):
|
||||||
Exception.__init__(self, msg)
|
Exception.__init__(self, msg)
|
||||||
|
|
||||||
|
if dom is not None:
|
||||||
|
conn = dom._conn
|
||||||
|
elif net is not None:
|
||||||
|
conn = net._conn
|
||||||
|
|
||||||
if conn is None:
|
if conn is None:
|
||||||
self.err = virGetLastError()
|
self.err = virGetLastError()
|
||||||
else:
|
else:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user