libvirt-qpid provides an interface with libvirt using QMF (qpid modeling framework) which utilizes the AMQP protocol. The Advanced Message Queuing Protocol (AMQP) is an open standard application layer protocol providing reliable transport of messages.
QMF provides a modeling framework layer on top of qpid (which implements AMQP). This interface allows you to manage hosts, domains, pools etc. as a set of objects with properties and methods.
Official releases can be found at ftp://ftp.libvirt.org/libvirt-qpid.
You can view the repository at: http://git.et.redhat.com/?p=libvirt-qpid.git.
To check out the latest source, use git:
$ git clone git://git.et.redhat.com/libvirt-qpid
libvirt-qpid is an agent that runs on a given host. It will connect to both the local libvirtd and to a qpid broker. It then queries libvirtd every 5 seconds and maintains objects of various classes that reflect the activity and configuration of libvirtd.
The classes include the node (the host), domains, storage pools, and storage volumes. A complete synchronization takes place each iteration so that any state changes that happen outside of the channel provided by libvirt-qpid will be reflected in the objects representing the state.
In addition the libvirt API is implemented for each class and calls can be made on any of the objects usin the basic libvirt API (with some small differences).
Qpid and QMF then provide reliable messaging of calls (they will queue up), pushing of changes to libvirt status, and a centralized view of a potentially large array of systems (nodes) running libvirt. All this with a fairly intuitive API. Note also that searching for specific objects can be done through the QMF console API and negates the need for the lookup functions in the libvirt API.