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(a)redhat.com +1-801-349-2682
Libvirt virtualization library
http://libvirt.org