---
src/openvz/openvz_conf.c | 12 ++++++++++--
src/openvz/openvz_conf.h | 3 +++
src/openvz/openvz_driver.c | 16 ++++++++++------
3 files changed, 23 insertions(+), 8 deletions(-)
diff --git a/src/openvz/openvz_conf.c b/src/openvz/openvz_conf.c
index fde32ce..63663ab 100644
--- a/src/openvz/openvz_conf.c
+++ b/src/openvz/openvz_conf.c
@@ -174,6 +174,14 @@ static int openvzDefaultConsoleType(const char *ostype
ATTRIBUTE_UNUSED,
return VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_OPENVZ;
}
+
+virDomainXMLConfPtr
+openvzDomainXMLConfInit(void)
+{
+ return virDomainXMLConfNew(NULL, NULL);
+}
+
+
virCapsPtr openvzCapsInit(void)
{
virCapsPtr caps;
@@ -558,13 +566,13 @@ openvzFreeDriver(struct openvz_driver *driver)
if (!driver)
return;
+ virObjectUnref(driver->xmlconf);
virObjectUnref(driver->domains);
virObjectUnref(driver->caps);
VIR_FREE(driver);
}
-
int openvzLoadDomains(struct openvz_driver *driver) {
int veid, ret;
char *status;
@@ -648,7 +656,7 @@ int openvzLoadDomains(struct openvz_driver *driver) {
flags |= VIR_DOMAIN_OBJ_LIST_ADD_LIVE;
if (!(dom = virDomainObjListAdd(driver->domains,
- driver->caps,
+ driver->xmlconf,
def,
flags,
NULL)))
diff --git a/src/openvz/openvz_conf.h b/src/openvz/openvz_conf.h
index d7f21b3..87390a2 100644
--- a/src/openvz/openvz_conf.h
+++ b/src/openvz/openvz_conf.h
@@ -45,6 +45,7 @@ struct openvz_driver {
virMutex lock;
virCapsPtr caps;
+ virDomainXMLConfPtr xmlconf;
virDomainObjListPtr domains;
int version;
};
@@ -68,5 +69,7 @@ int openvzSetDefinedUUID(int vpsid, unsigned char *uuid);
unsigned int openvzGetNodeCPUs(void);
int openvzGetVEID(const char *name);
int openvzReadNetworkConf(virDomainDefPtr def, int veid);
+virDomainXMLConfPtr openvzDomainXMLConfInit(void);
+
#endif /* OPENVZ_CONF_H */
diff --git a/src/openvz/openvz_driver.c b/src/openvz/openvz_driver.c
index 3865206..f3c183d 100644
--- a/src/openvz/openvz_driver.c
+++ b/src/openvz/openvz_driver.c
@@ -955,8 +955,8 @@ openvzDomainDefineXML(virConnectPtr conn, const char *xml)
virDomainPtr dom = NULL;
openvzDriverLock(driver);
- if ((vmdef = virDomainDefParseString(driver->caps, xml,
- 1 << VIR_DOMAIN_VIRT_OPENVZ,
+ if ((vmdef = virDomainDefParseString(driver->caps, driver->xmlconf,
+ xml, 1 << VIR_DOMAIN_VIRT_OPENVZ,
VIR_DOMAIN_XML_INACTIVE)) == NULL)
goto cleanup;
@@ -968,7 +968,7 @@ openvzDomainDefineXML(virConnectPtr conn, const char *xml)
goto cleanup;
}
if (!(vm = virDomainObjListAdd(driver->domains,
- driver->caps,
+ driver->xmlconf,
vmdef, 0, NULL)))
goto cleanup;
vmdef = NULL;
@@ -1042,8 +1042,8 @@ openvzDomainCreateXML(virConnectPtr conn, const char *xml,
virCheckFlags(0, NULL);
openvzDriverLock(driver);
- if ((vmdef = virDomainDefParseString(driver->caps, xml,
- 1 << VIR_DOMAIN_VIRT_OPENVZ,
+ if ((vmdef = virDomainDefParseString(driver->caps, driver->xmlconf,
+ xml, 1 << VIR_DOMAIN_VIRT_OPENVZ,
VIR_DOMAIN_XML_INACTIVE)) == NULL)
goto cleanup;
@@ -1055,7 +1055,7 @@ openvzDomainCreateXML(virConnectPtr conn, const char *xml,
goto cleanup;
}
if (!(vm = virDomainObjListAdd(driver->domains,
- driver->caps,
+ driver->xmlconf,
vmdef,
VIR_DOMAIN_OBJ_LIST_ADD_CHECK_LIVE,
NULL)))
@@ -1453,6 +1453,9 @@ static virDrvOpenStatus openvzOpen(virConnectPtr conn,
if (!(driver->caps = openvzCapsInit()))
goto cleanup;
+ if (!(driver->xmlconf = openvzDomainXMLConfInit()))
+ goto cleanup;
+
if (openvzLoadDomains(driver) < 0)
goto cleanup;
@@ -2076,6 +2079,7 @@ openvzDomainUpdateDeviceFlags(virDomainPtr dom, const char *xml,
}
if (virDomainLiveConfigHelperMethod(driver->caps,
+ driver->xmlconf,
vm,
&flags,
&vmdef) < 0)
--
1.8.1.1