[libvirt] [[PATCHv2 3/2]] virsh: add --graceful switch to destroy command

Laine Stump laine at laine.org
Fri Feb 3 19:52:46 UTC 2012


On 02/03/2012 02:44 PM, Michal Privoznik wrote:
> On 03.02.2012 20:34, Laine Stump wrote:
>> This allows virsh to use the new VIR_DOMAIN_DESTROY_GRACEUL flag for
>> virDomainDestroyFlags.
>> ---
>> Okay, how about this one :-)
>>
>>   tools/virsh.c   |    9 ++++++++-
>>   tools/virsh.pod |    6 +++++-
>>   2 files changed, 13 insertions(+), 2 deletions(-)
>>
>> diff --git a/tools/virsh.c b/tools/virsh.c
>> index 42985a9..6a151e6 100644
>> --- a/tools/virsh.c
>> +++ b/tools/virsh.c
>> @@ -4264,6 +4264,7 @@ static const vshCmdInfo info_destroy[] = {
>>
>>   static const vshCmdOptDef opts_destroy[] = {
>>       {"domain", VSH_OT_DATA, VSH_OFLAG_REQ, N_("domain name, id or uuid")},
>> +    {"graceful", VSH_OT_BOOL, VSH_OFLAG_NONE, N_("needs rawio capability")},
>>       {NULL, 0, 0, NULL}
>>   };
>>
>> @@ -4273,6 +4274,7 @@ cmdDestroy(vshControl *ctl, const vshCmd *cmd)
>>       virDomainPtr dom;
>>       bool ret = true;
>>       const char *name;
>> +    int result;
> I tend to define unsigned flags = 0; here, even when they'll be used
> only for one flag right now, but it will simplify patches adding a new one.
>>
>>       if (!vshConnectionUsability(ctl, ctl->conn))
>>           return false;
>> @@ -4280,7 +4282,12 @@ cmdDestroy(vshControl *ctl, const vshCmd *cmd)
>>       if (!(dom = vshCommandOptDomain(ctl, cmd,&name)))
>>           return false;
>>
>> -    if (virDomainDestroy(dom) == 0) {
>> +    if (vshCommandOptBool(cmd, "graceful"))
>> +       result = virDomainDestroyFlags(dom, VIR_DOMAIN_DESTROY_GRACEFUL);
>> +    else
>> +       result = virDomainDestroy(dom);
>> +
>> +    if (result == 0) {
> So this chunk will look like:
>
> if (vshCommandOptBool(cmd, "graceful"))
>    flags |= VIR_DOMAIN_DESTROY_GRACEFUL;
>
> if (flags)
>    result = virDomainDestroyFlags(dom, flags);
> else
>    result = virDomainDestroy(dom);
>
> if (result == 0) {
>
> But this is not a show stopper for me.

Yeah, I agree, especially since we're likely to add another flag to 
virDomainDestroyFlags soon. I switched it back to having a flags 
variable, made sure it still worked, and pushed.

Thanks!




More information about the libvir-list mailing list