[libvirt] [PATCH v4 6/6] undefine: Extend virsh undefine to support the new flag

Osier Yang jyang at redhat.com
Wed Jul 20 03:17:17 UTC 2011


于 2011年07月19日 23:54, Eric Blake 写道:
> On 07/19/2011 09:57 AM, Osier Yang wrote:
>> If the domain has managed save image, and --managed-save is
>> not specified, then it fails with an error telling the user
>> that a managed save image still exists.
>>
>> If the domain has managed save image, and --managed-save is
>> specified, it invokes virDomainUndefineFlags. If
>> virDomainUndefineFlags fails, then it tries to remove the managed
>> save image using virDomainManagedSaveRemove first, with
>> invoking virDomainUndefine following. (For compatibility between
>> new virsh with this patch and older libvirt without this patch).
>>
>> Similarly if the domain has no managed save image. See the codes for
>> detail.
>>
>> NOTE: Have not removing the codes checking if the domain is running
>> in function "cmdUndefine", it will go along with qemu driver's fix
>> (allow to undefine a running domain).
>> ---
>>   tools/virsh.c   |   61 
>> ++++++++++++++++++++++++++++++++++++++++++++++++++++++-
>>   tools/virsh.pod |   14 ++++++++++--
>>   2 files changed, 71 insertions(+), 4 deletions(-)
>>
>
>> +    } else {
>> +        rc = virDomainUndefineFlags(dom, flags);
>> +
>> +        /* It might fail for virDomainUndefineFlags is not
>
> s/for/when/
>
>> +         * supported on older libvirt, try to undefine the
>> +         * domain with combo virDomainManagedSaveRemove and
>> +         * virDomainUndefine.
>> +         */
>> +        if (rc<  0) {
>> +            if (last_error->code != VIR_ERR_NO_SUPPORT) {
>> +                virshReportError(ctl);
>> +                goto end;
>> +            } else {
>> +                virFreeError(last_error);
>> +                last_error = NULL;
>> +            }
>> +
>> +            if (has_managed_save&&
>
> s/has_managed_save/has_managed_save == 1/
>
> Your earlier changes mean that you can now get here even while 
> has_managed_save == -1 because the hypervisors lacks managed save 
> support altogether, in which case, the virDomainManagedSaveRemove will 
> also fail for unsupported, but the plain undefine is safe in that case.
>
> ACK with those changes.
>

Thanks for the reviewing, pushed the whole series with the small nits fixed,
([PATCH v4 5/6] is pushed as is).

Regards
Osier




More information about the libvir-list mailing list