[libvirt] [PATCH 1/2] xen: add error handling to UUID parsing

Eric Blake eblake at redhat.com
Thu Oct 6 16:50:46 UTC 2011


On 10/06/2011 03:15 AM, Guido Günther wrote:
> otherwise a missing UUID in a domain config just shows:
>
> libxlDomainXMLFromNative:2600 : Internal Error parsing xm config failed
>
> Now we have:
>
> xenXMConfigGetUUID:186 : Internal Error config value uuid was missing

Still doesn't sound quite right - it's not an internal error (where 
libvirt has gotten internal logic wrong) so much as a user-supplied data 
validation error.

> +    if (val->type != VIR_CONF_STRING) {
> +        XENXS_ERROR(VIR_ERR_INTERNAL_ERROR,
> +                   _("config value %s not a string"), name);
> +        return -1;
> +    }
> +
> +    if (!val->str) {
> +        XENXS_ERROR(VIR_ERR_INTERNAL_ERROR,
> +                   _("%s can't be empty"), name);
> +        return -1;
> +    }
>
> -    if (virUUIDParse(val->str, uuid)<  0)
> -        return (-1);
> +    if (virUUIDParse(val->str, uuid)<  0) {
> +        XENXS_ERROR(VIR_ERR_INTERNAL_ERROR,
> +                   _("%s not parseable"), val->str);

These three errors should probably all be changed away from 
VIR_ERR_INTERNAL_ERROR into something more useful, but I'm not sure 
whether that would be VIR_ERR_CONF_SYNTAX, VIR_ERR_CONFIG_UNSUPPORTED, 
or something else.

ACK to the concept, once we decide on the correct error code.

-- 
Eric Blake   eblake at redhat.com    +1-801-349-2682
Libvirt virtualization library http://libvirt.org




More information about the libvir-list mailing list