Now that we generate pr-manger alias and socket path store them
in status XML so that they are preserved across daemon restarts.
Signed-off-by: Michal Privoznik
---
src/qemu/qemu_domain.c | 72 --
1 file changed, 70 insertions(+), 2 deletions(-)
diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
index e8d2adf56..97996b053 100644
--- a/src/qemu/qemu_domain.c
+++ b/src/qemu/qemu_domain.c
@@ -2449,6 +2449,74 @@ qemuDomainObjPrivateXMLParse(xmlXPathContextPtr ctxt,
}
+static int
+qemuStorageSourcePrivateDataParsePR(xmlXPathContextPtr ctxt,
+virStorageSourcePtr src)
+{
+qemuDomainStorageSourcePrivatePtr srcPriv;
+
+if (!src->pr ||
+src->pr->enabled != VIR_TRISTATE_BOOL_YES)
+return 0;
+
+if (!src->privateData &&
+!(src->privateData = qemuDomainStorageSourcePrivateNew()))
+return -1;
+
+srcPriv = QEMU_DOMAIN_STORAGE_SOURCE_PRIVATE(src);
+
+if (!(srcPriv->prAlias = virXPathString("string(./prAlias)", ctxt)))
+return -1;
+
+return 0;
+}
+
+
+static int
+qemuStorageSourcePrivateDataFormatPR(virStorageSourcePtr src,
+ virBufferPtr buf)
+{
+qemuDomainStorageSourcePrivatePtr srcPriv;
+
+if (!src->pr ||
+src->pr->enabled != VIR_TRISTATE_BOOL_YES)
+return 0;
+
+srcPriv = QEMU_DOMAIN_STORAGE_SOURCE_PRIVATE(src);
+
+virBufferAsprintf(buf, "%s\n", srcPriv->prAlias);
+return 0;
+}
+
+
+static int
+qemuStorageSourcePrivateDataParse(xmlXPathContextPtr ctxt,
+ virStorageSourcePtr src)
+{
+if (virStorageSourcePrivateDataParseRelPath(ctxt, src) < 0)
+return -1;
+
+if (qemuStorageSourcePrivateDataParsePR(ctxt, src) < 0)
+return -1;
+
+return 0;
+}
+
+
+static int
+qemuStorageSourcePrivateDataFormat(virStorageSourcePtr src,
+ virBufferPtr buf)
+{
+if (virStorageSourcePrivateDataFormatRelPath(src, buf) < 0)
+return -1;
+
+if (qemuStorageSourcePrivateDataFormatPR(src, buf) < 0)
+return -1;
+
+return 0;
+}
+
+
virDomainXMLPrivateDataCallbacks virQEMUDriverPrivateDataCallbacks = {
.alloc = qemuDomainObjPrivateAlloc,
.free = qemuDomainObjPrivateFree,
@@ -2457,8 +2525,8 @@ virDomainXMLPrivateDataCallbacks
virQEMUDriverPrivateDataCallbacks = {
.chrSourceNew = qemuDomainChrSourcePrivateNew,
.parse = qemuDomainObjPrivateXMLParse,
.format = qemuDomainObjPrivateXMLFormat,
-.storageParse = virStorageSourcePrivateDataParseRelPath,
-.storageFormat = virStorageSourcePrivateDataFormatRelPath,
+.storageParse = qemuStorageSourcePrivateDataParse,
+.storageFormat = qemuStorageSourcePrivateDataFormat,
};
--
2.13.6
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list