[libvirt] [PATCHv3 02/12] virsh: add support for virConnectListAllDomains and clean up cmdList
Peter Krempa
pkrempa at redhat.com
Wed Jun 13 09:38:54 UTC 2012
On 06/11/12 22:16, Eric Blake wrote:
> On 06/11/2012 04:33 AM, Peter Krempa wrote:
>>
>> This patch makes use of the newly added api virConnectListAllDomains()
>> to list domains in virsh.
>>
>> Virsh now represents lists of domains using an internal structure
>> vshDomainList. This structure contains the virDomainPtr list as provided
>> by virConnectListAllDomains() and the count of domains in the list.
>>
>> For backwards compatiblity function vshDomList was added that tries to
>
> s/compatiblity/compatibility, the/
>
>> enumerate the domains using the new API and if the API is not supported
>> falls back to the older approach with the two list functions. The helper
>> function also simulates filtering by all currently supported flags added
>> with virConnectListAllDomains().
>>
>> This patch also cleans up the "list" command handler to use the new
>> helpers and adds new command line flags to make use of filtering.
>> ---
>> Diff to v2:
>> - moved this patch right after API implementation to make testing fallback easier
>> - added support for all filtering flags both in fallback code and in "list" command
>> - fixed messed up syntax check silencing :)
>> - fixed spelling errors but probably introduced a ton of new as I've added new docs
>> ---
>> tools/virsh.c | 555 ++++++++++++++++++++++++++++++++++++++-----------------
>> tools/virsh.pod | 91 +++++++---
>> 2 files changed, 449 insertions(+), 197 deletions(-)
>
> This turned into a rather large patch; I'm not sure if it is worth
> trying to subdivide it at all, but in the interest of getting this in
> sooner rather than later, I'll go ahead and review it as-is.
>
>
> I'm not sure if VIR_SHRINK_N does any better here, but what you have works.
Well, VIR_SHRINK_N takes number of elements to remove from the end but
VIR_REALLOC_N takes the desired new size, so it was more intuitive to
use REALLOC. but VIR_SHRINK_N(doms, ndoms, ndoms-count) looks okay too.
>
>> +
>> + domlist->domains = doms;
>> + domlist->ndomains = count;
>> + doms = NULL;
>> +
>
> I'd word this paragraph as:
>
> When talking to older servers, this command is forced to use a series of
> API calls with an inherent race, where a domain might not be listed or
> might appear more than once if it changed state between calls while the
> list was being collected. Newer servers do not have this problem.
>
> Getting closer. Do you need me to post my suggested improvements as a
> v4, or are you comfortable respinning this one?
I'll do the respin. Thanks for the suggestions.
Peter
More information about the libvir-list
mailing list