[libvirt] [PATCH] caps: Improve error if passed an unknown arch

Cole Robinson crobinso at redhat.com
Wed Feb 22 14:52:52 UTC 2012


On 02/20/2012 05:55 PM, Eric Blake wrote:
> On 02/20/2012 11:54 AM, Cole Robinson wrote:
>> Previously we would have:
>>
>> "os type 'hvm' & arch 'idontexist' combination is not supported"
>>
>> Now we get
>>
>> "No guest options available for arch 'idontexist'"
>>
>> or if options available but guest OS type not applicable:
>>
>> "No os type 'xen' available for arch 'x86_64'"
> 
> Looks nicer.
> 
>> ---
>>  src/conf/capabilities.c |   28 ++++++++++++++++++++++++----
>>  src/conf/capabilities.h |    9 ++++++---
>>  src/conf/domain_conf.c  |   13 +++++++++++--
>>  3 files changed, 41 insertions(+), 9 deletions(-)
>>
>> diff --git a/src/conf/capabilities.c b/src/conf/capabilities.c
>> index d44ce1b..542bf03 100644
>> --- a/src/conf/capabilities.c
>> +++ b/src/conf/capabilities.c
>> @@ -497,6 +497,26 @@ virCapabilitiesAddGuestFeature(virCapsGuestPtr guest,
>>      return NULL;
>>  }
>>  
>> +/**
>> + * virCapabilitiesSupportsGuestArch:
>> + * @caps: capabilities to query
>> + * @arch: Architecture to search for (eg, 'i686', 'x86_64')
>> + *
>> + * Returns non-zero if the capabilities support the
>> + * requested architecture
>> + */
>> +extern int
>> +virCapabilitiesSupportsGuestArch(virCapsPtr caps,
>> +                                 const char *arch)
>> +{
>> +    int i;
>> +    for (i = 0 ; i < caps->nguests ; i++) {
>> +        if (STREQ(caps->guests[i]->arch.name, arch))
>> +            return 1;
>> +    }
>> +    return 0;
> 
> Given how you are using this, I'd rather see it with a return type of
> 'bool', and return true or false in the method.
> 
>> @@ -529,9 +549,9 @@ virCapabilitiesSupportsGuestOSType(virCapsPtr caps,
>>   * requested operating system type
>>   */
>>  extern int
>> -virCapabilitiesSupportsGuestArch(virCapsPtr caps,
>> -                                 const char *ostype,
>> -                                 const char *arch)
>> +virCapabilitiesSupportsGuestOSTypeArch(virCapsPtr caps,
>> +                                       const char *ostype,
>> +                                       const char *arch)
>>  {
> 
> Then again, you were just copying existing style, so maybe we should
> update this whole file to use bool where appropriate, which would imply
> doing it as a separate patch.
> 
> So, I guess that means I've effectively given:
> 
> ACK.
> 

Thanks, pushed (on Monday, just forgot to mail).

- Cole




More information about the libvir-list mailing list