
On 01/09/2012 07:29 AM, Osier Yang wrote:
---
More details in the commit message might be nice.
src/conf/domain_conf.c | 70 ++++++++++++++++++++++++++++++++++++++++++++++ src/conf/domain_conf.h | 2 + src/libvirt_private.syms | 1 + 3 files changed, 73 insertions(+), 0 deletions(-)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 0190a81..f0ed479 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -11832,6 +11832,76 @@ virDomainDefFormat(virDomainDefPtr def, unsigned int flags) return virBufferContentAndReset(&buf); }
+char * +virDomainDeviceDefFormat(virDomainDeviceDefPtr dev, unsigned int flags) +{ + virBuffer buf = VIR_BUFFER_INITIALIZER; + + virCheckFlags(DUMPXML_FLAGS, NULL); + + switch(dev->type) { + case VIR_DOMAIN_DEVICE_DISK: + if (virDomainDiskDefFormat(&buf, dev->data.disk, flags) < 0) + goto cleanup; + break; + case VIR_DOMAIN_DEVICE_LEASE: + if (virDomainLeaseDefFormat(&buf, dev->data.lease) < 0) + goto cleanup; + break;
ACK - this looks like a useful helper method for implementing _part_ of the new functionality. But if you make things more generic, you probably also want a helper function at a higher level that delegates between domain_conf.c, interface_conf.c, and so forth, all according to the type parameter tied to the XML being normalized. -- Eric Blake eblake@redhat.com +1-919-301-3266 Libvirt virtualization library http://libvirt.org