diff --git a/python/generator.py b/python/generator.py index a079fc57f9..5d27f66c05 100755 --- a/python/generator.py +++ b/python/generator.py @@ -527,6 +527,8 @@ skip_function = ( "virNWFilterGetConnect", "virStoragePoolGetConnect", "virStorageVolGetConnect", + "virDomainSnapshotGetConnect", + "virDomainSnapshotGetDomain", # only useful in C code, python code uses dict for typed parameters "virTypedParamsAddBoolean", @@ -953,7 +955,6 @@ classes_destructors = { class_skip_connect_impl = { "virConnect" : True, - "virDomainSnapshot": True, } class_domain_impl = { @@ -1436,6 +1437,7 @@ def buildWrappers(module): " self._conn = conn._conn\n") elif classname in [ "virDomainSnapshot" ]: classes.write(" self._dom = dom\n") + classes.write(" self._conn = dom.connect()\n") classes.write(" if _obj != None:self._o = _obj;return\n") classes.write(" self._o = None\n\n"); destruct=None diff --git a/python/libvirt-override-virDomainSnapshot.py b/python/libvirt-override-virDomainSnapshot.py index 3da7bfd903..bf708a52bd 100644 --- a/python/libvirt-override-virDomainSnapshot.py +++ b/python/libvirt-override-virDomainSnapshot.py @@ -1,3 +1,11 @@ + def getConnect(self): + """Get the connection that owns the domain that a snapshot was created for""" + return self.connect() + + def getDomain(self): + """Get the domain that a snapshot was created for""" + return self.domain() + def listAllChildren(self, flags): """List all child snapshots and returns a list of snapshot objects""" ret = libvirtmod.virDomainSnapshotListAllChildren(self._o, flags) diff --git a/src/libvirt.c b/src/libvirt.c index d5d561c0b5..f81a3de76b 100644 --- a/src/libvirt.c +++ b/src/libvirt.c @@ -17850,7 +17850,12 @@ virDomainSnapshotGetName(virDomainSnapshotPtr snapshot) * virDomainSnapshotGetDomain: * @snapshot: a snapshot object * - * Get the domain that a snapshot was created for + * Provides the domain pointer associated with a snapshot. The + * reference counter on the domain is not increased by this + * call. + * + * WARNING: When writing libvirt bindings in other languages, do not use this + * function. Instead, store the domain and the snapshot object together. * * Returns the domain or NULL. */ @@ -17874,7 +17879,12 @@ virDomainSnapshotGetDomain(virDomainSnapshotPtr snapshot) * virDomainSnapshotGetConnect: * @snapshot: a snapshot object * - * Get the connection that owns the domain that a snapshot was created for + * Provides the connection pointer associated with a snapshot. The + * reference counter on the connection is not increased by this + * call. + * + * WARNING: When writing libvirt bindings in other languages, do not use this + * function. Instead, store the connection and the snapshot object together. * * Returns the connection or NULL. */