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 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list