Hi Eric,
On Thu, Oct 06, 2011 at 10:50:46AM -0600, Eric Blake wrote:
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.
I was uncertain about the error codes too, that's why I kept
VIR_ERR_INTERNAL_ERROR as used by other functions in this file. I'd
opt for VIR_ERR_CONF_SYNTAX.
-- Guido
ACK to the concept, once we decide on the correct error code.
--
Eric Blake eblake(a)redhat.com +1-801-349-2682
Libvirt virtualization library
http://libvirt.org