On 19.11.2014 23:58, John Ferlan wrote:
On 11/17/2014 06:26 PM, Tomoki Sekiyama wrote:
> Hi,
>
> This is v2 of patchset to add virDomainGetFSInfo API.
>
> * changes in v1->v2:
> -[all] removed redundant NULL element at the last of returned info array
> -[3/5] make error messages in qemu_agent.c consistent with other commands
> -[4/5] added a test case for 2 items in info->devAliases
> -[5/5] added a pod document for virsh domfsinfo command
> (v1:
http://www.redhat.com/archives/libvir-list/2014-October/msg00001.html )
>
> * summary
> This series implements a new virDomainGetFSInfo API, that returns a list of
> mounted filesystems information in the guest, collected via the guest agent.
>
> The returned info contains mountpoints and disk device alias named in
> libvirt, so we can know which mountpoints should be frozen by
> virDomainFSFreeze to take snapshots of a part of disks.
>
> ---
> Tomoki Sekiyama (5):
> Implement public API for virDomainGetFSInfo
> remote: Implement the remote protocol for virDomainGetFSInfo
> qemu: Implement the qemu driver for virDomainGetFSInfo
> qemu: add test for qemuAgentGetFSInfo
> virsh: expose virDomainGetFSInfo
>
>
> daemon/remote.c | 117 ++++++++++++++++++++
> include/libvirt/libvirt-domain.h | 21 ++++
> src/conf/domain_conf.c | 71 ++++++++++++
> src/conf/domain_conf.h | 6 +
> src/driver-hypervisor.h | 6 +
> src/libvirt.c | 66 +++++++++++
> src/libvirt_private.syms | 1
> src/libvirt_public.syms | 6 +
> src/qemu/qemu_agent.c | 178 ++++++++++++++++++++++++++++++
> src/qemu/qemu_agent.h | 2
> src/qemu/qemu_driver.c | 48 ++++++++
> src/remote/remote_driver.c | 92 ++++++++++++++++
> src/remote/remote_protocol.x | 32 +++++
> src/remote_protocol-structs | 21 ++++
> src/rpc/gendispatch.pl | 1
> tests/Makefile.am | 1
> tests/qemuagentdata/qemuagent-fsinfo.xml | 39 +++++++
> tests/qemuagenttest.c | 143 ++++++++++++++++++++++++
> tools/virsh-domain.c | 74 ++++++++++++
> tools/virsh.pod | 9 ++
> 20 files changed, 933 insertions(+), 1 deletion(-)
> create mode 100644 tests/qemuagentdata/qemuagent-fsinfo.xml
>
> --
>
> Tomoki Sekiyama
>
I reviewed the 'libvirt' specific changes - had a few comments and have
made changes to my review branch as specified. As long as you're OK
with those changes I will get these pushed.
I'm also hoping someone else (eblake?) can look at the remote_protocol.x
changes to ensure they encompass everything they are supposed to. Also
that the usage of QEMU_JOB_QUERY not _MODIFY for the GetFSInfo seems
more appropriate and is in line with the various remote_protocol.x
settings (@acl/@generate stuff settings).
@generate is correct, since both, client and server implementations are
provided.
@acl looks consistent to the rest. Correct, for querying domain info you
need to have read permission and that's it.
And yes, the job should be _QUERY since we are querying info, not
modifying domain in any way.
However, for some reason I see this build error after 2/5:
make[3]: Entering directory
'/home/zippy/work/libvirt/libvirt.git/tools/wireshark/src'
CC libvirt_la-packet-libvirt.lo
In file included from libvirt/protocol.h:5:0,
from packet-libvirt.h:112,
from packet-libvirt.c:36:
./libvirt/remote.h: In function 'dissect_xdr_remote_typed_param_value':
./libvirt/remote.h:470:5: error: unknown type name 'remote_nonnull_string'
remote_nonnull_string type = 0;
^
./libvirt/remote.h:473:5: warning: implicit declaration of function
'xdr_remote_nonnull_string' [-Wimplicit-function-declaration]
if (!xdr_remote_nonnull_string(xdrs, &type))
^
Makefile:1934: recipe for target 'libvirt_la-packet-libvirt.lo' failed
make[3]: *** [libvirt_la-packet-libvirt.lo] Error 1
Michal
Michal