mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-14 00:25:17 +00:00
python: Use a pure python implementation of 'vir*GetConnect'
The API docs explictly warn that we shouldn't use the C vir*GetConnect calls in bindings: doing so can close the internal connection pointer and cause things to get screwy. Implement these calls in python. Signed-off-by: Cole Robinson <crobinso@redhat.com>
This commit is contained in:
parent
97648a9751
commit
9e09f313d1
@ -343,6 +343,16 @@ skip_function = (
|
||||
"virSecretRef",
|
||||
"virStoragePoolRef",
|
||||
"virStorageVolRef",
|
||||
|
||||
# This functions shouldn't be called via the bindings (and even the docs
|
||||
# contain an explicit warning to that effect). The equivalent should be
|
||||
# implemented in pure python for each class
|
||||
"virDomainGetConnect",
|
||||
"virInterfaceGetConnect",
|
||||
"virNetworkGetConnect",
|
||||
"virSecretGetConnect",
|
||||
"virStoragePoolGetConnect",
|
||||
"virStorageVolGetConnect",
|
||||
)
|
||||
|
||||
|
||||
@ -641,6 +651,11 @@ classes_destructors = {
|
||||
#"virStream": "virStreamFree",
|
||||
}
|
||||
|
||||
class_skip_connect_impl = {
|
||||
"virConnect" : True
|
||||
}
|
||||
|
||||
|
||||
functions_noexcept = {
|
||||
'virDomainGetID': True,
|
||||
'virDomainGetName': True,
|
||||
@ -1065,6 +1080,12 @@ def buildWrappers():
|
||||
classes_destructors[classname]);
|
||||
classes.write(" self._o = None\n\n");
|
||||
destruct=classes_destructors[classname]
|
||||
|
||||
if not class_skip_connect_impl.has_key(classname):
|
||||
# Build python safe 'connect' method
|
||||
classes.write(" def connect(self):\n")
|
||||
classes.write(" return self._conn\n\n")
|
||||
|
||||
flist = function_classes[classname]
|
||||
flist.sort(functionCompare)
|
||||
oldfile = ""
|
||||
|
Loading…
x
Reference in New Issue
Block a user