On Tue, Nov 17, 2009 at 11:26:00AM +0000, Daniel P. Berrange wrote: > On Tue, Nov 17, 2009 at 12:16:11PM +0100, Daniel Veillard wrote: > > This fixes https://bugzilla.redhat.com/show_bug.cgi?id=504262 > > where the xen drivers happily allows to define domains with conflicting > > UUID. This is similar to the virDomainObjIsDuplicate check done in other > > drivers but the internal structures are different so this need to be > > done in a special way > > > > Author: Daniel Veillard <veillard@xxxxxxxxxx> > > Date: Tue Nov 17 12:06:46 2009 +0100 > > > > 504262 Check for duplicated UUID in XM Xen defines > > > > * src/xen/xm_internal.c: the XM driver was not checking for previously > > defined UUID on new defines. Similar to virDomainObjIsDuplicate() > > behaviour. > > > > diff --git a/src/xen/xm_internal.c b/src/xen/xm_internal.c > > index f833ce7..47bcc11 100644 > > --- a/src/xen/xm_internal.c > > +++ b/src/xen/xm_internal.c > > @@ -2623,6 +2623,26 @@ virDomainPtr xenXMDomainDefineXML(virConnectPtr conn, const char *xml) { > > return (NULL); > > } > > > > + /* > > + * check that if there is another domain defined with the same uuid > > + * it has the same name > > + */ > > + if ((entry = virHashSearch(priv->configCache, xenXMDomainSearchForUUID, > > + (const void *)&(def->uuid))) != NULL) { > > + if ((entry->def != NULL) && (entry->def->name != NULL) && > > + (STRNEQ(def->name, entry->def->name))) { > > + char uuidstr[VIR_UUID_STRING_BUFLEN]; > > + > > + virUUIDFormat(entry->def->uuid, uuidstr); > > + xenXMError(conn, VIR_ERR_OPERATION_FAILED, > > + _("domain '%s' is already defined with uuid %s"), > > + entry->def->name, uuidstr); > > + entry = NULL; > > + goto error; > > + } > > + entry = NULL; > > + } > > + > > if (virHashLookup(priv->nameConfigMap, def->name)) { > > /* domain exists, we will overwrite it */ > > > > > > ACK, though the indentation looks a little off here. yup some tabs got there, I fixed them before pushing, Daniel -- Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/ daniel@xxxxxxxxxxxx | Rpmfind RPM search engine http://rpmfind.net/ http://veillard.com/ | virtualization library http://libvirt.org/ -- Libvir-list mailing list Libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list