From: Michal Privoznik <mprivozn@redhat.com>
The chDomainGetXMLDesc() function claims to support
VIR_DOMAIN_XML_INACTIVE to obtain the persistent definition of a
running domain (in its call to virCheckFlags()) but in fact, it's
always passing vm->def to virDomainDefFormat().
So far, there's no harm done because CH driver never sets domain
def as transient. But that'll change.
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
---
src/ch/ch_driver.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/src/ch/ch_driver.c b/src/ch/ch_driver.c
index ad13306c4c..8ec90e1192 100644
--- a/src/ch/ch_driver.c
+++ b/src/ch/ch_driver.c
@@ -1277,6 +1277,7 @@ static char *chDomainGetXMLDesc(virDomainPtr dom,
{
virCHDriver *driver = dom->conn->privateData;
virDomainObj *vm;
+ virDomainDef *def;
char *ret = NULL;
virCheckFlags(VIR_DOMAIN_XML_COMMON_FLAGS, NULL);
@@ -1287,7 +1288,13 @@ static char *chDomainGetXMLDesc(virDomainPtr dom,
if (virDomainGetXMLDescEnsureACL(dom->conn, vm->def, flags) < 0)
goto cleanup;
- ret = virDomainDefFormat(vm->def, driver->xmlopt,
+ if ((flags & VIR_DOMAIN_XML_INACTIVE) && vm->newDef) {
+ def = vm->newDef;
+ } else {
+ def = vm->def;
+ }
+
+ ret = virDomainDefFormat(def, driver->xmlopt,
virDomainDefFormatConvertXMLFlags(flags));
cleanup:
--
2.51.0