On Tue, 2010-05-25 at 15:26 +0100, Daniel P. Berrange wrote:
>
> virBufferAddLit(&xml, "<capabilities>\n\n");
> virBufferAddLit(&xml, " <host>\n");
> + virBufferVSprintf(&xml," <uuid>%s</uuid>\n",
host_uuid);
> virBufferAddLit(&xml, " <cpu>\n");
> virBufferVSprintf(&xml, " <arch>%s</arch>\n",
> caps->host.arch);
> Index: libvirt-acl/docs/schemas/capability.rng
> ===================================================================
> --- libvirt-acl.orig/docs/schemas/capability.rng
> +++ libvirt-acl/docs/schemas/capability.rng
> @@ -18,6 +18,9 @@
>
> <define name='hostcaps'>
> <element name='host'>
> + <element name='uuid'>
> + <ref name='UUID'/>
> + </element>
I've wrapped this in <optional>
OK, yes, this was too strict for the other platforms.
> Index: libvirt-acl/src/qemu/qemu_driver.c
> ===================================================================
> --- libvirt-acl.orig/src/qemu/qemu_driver.c
> +++ libvirt-acl/src/qemu/qemu_driver.c
> @@ -1334,6 +1334,11 @@ qemuCreateCapabilities(virCapsPtr oldcap
> caps->privateDataXMLFormat = qemuDomainObjPrivateXMLFormat;
> caps->privateDataXMLParse = qemuDomainObjPrivateXMLParse;
>
> + if (virGetHostUUID(caps->host.host_uuid)) {
> + qemuReportError(VIR_ERR_INTERNAL_ERROR,
> + "%s", _("cannot get the host uuid"));
> + goto err_exit;
> + }
>
> /* Security driver data */
> if (driver->securityPrimaryDriver) {
I've added this same code to the UML and LXC drivers.
We'll need a different solution for things like VMWare/VirtualBox/Phyp/etc,
so for now they don't get any host UUID in XML.
I don't think my new patch should cause any merge problems with
the VEPA patches, since my changes touched different code.
I tried it and there are no problems.
Daniel
[...]
#
# By default, no Username's are checked
sasl_allowed_username_list = [ "joe(a)EXAMPLE.COM", "fred(a)EXAMPLE.COM"
]
+# UUID of the host:
+# Provide the UUID of the host here in case the command
+# 'dmidecode -s system-uuid' does not provide a valid uuid. In case
+# 'dmidecode' does not provide a valid UUID and none is provided here, a
+# temporary UUID will be generated.
+# Keep the format of the example UUID below.
+host_uuid = "8510b1a1-1afa-4da6-8111-785fae202c1e"
ACK - I couldn't have done it better :-)
Stefan