<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/libvirt-python.git/libvirt-override.c, branch git-init-libvirt</title>
<subtitle>libvirt.org: git/libvirt-python.git
</subtitle>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libvirt-python.git/'/>
<entry>
<title>Fix up the python bindings for snapshotting.</title>
<updated>2010-05-20T17:49:38+00:00</updated>
<author>
<name>Chris Lalancette</name>
<email>clalance@redhat.com</email>
</author>
<published>2010-05-19T13:02:30+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libvirt-python.git/commit/?id=a4079e7ec63c7ecdc5fcd23b33831c58e3679d46'/>
<id>a4079e7ec63c7ecdc5fcd23b33831c58e3679d46</id>
<content type='text'>
This involved a few fixes.  To start with,
an virDomainSnapshot object is really tied to a
domain, not a connection, so we have to generate
a slightly different object so that we can get
at self._dom for the object.

Next, we had to "dummy" up an override piece of
XML with a bogus argument that the function doesn't
actually take.  That's so that the generator places
virDomainRevertToSnapshot underneath the correct
class (namely, the virDomain class).

Finally, we had to hand-implement the
virDomainRevertToSnapshot implementation, ignoring the
bogus pointer we are being passed.

With all of this in place, I was able to successfully
take a snapshot and revert to it using only the
Python bindings.

Signed-off-by: Chris Lalancette &lt;clalance@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This involved a few fixes.  To start with,
an virDomainSnapshot object is really tied to a
domain, not a connection, so we have to generate
a slightly different object so that we can get
at self._dom for the object.

Next, we had to "dummy" up an override piece of
XML with a bogus argument that the function doesn't
actually take.  That's so that the generator places
virDomainRevertToSnapshot underneath the correct
class (namely, the virDomain class).

Finally, we had to hand-implement the
virDomainRevertToSnapshot implementation, ignoring the
bogus pointer we are being passed.

With all of this in place, I was able to successfully
take a snapshot and revert to it using only the
Python bindings.

Signed-off-by: Chris Lalancette &lt;clalance@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>python: don't ignore virInitialize failure in module initialization</title>
<updated>2010-05-18T17:23:33+00:00</updated>
<author>
<name>Jim Meyering</name>
<email>meyering@redhat.com</email>
</author>
<published>2010-05-18T11:46:27+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libvirt-python.git/commit/?id=a6daa0108e072db02855e4203b7cd6066ddc2b39'/>
<id>a6daa0108e072db02855e4203b7cd6066ddc2b39</id>
<content type='text'>
* python/libvirt-override.c (initlibvirtmod): Upon virInitialize
failure, skip the Py_InitModule call.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* python/libvirt-override.c (initlibvirtmod): Upon virInitialize
failure, skip the Py_InitModule call.
</pre>
</div>
</content>
</entry>
<entry>
<title>Add support for another explicit IO error event</title>
<updated>2010-04-30T14:52:59+00:00</updated>
<author>
<name>Daniel P. Berrange</name>
<email>berrange@redhat.com</email>
</author>
<published>2010-03-18T19:37:44+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libvirt-python.git/commit/?id=99d0d2371deb18d969fdbf7fb7805540b7c4517e'/>
<id>99d0d2371deb18d969fdbf7fb7805540b7c4517e</id>
<content type='text'>
This introduces a new event type

   VIR_DOMAIN_EVENT_ID_IO_ERROR_REASON

This event is the same as the previous VIR_DOMAIN_ID_IO_ERROR
event, but also includes a string describing the cause of
the event.

Thus there is a new callback definition for this event type

typedef void (*virConnectDomainEventIOErrorReasonCallback)(virConnectPtr conn,
                                                           virDomainPtr dom,
                                                           const char *srcPath,
                                                           const char *devAlias,
                                                           int action,
                                                           const char *reason,
                                                           void *opaque);

This is currently wired up to the QEMU block IO error events

* daemon/remote.c: Dispatch IO error events to client
* examples/domain-events/events-c/event-test.c: Watch for
  IO error events
* include/libvirt/libvirt.h.in: Define new IO error event ID
  and callback signature
* src/conf/domain_event.c, src/conf/domain_event.h,
  src/libvirt_private.syms: Extend API to handle IO error events
* src/qemu/qemu_driver.c: Connect to the QEMU monitor event
  for block IO errors and emit a libvirt IO error event
* src/remote/remote_driver.c: Receive and dispatch IO error
  events to application
* src/remote/remote_protocol.x: Wire protocol definition for
  IO error events
* src/qemu/qemu_monitor.c, src/qemu/qemu_monitor.h,
  src/qemu/qemu_monitor_json.c: Watch for BLOCK_IO_ERROR event
  from QEMU monitor
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This introduces a new event type

   VIR_DOMAIN_EVENT_ID_IO_ERROR_REASON

This event is the same as the previous VIR_DOMAIN_ID_IO_ERROR
event, but also includes a string describing the cause of
the event.

Thus there is a new callback definition for this event type

typedef void (*virConnectDomainEventIOErrorReasonCallback)(virConnectPtr conn,
                                                           virDomainPtr dom,
                                                           const char *srcPath,
                                                           const char *devAlias,
                                                           int action,
                                                           const char *reason,
                                                           void *opaque);

This is currently wired up to the QEMU block IO error events

* daemon/remote.c: Dispatch IO error events to client
* examples/domain-events/events-c/event-test.c: Watch for
  IO error events
* include/libvirt/libvirt.h.in: Define new IO error event ID
  and callback signature
* src/conf/domain_event.c, src/conf/domain_event.h,
  src/libvirt_private.syms: Extend API to handle IO error events
* src/qemu/qemu_driver.c: Connect to the QEMU monitor event
  for block IO errors and emit a libvirt IO error event
* src/remote/remote_driver.c: Receive and dispatch IO error
  events to application
* src/remote/remote_protocol.x: Wire protocol definition for
  IO error events
* src/qemu/qemu_monitor.c, src/qemu/qemu_monitor.h,
  src/qemu/qemu_monitor_json.c: Watch for BLOCK_IO_ERROR event
  from QEMU monitor
</pre>
</div>
</content>
</entry>
<entry>
<title>Implement python binding for virDomainGetBlockInfo</title>
<updated>2010-04-29T16:21:32+00:00</updated>
<author>
<name>Daniel P. Berrange</name>
<email>berrange@redhat.com</email>
</author>
<published>2010-04-28T12:42:13+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libvirt-python.git/commit/?id=5c99e3b35c5546f46e6c7666fe506bdb29ab738e'/>
<id>5c99e3b35c5546f46e6c7666fe506bdb29ab738e</id>
<content type='text'>
This binds the virDomainGetBlockInfo API to python's blockInfo
method on the domain object

&gt;&gt;&gt; c = libvirt.openReadOnly('qemu:///session')
&gt;&gt;&gt; d = c.lookupByName('demo')
&gt;&gt;&gt; f = d.blockInfo("/dev/loop0", 0)
&gt;&gt;&gt; print f
[1048576000L, 104857600L, 104857600L]

* python/libvirt-override-api.xml: Define override signature
* python/generator.py: Skip C impl generator for virDomainGetBlockInfo
* python/libvirt-override.c: Manual impl of virDomainGetBlockInfo
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This binds the virDomainGetBlockInfo API to python's blockInfo
method on the domain object

&gt;&gt;&gt; c = libvirt.openReadOnly('qemu:///session')
&gt;&gt;&gt; d = c.lookupByName('demo')
&gt;&gt;&gt; f = d.blockInfo("/dev/loop0", 0)
&gt;&gt;&gt; print f
[1048576000L, 104857600L, 104857600L]

* python/libvirt-override-api.xml: Define override signature
* python/generator.py: Skip C impl generator for virDomainGetBlockInfo
* python/libvirt-override.c: Manual impl of virDomainGetBlockInfo
</pre>
</div>
</content>
</entry>
<entry>
<title>nwfilter: python bindings for nwfilter</title>
<updated>2010-04-29T10:46:01+00:00</updated>
<author>
<name>Stefan Berger</name>
<email>stefanb@us.ibm.com</email>
</author>
<published>2010-04-29T10:46:01+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libvirt-python.git/commit/?id=626e52010b6151cbae01e91aa0b94dae8490537c'/>
<id>626e52010b6151cbae01e91aa0b94dae8490537c</id>
<content type='text'>
I have primarily followed the pattern of the 'secret' driver to provide
support for the missing python bindings for the network filter API.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
I have primarily followed the pattern of the 'secret' driver to provide
support for the missing python bindings for the network filter API.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fixup python binding for virDomainSnapshot APIs</title>
<updated>2010-04-20T09:49:27+00:00</updated>
<author>
<name>Daniel P. Berrange</name>
<email>berrange@redhat.com</email>
</author>
<published>2010-04-20T09:49:27+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libvirt-python.git/commit/?id=37f24b06c0f96539f8964e0b41010f4ebe514f5f'/>
<id>37f24b06c0f96539f8964e0b41010f4ebe514f5f</id>
<content type='text'>
The generator code was totally wrong for the virDomainSnapshot
APIs, not generating the wrapper class, and giving methods the
wrong names

* generator.py: Set metadata for virDomainSnapshot type &amp; APIs
* libvirt-override-api.xml, libvirt-override.c: Hand-code the
  virDomainSnapshotListNames glue layer
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The generator code was totally wrong for the virDomainSnapshot
APIs, not generating the wrapper class, and giving methods the
wrong names

* generator.py: Set metadata for virDomainSnapshot type &amp; APIs
* libvirt-override-api.xml, libvirt-override.c: Hand-code the
  virDomainSnapshotListNames glue layer
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix up python bindings for new event callbacks</title>
<updated>2010-04-08T11:41:40+00:00</updated>
<author>
<name>Daniel P. Berrange</name>
<email>berrange@redhat.com</email>
</author>
<published>2010-03-26T13:22:06+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libvirt-python.git/commit/?id=24f9a46106ff5f55bf225867f259573241061719'/>
<id>24f9a46106ff5f55bf225867f259573241061719</id>
<content type='text'>
The generator was disabled for the new event callbacks, since they
need to be hand written. This patch  adds the C and python glue to
expose the new APIs in the python binding. The python example
program is extended to demonstrate of the code

* python/libvirt-override.c: Registration and dispatch of events
   at the C layer
* python/libvirt-override-virConnect.py: Python glue for events
* examples/domain-events/events-python/event-test.py: Demo use
  of new event callbacks
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The generator was disabled for the new event callbacks, since they
need to be hand written. This patch  adds the C and python glue to
expose the new APIs in the python binding. The python example
program is extended to demonstrate of the code

* python/libvirt-override.c: Registration and dispatch of events
   at the C layer
* python/libvirt-override-virConnect.py: Python glue for events
* examples/domain-events/events-python/event-test.py: Demo use
  of new event callbacks
</pre>
</div>
</content>
</entry>
<entry>
<title>Introduce public API for domain async job handling</title>
<updated>2010-03-02T16:22:30+00:00</updated>
<author>
<name>Daniel P. Berrange</name>
<email>berrange@redhat.com</email>
</author>
<published>2010-02-03T11:31:45+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libvirt-python.git/commit/?id=812ed7a260b6003926c903b1938e341dedc44e35'/>
<id>812ed7a260b6003926c903b1938e341dedc44e35</id>
<content type='text'>
Introduce a new public API that provides a way to get progress
info on currently running jobs on a virDomainpPtr. APIs that
are initially within scope of this idea are

 virDomainMigrate
 virDomainMigrateToURI
 virDomainSave
 virDomainRestore
 virDomainCoreDump

These all take a potentially long time and benefit from monitoring.
The virDomainJobInfo struct allows for various pieces of information
to be reported

 - Percentage completion
 - Time
 - Overall data
 - Guest memory data
 - Guest disk/file data

* include/libvirt/libvirt.h.in: Add virDomainGetJobInfo
* python/generator.py, python/libvirt-override-api.xml,
  python/libvirt-override.c: Override for virDomainGetJobInfo API
* python/typewrappers.c, python/typewrappers.h: Introduce wrapper
  for unsigned long long type
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Introduce a new public API that provides a way to get progress
info on currently running jobs on a virDomainpPtr. APIs that
are initially within scope of this idea are

 virDomainMigrate
 virDomainMigrateToURI
 virDomainSave
 virDomainRestore
 virDomainCoreDump

These all take a potentially long time and benefit from monitoring.
The virDomainJobInfo struct allows for various pieces of information
to be reported

 - Percentage completion
 - Time
 - Overall data
 - Guest memory data
 - Guest disk/file data

* include/libvirt/libvirt.h.in: Add virDomainGetJobInfo
* python/generator.py, python/libvirt-override-api.xml,
  python/libvirt-override.c: Override for virDomainGetJobInfo API
* python/typewrappers.c, python/typewrappers.h: Introduce wrapper
  for unsigned long long type
</pre>
</div>
</content>
</entry>
<entry>
<title>libvirt-override.c: avoid a leak upon call with invalid argument</title>
<updated>2010-02-16T16:49:05+00:00</updated>
<author>
<name>Jim Meyering</name>
<email>meyering@redhat.com</email>
</author>
<published>2010-02-16T07:07:38+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libvirt-python.git/commit/?id=84bc8ee00e945223bebc4376aaf24fc2d96390c2'/>
<id>84bc8ee00e945223bebc4376aaf24fc2d96390c2</id>
<content type='text'>
* python/libvirt-override.c (libvirt_virConnectBaselineCPU): Don't leak
the xmlcpus buffer upon encountering a non-string list element.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* python/libvirt-override.c (libvirt_virConnectBaselineCPU): Don't leak
the xmlcpus buffer upon encountering a non-string list element.
</pre>
</div>
</content>
</entry>
<entry>
<title>virConnectBaselineCPU public API</title>
<updated>2010-02-12T13:21:58+00:00</updated>
<author>
<name>Jiri Denemark</name>
<email>jdenemar@redhat.com</email>
</author>
<published>2010-01-22T13:52:41+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libvirt-python.git/commit/?id=be6735de04f6f1e067553d0c96bdedf3bfe759bf'/>
<id>be6735de04f6f1e067553d0c96bdedf3bfe759bf</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
