<html dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style id="owaParaStyle" type="text/css">P {margin-top:0;margin-bottom:0;}</style>
</head>
<body ocsi="0" fpstyle="1">
<div style="direction: ltr;font-family: Tahoma;color: #000000;font-size: 10pt;">Hello everybody,<br>
<br>
the modification of the xml-decription of an vm is disabled in libvirt for the combination of xen/libvirt.<br>
The following patches will enabled it.<br>
<br>
a possible use case is the restore of a vm , whose virtuell disk is on an LVM, and it should use for the restore a snapshot of this LVM
<br>
<br>
<br>
all the best<br>
guido<br>
<br>
---<br>
src/libxl/libxl_domain.c | 14 +++++++++++---<br>
src/libxl/libxl_domain.h | 3 ++-<br>
src/libxl/libxl_driver.c | 9 +--------<br>
3 files changed, 14 insertions(+), 12 deletions(-)<br>
<br>
diff --git a/src/libxl/libxl_domain.c b/src/libxl/libxl_domain.c<br>
index 0e26b91..98992a5 100644<br>
--- a/src/libxl/libxl_domain.c<br>
+++ b/src/libxl/libxl_domain.c<br>
@@ -630,7 +630,8 @@ libxlDomainSaveImageOpen(libxlDriverPrivatePtr driver,<br>
libxlDriverConfigPtr cfg,<br>
const char *from,<br>
virDomainDefPtr *ret_def,<br>
- libxlSavefileHeaderPtr ret_hdr)<br>
+ libxlSavefileHeaderPtr ret_hdr,<br>
+ const char *xmlin )<br>
{<br>
int fd;<br>
virDomainDefPtr def = NULL;<br>
@@ -675,10 +676,17 @@ libxlDomainSaveImageOpen(libxlDriverPrivatePtr driver,<br>
goto error;<br>
}<br>
<br>
- if (!(def = virDomainDefParseString(xml, cfg->caps, driver->xmlopt,<br>
+ if (xmlin != NULL) {<br>
+ if (!(def = virDomainDefParseString(xmlin, cfg->caps, driver->xmlopt,<br>
+ VIR_DOMAIN_DEF_PARSE_INACTIVE |<br>
+ VIR_DOMAIN_DEF_PARSE_SKIP_VALIDATE)))<br>
+ goto error;<br>
+ } else {<br>
+ if (!(def = virDomainDefParseString(xml, cfg->caps, driver->xmlopt,<br>
VIR_DOMAIN_DEF_PARSE_INACTIVE |<br>
VIR_DOMAIN_DEF_PARSE_SKIP_VALIDATE)))<br>
goto error;<br>
+ }<br>
<br>
VIR_FREE(xml);<br>
<br>
@@ -1072,7 +1080,7 @@ libxlDomainStart(libxlDriverPrivatePtr driver,<br>
<br>
managed_save_fd = libxlDomainSaveImageOpen(driver, cfg,<br>
managed_save_path,<br>
- &def, &hdr);<br>
+ &def, &hdr, NULL);<br>
if (managed_save_fd < 0)<br>
goto cleanup;<br>
<br>
diff --git a/src/libxl/libxl_domain.h b/src/libxl/libxl_domain.h<br>
index af11a2c..863473d 100644<br>
--- a/src/libxl/libxl_domain.h<br>
+++ b/src/libxl/libxl_domain.h<br>
@@ -106,7 +106,8 @@ libxlDomainSaveImageOpen(libxlDriverPrivatePtr driver,<br>
libxlDriverConfigPtr cfg,<br>
const char *from,<br>
virDomainDefPtr *ret_def,<br>
- libxlSavefileHeaderPtr ret_hdr)<br>
+ libxlSavefileHeaderPtr ret_hdr,<br>
+ const char *xmlin)<br>
ATTRIBUTE_NONNULL(4) ATTRIBUTE_NONNULL(5);<br>
<br>
int<br>
diff --git a/src/libxl/libxl_driver.c b/src/libxl/libxl_driver.c<br>
index cb501cf..4683fe7 100644<br>
--- a/src/libxl/libxl_driver.c<br>
+++ b/src/libxl/libxl_driver.c<br>
@@ -1828,14 +1828,7 @@ libxlDomainRestoreFlags(virConnectPtr conn, const char *from,<br>
return -1;<br>
#endif<br>
<br>
- virCheckFlags(VIR_DOMAIN_SAVE_PAUSED, -1);<br>
- if (dxml) {<br>
- virReportError(VIR_ERR_ARGUMENT_UNSUPPORTED, "%s",<br>
- _("xml modification unsupported"));<br>
- return -1;<br>
- }<br>
-<br>
- fd = libxlDomainSaveImageOpen(driver, cfg, from, &def, &hdr);<br>
+ fd = libxlDomainSaveImageOpen(driver, cfg, from, &def, &hdr, dxml);<br>
if (fd < 0)<br>
goto cleanup;<br>
<br>
-- <br>
2.6.6<br>
<br>
</div>
<BR>
____________<BR>
Virus checked by G Data MailSecurity<BR>
Version: AVA 25.8250 dated 12.09.2016<BR>
Virus news: <a href="http://www.antiviruslab.com">www.antiviruslab.com</a><BR>
</body>
</html>