On 07/13/2011 07:04 AM, Matthias Bolte wrote:
2011/7/8 Eric Blake <eblake(a)redhat.com>:
> * src/xenapi/xenapi_driver.c (xenapiOpen, xenapiDomainReboot)
> (xenapiDomainGetXMLDesc): Reject unknown flags.
> ---
> src/xenapi/xenapi_driver.c | 13 ++++++++++---
> 1 files changed, 10 insertions(+), 3 deletions(-)
> @@ -1309,6 +1314,8 @@ xenapiDomainGetXMLDesc(virDomainPtr dom, unsigned int flags
ATTRIBUTE_UNUSED)
> struct xen_vif_set *vif_set = NULL;
> char *xml;
>
> + virCheckFlags(0, NULL);
> +
> if (!xen_vm_get_by_name_label(session, &vms, dom->name)) return NULL;
> if (vms->size != 1) {
> xenapiSessionErrorHandler(dom->conn, VIR_ERR_INTERNAL_ERROR,
You found a bug, but made it worse instead of fixing it.
xenapiDomainGetXMLDesc should pass the flags to virDomainDefFormat
instead of passing 0.
ACK, with passing flags to virDomainDefFormat instead of ignoring it.
Pushed with this squashed in:
diff --git i/src/xenapi/xenapi_driver.c w/src/xenapi/xenapi_driver.c
index 5d5e810..aa616ca 100644
--- i/src/xenapi/xenapi_driver.c
+++ w/src/xenapi/xenapi_driver.c
@@ -1316,7 +1316,9 @@ xenapiDomainGetXMLDesc(virDomainPtr dom, unsigned
int flags)
struct xen_vif_set *vif_set = NULL;
char *xml;
- virCheckFlags(0, NULL);
+ virCheckFlags(VIR_DOMAIN_XML_SECURE |
+ VIR_DOMAIN_XML_INACTIVE |
+ VIR_DOMAIN_XML_UPDATE_CPU, NULL);
if (!xen_vm_get_by_name_label(session, &vms, dom->name)) return NULL;
if (vms->size != 1) {
@@ -1483,7 +1485,7 @@ xenapiDomainGetXMLDesc(virDomainPtr dom, unsigned
int flags)
xen_vif_set_free(vif_set);
}
if (vms) xen_vm_set_free(vms);
- xml = virDomainDefFormat(defPtr, 0);
+ xml = virDomainDefFormat(defPtr, flags);
virDomainDefFree(defPtr);
return xml;
--
Eric Blake eblake(a)redhat.com +1-801-349-2682
Libvirt virtualization library
http://libvirt.org