[et-mgmt-tools] Re: [PATCH] virt-install cli options for managed storage

Cole Robinson crobinso at redhat.com
Thu Aug 14 13:36:11 UTC 2008


Daniel P. Berrange wrote:
> On Tue, Aug 12, 2008 at 05:06:38PM -0400, Cole Robinson wrote:
>> Per Dan's advice, I've changed the previously proposed
>> virt-install cli options for specifying libvirt managed
>> storage.
>>
>> This patch does not change any possible semantics of
>> --file or --cdrom: they remain strictly for specifying
>> local media. In this way they are basically deprecated.
>>
>> A new cli option is added: --disk. The format is:
>>
>> --disk  path:///some/file/path[:device=cdrom|floppy][:permissions=ro|sh]
>> --disk  vol:///poolname/volname[:device=cdrom|floppy][:permissions=ro|sh]
>> --disk  pool:///poolname[:device=cdrom|floppy][:permissions=ro|sh]
>>
>> The changes from Dan's proposal are:
>>
>>  - use of path:/// instead of file:///, since this will
>>    hopefully clear up any confusion users previously had
>>    with specifying block devices.
>>  - For vol:///, I used / as a delimiter vs. ':' between
>>    the pool and vol name, to avoid any extra collisions
>>    (since I assume '/' is not part of a legal pool name).
>>  - Explictly list what type of extra option we are
>>    appending (device, permissions). This adds clarity
>>    to the command line, reduces chance of name collision,
>>    and is similar to the approach used by qemu.
>>
>> The --disk option is quite useful even for the local case,
>> since users can now add cdrom and floppy drives (and eventually
>> other device types) via the cli. This could also be expanded
>> to allow specifying file formats (qcow2, etc.) for creating
>> new storage.
>>
>> The other functionality change is that disk:/// can be used
>> to specify install media. If none of --pxe, --cdrom, or 
>> --location are specified, we look to see if a --disk 
>> device=cdrom was specified, and if so, use that for
>> installation. We can eventually expand this to allow
>> installing off floppies.
>>
>> One question: Is ':' an appropriate delimiter? qemu typically
>> uses ',' for these types of cli options. May be an arbitrary
>> choice, but perhaps someone has an opinion.
> 
> You could use ',', or we could use full URI syntax 
> 
>   vol:///poolname/volname?device=[cdrom|floppy][;permissions=ro|sh]
> 
> Separating params by a ';' or '&' - the former avoids shell
> metacharacter expansion
> 
> Daniel

I'm kind of leaning away from the URI syntax. Granted it is well
known, but requiring people to remember at least 4 special
delimiters ( type:///, ?, option=, ; or : or ,) seems a 
bit much. With the tab expansion issue as well, I think using
the qemu -drive syntax of just 'option=' with a ',' delimiter
is the way to go.

- Cole




More information about the et-mgmt-tools mailing list