diff --git a/src/domain_conf.c b/src/domain_conf.c index f3e4c6c39c..10e6ac6183 100644 --- a/src/domain_conf.c +++ b/src/domain_conf.c @@ -2896,7 +2896,8 @@ static virDomainObjPtr virDomainObjParseXML(virConnectPtr conn, oldnode = ctxt->node; ctxt->node = config; - obj->def = virDomainDefParseXML(conn, caps, ctxt, 0); + obj->def = virDomainDefParseXML(conn, caps, ctxt, + VIR_DOMAIN_XML_INTERNAL_STATUS); ctxt->node = oldnode; if (!obj->def) goto error; @@ -4277,12 +4278,11 @@ int virDomainSaveStatus(virConnectPtr conn, const char *statusDir, virDomainObjPtr obj) { + int flags = VIR_DOMAIN_XML_SECURE|VIR_DOMAIN_XML_INTERNAL_STATUS; int ret = -1; char *xml; - if (!(xml = virDomainObjFormat(conn, - obj, - VIR_DOMAIN_XML_SECURE))) + if (!(xml = virDomainObjFormat(conn, obj, flags))) goto cleanup; if (virDomainSaveXML(conn, statusDir, obj->def, xml)) diff --git a/src/domain_conf.h b/src/domain_conf.h index 6e111fa24e..69b665f49f 100644 --- a/src/domain_conf.h +++ b/src/domain_conf.h @@ -33,6 +33,11 @@ #include "util.h" #include "threads.h" +/* Private component of virDomainXMLFlags */ +typedef enum { + VIR_DOMAIN_XML_INTERNAL_STATUS = (1<<16), /* dump internal domain status information */ +} virDomainXMLInternalFlags; + /* Different types of hypervisor */ /* NB: Keep in sync with virDomainVirtTypeToString impl */ enum virDomainVirtType { diff --git a/src/libvirt.c b/src/libvirt.c index 8ee7741a5f..7463c06f5c 100644 --- a/src/libvirt.c +++ b/src/libvirt.c @@ -2726,6 +2726,8 @@ virDomainGetXMLDesc(virDomainPtr domain, int flags) goto error; } + flags &= VIR_DOMAIN_XML_FLAGS_MASK; + if (conn->driver->domainDumpXML) { char *ret; ret = conn->driver->domainDumpXML (domain, flags); diff --git a/src/libvirt_internal.h b/src/libvirt_internal.h index 8800eb904d..6976f34657 100644 --- a/src/libvirt_internal.h +++ b/src/libvirt_internal.h @@ -24,6 +24,8 @@ #include "internal.h" +/* bits 16 and above of virDomainXMLFlags are for internal use */ +#define VIR_DOMAIN_XML_FLAGS_MASK 0xffff #ifdef WITH_LIBVIRTD int virStateInitialize(int privileged);