[libvirt] [PATCH v2 0/9] Introduce virDomainGetState API

Jiri Denemark jdenemar at redhat.com
Tue May 10 13:39:02 UTC 2011


This new API solves several problems:

- calling virDomainGetInfo for just getting domain status is an overkill since
  it may result in sending requests to guest OS
- since virDomainGetInfo can hang when guest OS is not responding and it is
  used by virsh list, listing domains can hang
- virDomainGetState provides additional info about what action led to domain's
  current state, which can be used instead of listening to domain events

Version 2:
- rebased to current HEAD
- unsigned int flags parameter
- updated version info in public.syms
- noGetState renamed as useGetInfo in virsh.c
- simplified implementation in esx driver per Matthias' suggestion
- call internal xen drivers directly instead of going through xenUnifiedDriver
- fixed || vs && typo in domain_conf.c
- new patch 9/9: qemu: Update domain state when reconnecting monitor

Jiri Denemark (9):
  virDomainGetState public API
  Internal driver API for virDomainGetState
  virDomainGetState public API implementation
  Wire protocol format and dispatcher for virDomainGetState
  virsh: Prefer virDomainGetState over virDomainGetInfo
  remote: Implement virDomainGetState
  Implement basic virDomainGetState in all drivers
  Implement domain state reason
  qemu: Update domain state when reconnecting monitor

 daemon/remote.c                 |   33 +++++++
 daemon/remote_generator.pl      |    6 +-
 include/libvirt/libvirt.h.in    |   56 +++++++++++
 python/generator.py             |    1 +
 python/libvirt-override-api.xml |    6 +
 python/libvirt-override.c       |   30 ++++++
 src/conf/domain_conf.c          |  163 +++++++++++++++++++++++++++++++-
 src/conf/domain_conf.h          |   26 +++++-
 src/driver.h                    |    6 +
 src/esx/esx_driver.c            |   44 +++++++++
 src/libvirt.c                   |   51 ++++++++++
 src/libvirt_private.syms        |    4 +
 src/libvirt_public.syms         |    5 +
 src/libxl/libxl_driver.c        |   80 ++++++++++++----
 src/lxc/lxc_driver.c            |   81 ++++++++++++----
 src/openvz/openvz_conf.c        |   16 ++-
 src/openvz/openvz_driver.c      |   57 +++++++++--
 src/phyp/phyp_driver.c          |   16 +++
 src/qemu/qemu_driver.c          |   95 ++++++++++++++-----
 src/qemu/qemu_migration.c       |   24 +++--
 src/qemu/qemu_monitor.c         |   20 ++++
 src/qemu/qemu_monitor.h         |    1 +
 src/qemu/qemu_monitor_json.c    |   42 +++++++++
 src/qemu/qemu_monitor_json.h    |    1 +
 src/qemu/qemu_monitor_text.c    |   30 ++++++
 src/qemu/qemu_monitor_text.h    |    1 +
 src/qemu/qemu_process.c         |   99 +++++++++++++++-----
 src/qemu/qemu_process.h         |   12 ++-
 src/remote/remote_driver.c      |   34 +++++++
 src/remote/remote_protocol.x    |   13 +++-
 src/remote_protocol-structs     |    8 ++
 src/test/test_driver.c          |  107 +++++++++++++++-------
 src/uml/uml_driver.c            |   58 ++++++++++--
 src/vbox/vbox_tmpl.c            |   60 ++++++++++++
 src/vmware/vmware_conf.c        |    3 +-
 src/vmware/vmware_driver.c      |   60 ++++++++++---
 src/xen/xen_driver.c            |   42 +++++++++
 src/xen/xen_hypervisor.c        |   36 +++++++
 src/xen/xen_hypervisor.h        |    5 +
 src/xen/xend_internal.c         |   99 +++++++++++++++-----
 src/xen/xend_internal.h         |    4 +
 src/xen/xm_internal.c           |   20 ++++
 src/xen/xm_internal.h           |    4 +
 src/xen/xs_internal.c           |   34 +++++++
 src/xen/xs_internal.h           |    4 +
 src/xenapi/xenapi_driver.c      |   49 ++++++++++
 tools/virsh.c                   |  195 ++++++++++++++++++++++++++++++++-------
 47 files changed, 1603 insertions(+), 238 deletions(-)

-- 
1.7.5.rc3




More information about the libvir-list mailing list