On Tue, Jan 13, 2015 at 14:13:19 +0000, Daniel Berrange wrote: > On Tue, Jan 13, 2015 at 03:05:48PM +0100, Jiri Denemark wrote: > > On Thu, Jan 08, 2015 at 15:48:20 +0000, Daniel Berrange wrote: > > > The virDomainDefParse* and virDomainDefFormat* methods both > > > accept the VIR_DOMAIN_XML_* flags defined in the public API, > > > along with a set of other VIR_DOMAIN_XML_INTERNAL_* flags > > > defined in domain_conf.c. > > > > > > This is seriously confusing & error prone for a number of > > > reasons: > > > > > > - VIR_DOMAIN_XML_SECURE, VIR_DOMAIN_XML_MIGRATABLE and > > > VIR_DOMAIN_XML_UPDATE_CPU are only relevant for the > > > formatting operation > > > - Some of the VIR_DOMAIN_XML_INTERNAL_* flags only apply > > > to parse or to format, but not both. > > > > > > This patch cleanly separates out the flags. There are two > > > distint VIR_DOMAIN_DEF_PARSE_* and VIR_DOMAIN_DEF_FORMAT_* > > > flags that are used by the corresponding methods. The > > > VIR_DOMAIN_XML_* flags received via public API calls must > > > be converted to the VIR_DOMAIN_DEF_FORMAT_* flags where > > > needed. > > > > > > The various calls to virDomainDefParse which hardcoded the > > > use of the VIR_DOMAIN_XML_INACTIVE flag change to use the > > > VIR_DOMAIN_DEF_PARSE_INACTIVE flag. > > ... ... > > > @@ -2160,7 +2162,8 @@ qemuDomainSnapshotWriteMetadata(virDomainObjPtr vm, > > > > > > virUUIDFormat(vm->def->uuid, uuidstr); > > > newxml = virDomainSnapshotDefFormat(uuidstr, snapshot->def, > > > - QEMU_DOMAIN_FORMAT_LIVE_FLAGS, 1); > > > + VIR_DOMAIN_DEF_FORMAT_SECURE | > > > + VIR_DOMAIN_DEF_FORMAT_UPDATE_CPU, 1); > > > > What about > > virDomainDefFormatConvertXMLFlags(QEMU_DOMAIN_FORMAT_LIVE_FLAGS) to make > > sure we still use the right flags in case QEMU_DOMAIN_FORMAT_LIVE_FLAGS > > is ever changed? > > QEMU_DOMAIN_FORMAT_LIVE_FLAGS uses the VIR_DOMAIN_XML flags from the > public API, whereas this method needs to use the internal flags. Exactly, that's why I suggested to use virDomainDefFormatConvertXMLFlags to convert them instead of hardcoding the result of this conversion. Jirka -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list