On Fri, Sep 09, 2011 at 07:24:40PM +0800, Osier Yang wrote: > This patchset is to expose QEMU APIs to Python binding, as we > don't intend to support the QEMU APIs officially, it's exposed > seperately with general libvirt APIs with standalone > libvirt_qemu.py and libvirtmod_qemu.so. And there is no class > for QEMU APIs, there are written directly as function in > libvirt_qemu.py. > > How to use the APIs. > > #! /usr/bin/python -u > import libvirt > import libvirt_qemu > > conn = libvirt.open(None) > dom = conn.lookupByName('test') > > print libvirt_qemu.qemuMonitorCommand(dom, 'info blockstats', 1) > libvirt_qemu.qemuAttach(conn, 2307, 0) This feels like rather a strange way to expose this in Python. We currently have 'libvirt.Connection' and 'libvirt.Domain' objects in the Python binding. > conn = libvirt.open(None) This is giving us a libvirt.Connection object. > dom = conn.lookupByName('test') This is giving us a libvirt.Domain object. > print libvirt_qemu.qemuMonitorCommand(dom, 'info blockstats', 1) And this is just wierd. What I think is that we should have a 'libvirt_qemu.QemuConnection' object which is a subclass of 'libvirt.Connection', and 'libvirt_qemu.QemuDomain' object which is a subclass of libvirt.Domain' which adds the new QEMU specific method 'qemuMonitorCommand'. So the example usage would end up being > #! /usr/bin/python -u > import libvirt > import libvirt_qemu > > conn = libvirt_qemu.open(None) This would be a libvirt_qemu.QemuConnection object. > dom = conn.lookupByName('test') And this would thus now be a libvirt_qemu.QemuDomain object, so that finally you can simply do > dom.qemuMonitorCommand('info blockstats', 1) # cat libvirt_qemu.py def open(name) ....call libvirt.open and turn the result into a libvirt_qemu.QemuConnection object class QemuConnection(libvirt.Connection): def __init__(....) ... def lookupByName(name) ...call original lookupByName method and turn the result into a libvirt_qemu.Domain object instead class QemuDomain(libvirt.Domain): def __init__(....) ... def qemuMonitorCommand(cmd, flags) ... Regards, Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :| -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list