On Wed, Sep 30, 2009 at 04:09:38PM +0100, Daniel P. Berrange wrote: > On Wed, Sep 30, 2009 at 04:37:46PM +0200, Daniel Veillard wrote: > > Hum, I'm not sure I follow, you would like to create a metadata > > container at the top level and put <description> in it ? The problem > > is that I don't see what else we could move there. > > Yes, like > > <domain> > <name>guest</name> > <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid> > <metadata> > <description>blah</description> > </metadata> > .... > > I didn't mean we should move any other elements - this is just to serve > as a container for future expansion > > Other example bits of information we could define metadata elements for > might be the operating system name, the person who created it, the > date on which it was created, the name of the appliance it was based > on, etc, etc. Okay, that makes sense and it's better to have the placeholder now than mess with different formats later. The trivial patch enclosed does this, thanks, 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/
diff --git a/docs/schemas/domain.rng b/docs/schemas/domain.rng index b1987e1..c972059 100644 --- a/docs/schemas/domain.rng +++ b/docs/schemas/domain.rng @@ -8,11 +8,19 @@ <include href='storageencryption.rng'/> <!-- - description element, maybe placed anywhere under the root + metadata element, maybe placed anywhere under the root + after name and uuid + Currently hold only a single description element but may + be extended in the future for more user related informations + not influencing the domain runtime definition --> - <define name="description"> - <element name="description"> - <text/> + <define name="metadata"> + <element name="metadata"> + <optional> + <element name="description"> + <text/> + </element> + </optional> </element> </define> @@ -25,7 +33,7 @@ <ref name="ids"/> <interleave> <optional> - <ref name="description"/> + <ref name="metadata"/> </optional> <ref name="os"/> <ref name="clock"/> diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 87e05c2..e12f6f8 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -2537,7 +2537,8 @@ static virDomainDefPtr virDomainDefParseXML(virConnectPtr conn, } /* Extract documentation if present */ - def->description = virXPathString(conn, "string(./description[1])", ctxt); + def->description = virXPathString(conn, + "string(./metadata/description[1])", ctxt); /* Extract domain memory */ if (virXPathULong(conn, "string(./memory[1])", ctxt, &def->maxmem) < 0) { @@ -4202,9 +4203,12 @@ char *virDomainDefFormat(virConnectPtr conn, virUUIDFormat(uuid, uuidstr); virBufferVSprintf(&buf, " <uuid>%s</uuid>\n", uuidstr); - if (def->description) - virBufferEscapeString(&buf, " <description>%s</description>\n", + if (def->description) { + virBufferAddLit(&buf, " <metadata>\n"); + virBufferEscapeString(&buf, " <description>%s</description>\n", def->description); + virBufferAddLit(&buf, " </metadata>\n"); + } virBufferVSprintf(&buf, " <memory>%lu</memory>\n", def->maxmem); virBufferVSprintf(&buf, " <currentMemory>%lu</currentMemory>\n",
-- Libvir-list mailing list Libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list