xen-xm: Generate UUID if not specified

Parsing xen-xm format configuration will fail if UUID is not
specified, e.g.

virsh domxml-from-native xen-xm some-config-without-uuid
error: internal error parsing xm config failed

Initially I thought to skip parsing the UUID in xenParseXM() when
not present in the configuration, but this results in a UUID of
all zeros since it is never set

virsh domxml-from-native xen-xm /tmp/jim/bug-773621_pierre-test
<domain type='xen'>
  <name>test</name>
  <uuid>00000000-0000-0000-0000-000000000000</uuid>
  ...

which certainly can't be correct since this is the UUID the xen
tools use for dom0.

This patch takes the approach of generating a UUID when it is not
specified in the configuration.
This commit is contained in:
Jim Fehlig 2012-08-03 15:10:13 -06:00
parent 45edefc7a7
commit 1fbdfc53be

View File

@ -214,9 +214,13 @@ static int xenXMConfigGetUUID(virConfPtr conf, const char *name, unsigned char *
}
if (!(val = virConfGetValue(conf, name))) {
virReportError(VIR_ERR_CONF_SYNTAX,
_("config value %s was missing"), name);
return -1;
if (virUUIDGenerate(uuid)) {
virReportError(VIR_ERR_INTERNAL_ERROR,
"%s", _("Failed to generate UUID"));
return -1;
} else {
return 0;
}
}
if (val->type != VIR_CONF_STRING) {