This series adds several bits of guest information provided by a new API function virDomainGetGuestInfo(). There is an implementation for qemu using the guest agent. In particular, it adds information about logged-in users, guest OS, and timezone. I had previously submitted a patch series with a dedicated API function for querying guest users that returned an array of structures describing the users. It was suggested that I convert his to a more futureproof design using typed parameters and also combine it with other bits of guest information similar to virDomainListGetStats(). In fact, there were several bugs that requested this information be added to the 'bulk stats' API, but Peter Krempa suggested adding a new API for all data queried from the guest agent (see https://bugzilla.redhat.com/show_bug.cgi?id=1705514). This is that API proposal. It follows the stats API quite closely, and tries to return data in similar ways (for example, the "users.N.*" field name scheme was inspired by various stats fields). I plan to follow this series up with a patch that adds fsinfo to the returned information, but wanted to get comments on this approach now. Here's an example of the output of the virsh command added in this patch: virsh # guestinfo win7 users.count : 1 users.0.name : test users.0.domain : test-PC users.0.login_time : 1564664122706 os.id : mswindows os.name : Microsoft Windows os.pretty-name : Windows 7 Professional os.version : Microsoft Windows 77 os.version-id : os.machine : x86_64 os.variant : client os.variant-id : client os.kernel-release : 7601 os.kernel-version : 6.1 timezone.name : Central Daylight Time timezone.offset : -18000 hostname : TEST-PC Jonathon Jongsma (7): lib: add virDomainGetGuestInfo() remote: implement virDomainGetGuestInfo qemu_agent: add helper for getting guest users qemu_agent: add helper function for querying OS info qemu_agent: add helper for querying timezone info qemu: Implement virDomainGetGuestInfo() virsh: add 'guestinfo' command include/libvirt/libvirt-domain.h | 13 + src/driver-hypervisor.h | 8 + src/libvirt-domain.c | 105 ++++++++ src/libvirt_public.syms | 1 + src/qemu/qemu_agent.c | 190 +++++++++++++++ src/qemu/qemu_agent.h | 4 + src/qemu/qemu_driver.c | 77 ++++++ src/remote/remote_daemon_dispatch.c | 41 ++++ src/remote/remote_driver.c | 53 ++++ src/remote/remote_protocol.x | 21 +- src/remote_protocol-structs | 12 + tests/qemuagenttest.c | 366 ++++++++++++++++++++++++++++ tools/virsh-domain.c | 53 ++++ 13 files changed, 943 insertions(+), 1 deletion(-) -- 2.21.0 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list