
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