mirror of
https://github.com/libvirt/libvirt.git
synced 2025-02-25 18:55:26 -06:00
test: Support loading node device info from file/XML
Also add some XML examples. Signed-off-by: Cole Robinson <crobinso@redhat.com>
This commit is contained in:
parent
7165bef132
commit
e22f2f5c9c
16
examples/xml/test/testdev.xml
Normal file
16
examples/xml/test/testdev.xml
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
<device>
|
||||||
|
<name>File_test_device</name>
|
||||||
|
<capability type='system'>
|
||||||
|
<hardware>
|
||||||
|
<vendor>Libvirt</vendor>
|
||||||
|
<version>Test driver</version>
|
||||||
|
<serial>123456</serial>
|
||||||
|
<uuid>11111111-2222-3333-4444-555555555555</uuid>
|
||||||
|
</hardware>
|
||||||
|
<firmware>
|
||||||
|
<vendor>Libvirt</vendor>
|
||||||
|
<version>Test Driver</version>
|
||||||
|
<release_date>01/22/2007</release_date>
|
||||||
|
</firmware>
|
||||||
|
</capability>
|
||||||
|
</device>
|
@ -14,6 +14,7 @@
|
|||||||
<pool file="testpool.xml">
|
<pool file="testpool.xml">
|
||||||
<volume file="testvol.xml"/>
|
<volume file="testvol.xml"/>
|
||||||
</pool>
|
</pool>
|
||||||
|
<device file="testdev.xml"/>
|
||||||
|
|
||||||
<cpu>
|
<cpu>
|
||||||
<mhz>6000</mhz>
|
<mhz>6000</mhz>
|
||||||
|
@ -97,6 +97,25 @@
|
|||||||
</dhcp>
|
</dhcp>
|
||||||
</ip>
|
</ip>
|
||||||
</network>
|
</network>
|
||||||
|
|
||||||
|
<device>
|
||||||
|
<name>File_test_device</name>
|
||||||
|
<capability type='system'>
|
||||||
|
<hardware>
|
||||||
|
<vendor>Libvirt</vendor>
|
||||||
|
<version>Test driver</version>
|
||||||
|
<serial>123456</serial>
|
||||||
|
<uuid>11111111-2222-3333-4444-555555555555</uuid>
|
||||||
|
</hardware>
|
||||||
|
<firmware>
|
||||||
|
<vendor>Libvirt</vendor>
|
||||||
|
<version>Test Driver</version>
|
||||||
|
<release_date>01/22/2007</release_date>
|
||||||
|
</firmware>
|
||||||
|
</capability>
|
||||||
|
</device>
|
||||||
|
|
||||||
|
|
||||||
<cpu>
|
<cpu>
|
||||||
<mhz>6000</mhz>
|
<mhz>6000</mhz>
|
||||||
<model>i986</model>
|
<model>i986</model>
|
||||||
|
@ -547,7 +547,8 @@ static int testOpenFromFile(virConnectPtr conn,
|
|||||||
char *str;
|
char *str;
|
||||||
xmlDocPtr xml = NULL;
|
xmlDocPtr xml = NULL;
|
||||||
xmlNodePtr root = NULL;
|
xmlNodePtr root = NULL;
|
||||||
xmlNodePtr *domains = NULL, *networks = NULL, *ifaces = NULL, *pools = NULL;
|
xmlNodePtr *domains = NULL, *networks = NULL, *ifaces = NULL,
|
||||||
|
*pools = NULL, *devs = NULL;
|
||||||
xmlXPathContextPtr ctxt = NULL;
|
xmlXPathContextPtr ctxt = NULL;
|
||||||
virNodeInfoPtr nodeInfo;
|
virNodeInfoPtr nodeInfo;
|
||||||
virNetworkObjPtr net;
|
virNetworkObjPtr net;
|
||||||
@ -841,6 +842,43 @@ static int testOpenFromFile(virConnectPtr conn,
|
|||||||
}
|
}
|
||||||
VIR_FREE(pools);
|
VIR_FREE(pools);
|
||||||
|
|
||||||
|
ret = virXPathNodeSet(conn, "/node/device", ctxt, &devs);
|
||||||
|
if (ret < 0) {
|
||||||
|
testError(NULL, VIR_ERR_XML_ERROR, "%s", _("node device list"));
|
||||||
|
goto error;
|
||||||
|
}
|
||||||
|
for (i = 0 ; i < ret ; i++) {
|
||||||
|
virNodeDeviceDefPtr def;
|
||||||
|
virNodeDeviceObjPtr dev;
|
||||||
|
char *relFile = virXMLPropString(devs[i], "file");
|
||||||
|
|
||||||
|
if (relFile != NULL) {
|
||||||
|
char *absFile = testBuildFilename(file, relFile);
|
||||||
|
VIR_FREE(relFile);
|
||||||
|
|
||||||
|
if (!absFile) {
|
||||||
|
testError(NULL, VIR_ERR_INTERNAL_ERROR, "%s",
|
||||||
|
_("resolving device filename"));
|
||||||
|
goto error;
|
||||||
|
}
|
||||||
|
|
||||||
|
def = virNodeDeviceDefParseFile(conn, absFile, 0);
|
||||||
|
VIR_FREE(absFile);
|
||||||
|
if (!def)
|
||||||
|
goto error;
|
||||||
|
} else {
|
||||||
|
if ((def = virNodeDeviceDefParseNode(conn, xml, devs[i], 0)) == NULL)
|
||||||
|
goto error;
|
||||||
|
}
|
||||||
|
if (!(dev = virNodeDeviceAssignDef(conn, &privconn->devs, def))) {
|
||||||
|
virNodeDeviceDefFree(def);
|
||||||
|
goto error;
|
||||||
|
}
|
||||||
|
virNodeDeviceObjUnlock(dev);
|
||||||
|
}
|
||||||
|
VIR_FREE(devs);
|
||||||
|
|
||||||
|
|
||||||
xmlXPathFreeContext(ctxt);
|
xmlXPathFreeContext(ctxt);
|
||||||
xmlFreeDoc(xml);
|
xmlFreeDoc(xml);
|
||||||
testDriverUnlock(privconn);
|
testDriverUnlock(privconn);
|
||||||
|
Loading…
Reference in New Issue
Block a user