+Thu Jan 8 14:41:55 CET 2009 Guido Günther <agx@sigxcpu.org>
+
+ pass flags argument to all virDomain*DefParse* functions
+ * src/domain_conf.c (virDomainDiskDefParseXML,
+ virDomainFSDefParseXML, virDomainNetDefParseXML,
+ virDomainChrDefParseXML, virDomainSoundDefParseXML,
+ virDomainHostdevSubsysUsbDefParseXML, virDomainHostdevDefParseXML,
+ virDomainDefParseString): Add and pass on flags argument
+ * src/domain_conf.h (virDomainDeviceDefParse,
+ virDomainDefParseString): Add flags argument
+ * src/lxc_driver.c (lxcDomainDefine): Pass VIR_DOMAIN_XML_INACTIVE
+ * src/openvz_driver.c (openvzDomainDefineXML): Likewise
+ * src/qemu_driver.c (qemudDomainCreate, qemudDomainRestore,
+ qemudDomainDefine, qemudDomainAttachDevice): Likewise
+ * src/test.c (testOpenDefault, testDomainCreateXML, testDomainRestore,
+ testDomainDefineXML): Likewise
+ * src/uml_driver.c (umlDomainCreate, umlDomainDefine): Likewise
+ * src/xend_internal.c (xenDaemonCreateXML, xenDaemonDomainCreateXML):
+ Likewise
+ * tests/qemuxml2xmltest.c (testCompareXMLToXMLFiles): Likewise
+
Thu Jan 8 09:48:04 CET 2009 Daniel P. Berrange <berrange@redhat.com>
poll: don't return uninitialized
*/
static virDomainDiskDefPtr
virDomainDiskDefParseXML(virConnectPtr conn,
- xmlNodePtr node) {
+ xmlNodePtr node,
+ int flags ATTRIBUTE_UNUSED) {
virDomainDiskDefPtr def;
xmlNodePtr cur;
char *type = NULL;
*/
static virDomainFSDefPtr
virDomainFSDefParseXML(virConnectPtr conn,
- xmlNodePtr node) {
+ xmlNodePtr node,
+ int flags ATTRIBUTE_UNUSED) {
virDomainFSDefPtr def;
xmlNodePtr cur;
char *type = NULL;
static virDomainNetDefPtr
virDomainNetDefParseXML(virConnectPtr conn,
virCapsPtr caps,
- xmlNodePtr node) {
+ xmlNodePtr node,
+ int flags ATTRIBUTE_UNUSED) {
virDomainNetDefPtr def;
xmlNodePtr cur;
char *macaddr = NULL;
*/
static virDomainChrDefPtr
virDomainChrDefParseXML(virConnectPtr conn,
- xmlNodePtr node) {
+ xmlNodePtr node,
+ int flags ATTRIBUTE_UNUSED) {
xmlNodePtr cur;
char *type = NULL;
char *bindHost = NULL;
static virDomainInputDefPtr
virDomainInputDefParseXML(virConnectPtr conn,
const char *ostype,
- xmlNodePtr node) {
+ xmlNodePtr node,
+ int flags ATTRIBUTE_UNUSED) {
virDomainInputDefPtr def;
char *type = NULL;
char *bus = NULL;
static virDomainSoundDefPtr
virDomainSoundDefParseXML(virConnectPtr conn,
- const xmlNodePtr node) {
+ const xmlNodePtr node,
+ int flags ATTRIBUTE_UNUSED) {
char *model;
virDomainSoundDefPtr def;
static int
virDomainHostdevSubsysUsbDefParseXML(virConnectPtr conn,
const xmlNodePtr node,
- virDomainHostdevDefPtr def) {
+ virDomainHostdevDefPtr def,
+ int flags ATTRIBUTE_UNUSED) {
int ret = -1;
xmlNodePtr cur;
static virDomainHostdevDefPtr
virDomainHostdevDefParseXML(virConnectPtr conn,
- const xmlNodePtr node) {
+ const xmlNodePtr node,
+ int flags) {
xmlNodePtr cur;
virDomainHostdevDefPtr def;
if (xmlStrEqual(cur->name, BAD_CAST "source")) {
if (def->mode == VIR_DOMAIN_HOSTDEV_MODE_SUBSYS &&
def->source.subsys.type == VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_USB) {
- if (virDomainHostdevSubsysUsbDefParseXML(conn, cur, def) < 0)
+ if (virDomainHostdevSubsysUsbDefParseXML(conn, cur,
+ def, flags) < 0)
goto error;
}
if (def->mode == VIR_DOMAIN_HOSTDEV_MODE_SUBSYS &&
virDomainDeviceDefPtr virDomainDeviceDefParse(virConnectPtr conn,
virCapsPtr caps,
const virDomainDefPtr def,
- const char *xmlStr)
+ const char *xmlStr,
+ int flags)
{
xmlDocPtr xml;
xmlNodePtr node;
if (xmlStrEqual(node->name, BAD_CAST "disk")) {
dev->type = VIR_DOMAIN_DEVICE_DISK;
- if (!(dev->data.disk = virDomainDiskDefParseXML(conn, node)))
+ if (!(dev->data.disk = virDomainDiskDefParseXML(conn, node, flags)))
goto error;
} else if (xmlStrEqual(node->name, BAD_CAST "filesystem")) {
dev->type = VIR_DOMAIN_DEVICE_FS;
- if (!(dev->data.fs = virDomainFSDefParseXML(conn, node)))
+ if (!(dev->data.fs = virDomainFSDefParseXML(conn, node, flags)))
goto error;
} else if (xmlStrEqual(node->name, BAD_CAST "interface")) {
dev->type = VIR_DOMAIN_DEVICE_NET;
- if (!(dev->data.net = virDomainNetDefParseXML(conn, caps, node)))
+ if (!(dev->data.net = virDomainNetDefParseXML(conn, caps, node, flags)))
goto error;
} else if (xmlStrEqual(node->name, BAD_CAST "input")) {
dev->type = VIR_DOMAIN_DEVICE_INPUT;
- if (!(dev->data.input = virDomainInputDefParseXML(conn, def->os.type, node)))
+ if (!(dev->data.input = virDomainInputDefParseXML(conn, def->os.type,
+ node, flags)))
goto error;
} else if (xmlStrEqual(node->name, BAD_CAST "sound")) {
dev->type = VIR_DOMAIN_DEVICE_SOUND;
- if (!(dev->data.sound = virDomainSoundDefParseXML(conn, node)))
+ if (!(dev->data.sound = virDomainSoundDefParseXML(conn, node, flags)))
goto error;
} else if (xmlStrEqual(node->name, BAD_CAST "hostdev")) {
dev->type = VIR_DOMAIN_DEVICE_HOSTDEV;
- if (!(dev->data.hostdev = virDomainHostdevDefParseXML(conn, node)))
+ if (!(dev->data.hostdev = virDomainHostdevDefParseXML(conn, node, flags)))
goto error;
} else {
virDomainReportError(conn, VIR_ERR_XML_ERROR,
goto no_memory;
for (i = 0 ; i < n ; i++) {
virDomainDiskDefPtr disk = virDomainDiskDefParseXML(conn,
- nodes[i]);
+ nodes[i],
+ flags);
if (!disk)
goto error;
goto no_memory;
for (i = 0 ; i < n ; i++) {
virDomainFSDefPtr fs = virDomainFSDefParseXML(conn,
- nodes[i]);
+ nodes[i],
+ flags);
if (!fs)
goto error;
for (i = 0 ; i < n ; i++) {
virDomainNetDefPtr net = virDomainNetDefParseXML(conn,
caps,
- nodes[i]);
+ nodes[i],
+ flags);
if (!net)
goto error;
for (i = 0 ; i < n ; i++) {
virDomainChrDefPtr chr = virDomainChrDefParseXML(conn,
- nodes[i]);
+ nodes[i],
+ flags);
if (!chr)
goto error;
for (i = 0 ; i < n ; i++) {
virDomainChrDefPtr chr = virDomainChrDefParseXML(conn,
- nodes[i]);
+ nodes[i],
+ flags);
if (!chr)
goto error;
if ((node = virXPathNode(conn, "./devices/console[1]", ctxt)) != NULL) {
virDomainChrDefPtr chr = virDomainChrDefParseXML(conn,
- node);
+ node,
+ flags);
if (!chr)
goto error;
for (i = 0 ; i < n ; i++) {
virDomainInputDefPtr input = virDomainInputDefParseXML(conn,
def->os.type,
- nodes[i]);
+ nodes[i],
+ flags);
if (!input)
goto error;
for (i = 0 ; i < n ; i++) {
int collision = 0, j;
virDomainSoundDefPtr sound = virDomainSoundDefParseXML(conn,
- nodes[i]);
+ nodes[i],
+ flags);
if (!sound)
goto error;
if (n && VIR_ALLOC_N(def->hostdevs, n) < 0)
goto no_memory;
for (i = 0 ; i < n ; i++) {
- virDomainHostdevDefPtr hostdev = virDomainHostdevDefParseXML(conn, nodes[i]);
+ virDomainHostdevDefPtr hostdev = virDomainHostdevDefParseXML(conn,
+ nodes[i],
+ flags);
if (!hostdev)
goto error;
virDomainDefPtr virDomainDefParseString(virConnectPtr conn,
virCapsPtr caps,
- const char *xmlStr)
+ const char *xmlStr,
+ int flags)
{
xmlParserCtxtPtr pctxt;
xmlDocPtr xml = NULL;
goto cleanup;
}
- def = virDomainDefParseNode(conn, caps, xml, root,
- VIR_DOMAIN_XML_INACTIVE);
+ def = virDomainDefParseNode(conn, caps, xml, root, flags);
cleanup:
xmlFreeParserCtxt (pctxt);
virDomainDeviceDefPtr virDomainDeviceDefParse(virConnectPtr conn,
virCapsPtr caps,
const virDomainDefPtr def,
- const char *xmlStr);
+ const char *xmlStr,
+ int flags);
virDomainDefPtr virDomainDefParseString(virConnectPtr conn,
virCapsPtr caps,
- const char *xmlStr);
+ const char *xmlStr,
+ int flags);
virDomainDefPtr virDomainDefParseFile(virConnectPtr conn,
virCapsPtr caps,
const char *filename,
virDomainPtr dom = NULL;
lxcDriverLock(driver);
- if (!(def = virDomainDefParseString(conn, driver->caps, xml)))
+ if (!(def = virDomainDefParseString(conn, driver->caps, xml,
+ VIR_DOMAIN_XML_INACTIVE)))
goto cleanup;
if ((def->nets != NULL) && !(driver->have_netns)) {
virDomainPtr dom = NULL;
lxcDriverLock(driver);
- if (!(def = virDomainDefParseString(conn, driver->caps, xml)))
+ if (!(def = virDomainDefParseString(conn, driver->caps, xml,
+ VIR_DOMAIN_XML_INACTIVE)))
goto cleanup;
if ((def->nets != NULL) && !(driver->have_netns)) {
prog[0] = NULL;
openvzDriverLock(driver);
- if ((vmdef = virDomainDefParseString(conn, driver->caps, xml)) == NULL)
+ if ((vmdef = virDomainDefParseString(conn, driver->caps, xml,
+ VIR_DOMAIN_XML_INACTIVE)) == NULL)
goto cleanup;
if (vmdef->os.init == NULL &&
progcreate[0] = NULL;
openvzDriverLock(driver);
- if ((vmdef = virDomainDefParseString(conn, driver->caps, xml)) == NULL)
+ if ((vmdef = virDomainDefParseString(conn, driver->caps, xml,
+ VIR_DOMAIN_XML_INACTIVE)) == NULL)
goto cleanup;
if (vmdef->os.init == NULL &&
virDomainEventPtr event = NULL;
qemuDriverLock(driver);
- if (!(def = virDomainDefParseString(conn, driver->caps, xml)))
+ if (!(def = virDomainDefParseString(conn, driver->caps, xml,
+ VIR_DOMAIN_XML_INACTIVE)))
goto cleanup;
vm = virDomainFindByName(&driver->domains, def->name);
}
/* Create a domain from this XML */
- if (!(def = virDomainDefParseString(conn, driver->caps, xml))) {
+ if (!(def = virDomainDefParseString(conn, driver->caps, xml,
+ VIR_DOMAIN_XML_INACTIVE))) {
qemudReportError(conn, NULL, NULL, VIR_ERR_OPERATION_FAILED,
"%s", _("failed to parse XML"));
goto cleanup;
int newVM = 1;
qemuDriverLock(driver);
- if (!(def = virDomainDefParseString(conn, driver->caps, xml)))
+ if (!(def = virDomainDefParseString(conn, driver->caps, xml,
+ VIR_DOMAIN_XML_INACTIVE)))
goto cleanup;
vm = virDomainFindByName(&driver->domains, def->name);
goto cleanup;
}
- dev = virDomainDeviceDefParse(dom->conn,
- driver->caps,
- vm->def, xml);
+ dev = virDomainDeviceDefParse(dom->conn, driver->caps, vm->def, xml,
+ VIR_DOMAIN_XML_INACTIVE);
qemuDriverUnlock(driver);
if (dev == NULL)
goto cleanup;
goto cleanup;
}
- dev = virDomainDeviceDefParse(dom->conn, driver->caps, vm->def, xml);
+ dev = virDomainDeviceDefParse(dom->conn, driver->caps, vm->def, xml,
+ VIR_DOMAIN_XML_INACTIVE);
qemuDriverUnlock(driver);
if (dev == NULL)
goto cleanup;
}
/* Parse the domain XML. */
- if (!(def = virDomainDefParseString(dconn, driver->caps, dom_xml))) {
+ if (!(def = virDomainDefParseString(dconn, driver->caps, dom_xml,
+ VIR_DOMAIN_XML_INACTIVE))) {
qemudReportError (dconn, NULL, NULL, VIR_ERR_OPERATION_FAILED,
"%s", _("failed to parse XML"));
goto cleanup;
privconn->nextDomID = 1;
- if (!(domdef = virDomainDefParseString(conn, privconn->caps, defaultDomainXML)))
+ if (!(domdef = virDomainDefParseString(conn, privconn->caps,
+ defaultDomainXML,
+ VIR_DOMAIN_XML_INACTIVE)))
goto error;
if (!(domobj = virDomainAssignDef(conn, &privconn->domains, domdef))) {
virDomainDefFree(domdef);
virDomainObjPtr dom = NULL;
testDriverLock(privconn);
- if ((def = virDomainDefParseString(conn, privconn->caps, xml)) == NULL)
+ if ((def = virDomainDefParseString(conn, privconn->caps, xml,
+ VIR_DOMAIN_XML_INACTIVE)) == NULL)
goto cleanup;
if ((dom = virDomainAssignDef(conn, &privconn->domains,
xml[len] = '\0';
testDriverLock(privconn);
- def = virDomainDefParseString(conn, privconn->caps, xml);
+ def = virDomainDefParseString(conn, privconn->caps, xml,
+ VIR_DOMAIN_XML_INACTIVE);
if (!def)
goto cleanup;
virDomainObjPtr dom = NULL;
testDriverLock(privconn);
- if ((def = virDomainDefParseString(conn, privconn->caps, xml)) == NULL)
+ if ((def = virDomainDefParseString(conn, privconn->caps, xml,
+ VIR_DOMAIN_XML_INACTIVE)) == NULL)
goto cleanup;
if ((dom = virDomainAssignDef(conn, &privconn->domains,
virDomainPtr dom = NULL;
umlDriverLock(driver);
- if (!(def = virDomainDefParseString(conn, driver->caps, xml)))
+ if (!(def = virDomainDefParseString(conn, driver->caps, xml,
+ VIR_DOMAIN_XML_INACTIVE)))
goto cleanup;
vm = virDomainFindByName(&driver->domains, def->name);
virDomainPtr dom = NULL;
umlDriverLock(driver);
- if (!(def = virDomainDefParseString(conn, driver->caps, xml)))
+ if (!(def = virDomainDefParseString(conn, driver->caps, xml,
+ VIR_DOMAIN_XML_INACTIVE)))
goto cleanup;
if (!(vm = virDomainAssignDef(conn,
if (!(def = virDomainDefParseString(conn,
priv->caps,
- xmlDesc)))
+ xmlDesc,
+ VIR_DOMAIN_XML_INACTIVE)))
return (NULL);
if (!(sexpr = xenDaemonFormatSxpr(conn, def, priv->xendConfigVersion))) {
if (priv->xendConfigVersion < 3)
return(NULL);
- if (!(def = virDomainDefParseString(conn, priv->caps, xmlDesc))) {
+ if (!(def = virDomainDefParseString(conn, priv->caps, xmlDesc,
+ VIR_DOMAIN_XML_INACTIVE))) {
virXendError(conn, VIR_ERR_XML_ERROR,
"%s", _("failed to parse domain description"));
return (NULL);
if (virtTestLoadFile(xml, &xmlPtr, MAX_FILE) < 0)
goto fail;
- if (!(vmdef = virDomainDefParseString(NULL, driver.caps, xmlData)))
+ if (!(vmdef = virDomainDefParseString(NULL, driver.caps, xmlData,
+ VIR_DOMAIN_XML_INACTIVE)))
goto fail;
if (!(actual = virDomainDefFormat(NULL, vmdef, 0)))