[libvirt] virsh vcpucount problem

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? -- Eric Blake eblake@redhat.com +1-801-349-2682 Libvirt virtualization library http://libvirt.org

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@redhat.com +1-801-349-2682 Libvirt virtualization library http://libvirt.org
participants (1)
-
Eric Blake