Some simple examples on how to use the Python API for libvirt

The examples are:

dominfo.py  - print information about a running domU based on the results of
              virDomainGetInfo and virDomainGetXMLDesc
domstart.py - create a domU from an XML description if the domU isn't
              running yet
domsave.py  - save all running domU's into a directory
domrestore.py - restore domU's from their saved files in a directory
esxlist.py  - list active domains of an VMware ESX host and print some info.
              also demonstrates how to use the libvirt.openAuth() method
dhcpleases.py - list dhcp leases for a given virtual network
domipaddrs.py - list IP addresses for guest domains
guest-vcpus - two helpers to make the guest agent event useful with agent based
              vCPU state modification
nodestats.py - print total memory and free memory for each host NUMA node and
               the memory strictly bound to certain host nodes for each running
               domain.

Some additional notes for the esxlist.py example:

You may see remote errors complaining about missing certificates:

  Cannot access CA certificate '/usr/local/etc/pki/CA/cacert.pem': No such file
  or directory

This is expected, libvirt tries to find network and storage drivers for ESX,
but those are not implemented yet (November 2009). While searching for this
drivers, libvirt may try to start a local libvirtd instance, but fails because
of the missing certificates. It'll warn about that:

  Failed to find the network: Is the daemon running?

This is also expected and can be ignored.
