[libvirt] virsh vcpucount problem

Eric Blake eblake at redhat.com
Mon Jul 18 17:13:37 UTC 2011


On 07/15/2011 05:20 PM, Eric Blake wrote:
> Right now, 'virsh vcpucount' understands --current differently than all
> other commands that understand --current. That is, --current is not a
> synonym for whichever of --live or --config matches the current domain
> state, but a counterpart of --maximum.
>
> I'm about to teach VIR_AFFECT_CURRENT to the virDomainGetVcpusFlags
> command. Do we fix 'virsh vcpucount --current' to map to this new flag
> and come up with a new option that means the opposite of --maximum, or
> do we just leave the virsh interface stuck the way it is?

I thought some more about this.  What if we introduce a new flag while 
providing backwards compatibility with the old usage?

For a refresher, the old usage is:

vcpucount (no flags) - okay, prints all possible counts

vcpucount --maximum --live - okay, prints maximum vcpus for running domain
vcpucount --maximum --config - okay, prints maximum vcpus for inactive xml
vcpucount --current --live - okay, prints active vcpus for running domain
vcpucount --current --config - okay, prints active vcpus for inactive xml

vcpucount --maximum - error, missing --config or --live
vcpucount --current - error, missing --config or --live
vcpucount --live - error, missing --maximum or --current
vcpucount --config - error, missing --maximum or --current

vcpucount --maximum --current - error, can't combine --maximum and --current
vcpucount --live --config - error, can't combine --live and --config

The proposed new usage would be documented:

vcpucount <domain> [{--maximum | --active} {--current | --config | --live}]

that is, if any flags are present, then either --maximum or --active 
must be specified (to list the max vcpu or the active vcpu count), and 
either --current, --config, or --live must be specified (with --current 
gaining its traditional semantics as used in other virsh commands).

We can always tell the two cases apart.  '--maximum --current' would no 
longer be an error, but be the new syntax.  '--current --live' and 
'--current --config' would continue to work as the old syntax, but the 
new preferred spelling for the same command would be '--active --live' 
and '--active --config'.  Any use of exactly 1 or more than 2 flags 
continues to be an error.

Any problems with this approach?

-- 
Eric Blake   eblake at redhat.com    +1-801-349-2682
Libvirt virtualization library http://libvirt.org




More information about the libvir-list mailing list