• E
    blockcopy: expose new API in virsh · c1d75dee
    Eric Blake 提交于
    Expose the new power of virDomainBlockCopy through virsh (well,
    all but the finer-grained bandwidth, as that is its own can of
    worms for a later patch).  Continue to use the older API where
    possible, for maximum compatibility.
    
    The command now requires either --dest (with optional --format
    and --blockdev), to directly describe the file destination, or
    --xml, to name a file that contains an XML description such as:
    
    <disk type='network'>
      <driver type='raw'/>
      <source protocol='gluster' name='vol1/img'>
        <host name='red'/>
      </source>
    </disk>
    
    [well, it may be a while before the qemu driver is actually patched
    to act on that particular xml beyond just parsing it, but the virsh
    interface won't need changing at that time]
    
    Non-zero option parameters are converted into virTypedParameters,
    and if anything requires the new API, the command can synthesize
    appropriate XML even if the --dest option was used instead of --xml.
    
    The existing --raw flag remains for back-compat, but the preferred
    spelling is now --format=raw, since the new API now allows us
    to specify all formats rather than just a boolean raw to suppress
    probing.
    
    I hope I did justice in describing the effects of granularity and
    buf-size on how they get passed through to qemu.
    
    * tools/virsh-domain.c (cmdBlockCopy): Add new options --xml,
    --granularity, --buf-size, --format. Make --raw an alias for
    --format=raw. Call new API if new parameters are in use.
    * tools/virsh.pod (blockcopy): Document new options.
    Signed-off-by: NEric Blake <eblake@redhat.com>
    c1d75dee
virsh-domain.c 339.6 KB