From 16a65d1c93b9dc8eb7843ab2b9aa8aebbea54414 Mon Sep 17 00:00:00 2001 From: "Daniel P. Berrange" Date: Mon, 9 Oct 2006 14:32:07 +0000 Subject: [PATCH] Added support for element and blktap --- ChangeLog | 10 + src/xend_internal.c | 251 +++++++++++------- src/xml.c | 57 +++- .../sexpr2xmldata/sexpr2xml-disk-block.sexpr | 2 + tests/sexpr2xmldata/sexpr2xml-disk-block.xml | 22 ++ .../sexpr2xml-disk-drv-blktap-qcow.sexpr | 2 + .../sexpr2xml-disk-drv-blktap-qcow.xml | 22 ++ .../sexpr2xml-disk-drv-blktap-raw.sexpr | 2 + .../sexpr2xml-disk-drv-blktap-raw.xml | 22 ++ tests/sexpr2xmldata/sexpr2xml-disk-file.sexpr | 2 + tests/sexpr2xmldata/sexpr2xml-disk-file.xml | 22 ++ tests/sexpr2xmldata/sexpr2xml-fv-v2.xml | 2 + tests/sexpr2xmldata/sexpr2xml-fv.xml | 2 + tests/sexpr2xmldata/sexpr2xml-pv.xml | 1 + tests/sexpr2xmltest.c | 68 ++++- .../xml2sexprdata/xml2sexpr-disk-block.sexpr | 1 + tests/xml2sexprdata/xml2sexpr-disk-block.xml | 23 ++ .../xml2sexpr-disk-drv-blkback.sexpr | 1 + .../xml2sexpr-disk-drv-blkback.xml | 24 ++ .../xml2sexpr-disk-drv-blktap-qcow.sexpr | 1 + .../xml2sexpr-disk-drv-blktap-qcow.xml | 24 ++ .../xml2sexpr-disk-drv-blktap-raw.sexpr | 1 + .../xml2sexpr-disk-drv-blktap-raw.xml | 24 ++ .../xml2sexpr-disk-drv-blktap.sexpr | 1 + .../xml2sexpr-disk-drv-blktap.xml | 24 ++ .../xml2sexpr-disk-drv-loop.sexpr | 1 + .../xml2sexprdata/xml2sexpr-disk-drv-loop.xml | 24 ++ tests/xml2sexprdata/xml2sexpr-disk-file.sexpr | 1 + tests/xml2sexprdata/xml2sexpr-disk-file.xml | 23 ++ tests/xml2sexprtest.c | 121 +++++++-- 30 files changed, 629 insertions(+), 152 deletions(-) create mode 100644 tests/sexpr2xmldata/sexpr2xml-disk-block.sexpr create mode 100644 tests/sexpr2xmldata/sexpr2xml-disk-block.xml create mode 100644 tests/sexpr2xmldata/sexpr2xml-disk-drv-blktap-qcow.sexpr create mode 100644 tests/sexpr2xmldata/sexpr2xml-disk-drv-blktap-qcow.xml create mode 100644 tests/sexpr2xmldata/sexpr2xml-disk-drv-blktap-raw.sexpr create mode 100644 tests/sexpr2xmldata/sexpr2xml-disk-drv-blktap-raw.xml create mode 100644 tests/sexpr2xmldata/sexpr2xml-disk-file.sexpr create mode 100644 tests/sexpr2xmldata/sexpr2xml-disk-file.xml create mode 100644 tests/xml2sexprdata/xml2sexpr-disk-block.sexpr create mode 100644 tests/xml2sexprdata/xml2sexpr-disk-block.xml create mode 100644 tests/xml2sexprdata/xml2sexpr-disk-drv-blkback.sexpr create mode 100644 tests/xml2sexprdata/xml2sexpr-disk-drv-blkback.xml create mode 100644 tests/xml2sexprdata/xml2sexpr-disk-drv-blktap-qcow.sexpr create mode 100644 tests/xml2sexprdata/xml2sexpr-disk-drv-blktap-qcow.xml create mode 100644 tests/xml2sexprdata/xml2sexpr-disk-drv-blktap-raw.sexpr create mode 100644 tests/xml2sexprdata/xml2sexpr-disk-drv-blktap-raw.xml create mode 100644 tests/xml2sexprdata/xml2sexpr-disk-drv-blktap.sexpr create mode 100644 tests/xml2sexprdata/xml2sexpr-disk-drv-blktap.xml create mode 100644 tests/xml2sexprdata/xml2sexpr-disk-drv-loop.sexpr create mode 100644 tests/xml2sexprdata/xml2sexpr-disk-drv-loop.xml create mode 100644 tests/xml2sexprdata/xml2sexpr-disk-file.sexpr create mode 100644 tests/xml2sexprdata/xml2sexpr-disk-file.xml diff --git a/ChangeLog b/ChangeLog index 87d347e28f..5b4891a3f2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +Mon Oct 9 09:34:42 EDT 2006 Daniel P. Berrange + + * src/xml.c, src/xend_internal.c: Added support for a + element in disk specification, allowing use of alternate Xen + drivers such as blktap. + * tests/xml2sexprtest.c, tests/sexpr2xmltest.c: Added tests for + new element, and blktap driver impl. + * tests/xml2sexprdata/*, tests/sexpr2xmldata/*: New / updated + data files for new element + Fri Oct 6 10:33:20 EDT 2006 Daniel P. Berrange * src/xend_internal.c: Fixed memory leak in xend_get_config_version diff --git a/src/xend_internal.c b/src/xend_internal.c index 70b162fa94..bcb349119e 100644 --- a/src/xend_internal.c +++ b/src/xend_internal.c @@ -1451,7 +1451,7 @@ xend_parse_sexp_desc_os(struct sexpr *node, virBufferPtr buf, int hvm) /** * xend_parse_sexp_desc: - * @domain: the domain associated with the XML + * @conn: the connection associated with the XML * @root: the root of the parsed S-Expression * * Parse the xend sexp description and turn it into the XML format similar @@ -1487,7 +1487,7 @@ xend_parse_sexp_desc(virConnectPtr conn, struct sexpr *root, int xendConfigVersi tmp = sexpr_node(root, "domain/name"); if (tmp == NULL) { - virXendError(NULL, VIR_ERR_INTERNAL_ERROR, + virXendError(conn, VIR_ERR_INTERNAL_ERROR, _("domain information incomplete, missing name")); goto error; } @@ -1498,10 +1498,11 @@ xend_parse_sexp_desc(virConnectPtr conn, struct sexpr *root, int xendConfigVersi int i, j; for (i = 0, j = 0;(i < 32) && (tmp[j] != 0);j++) { if (((tmp[j] >= '0') && (tmp[j] <= '9')) || - ((tmp[j] >= 'a') && (tmp[j] <= 'f'))) - compact[i++] = tmp[j]; - else if ((tmp[j] >= 'A') && (tmp[j] <= 'F')) + ((tmp[j] >= 'a') && (tmp[j] <= 'f'))) { + compact[i++] = tmp[j]; + } else if ((tmp[j] >= 'A') && (tmp[j] <= 'F')) { compact[i++] = tmp[j] + 'a' - 'A'; + } } compact[i] = 0; if (i > 0) @@ -1509,7 +1510,7 @@ xend_parse_sexp_desc(virConnectPtr conn, struct sexpr *root, int xendConfigVersi } tmp = sexpr_node(root, "domain/bootloader"); if (tmp != NULL) - virBufferVSprintf(&buf, " %s\n", tmp); + virBufferVSprintf(&buf, " %s\n", tmp); if (sexpr_lookup(root, "domain/image")) { hvm = sexpr_lookup(root, "domain/image/hvm") ? 1 : 0; @@ -1522,13 +1523,13 @@ xend_parse_sexp_desc(virConnectPtr conn, struct sexpr *root, int xendConfigVersi sexpr_int(root, "domain/vcpus")); tmp = sexpr_node(root, "domain/on_poweroff"); if (tmp != NULL) - virBufferVSprintf(&buf, " %s\n", tmp); + virBufferVSprintf(&buf, " %s\n", tmp); tmp = sexpr_node(root, "domain/on_reboot"); if (tmp != NULL) - virBufferVSprintf(&buf, " %s\n", tmp); + virBufferVSprintf(&buf, " %s\n", tmp); tmp = sexpr_node(root, "domain/on_crash"); if (tmp != NULL) - virBufferVSprintf(&buf, " %s\n", tmp); + virBufferVSprintf(&buf, " %s\n", tmp); if (hvm) { virBufferAdd(&buf, " \n", 13); @@ -1546,105 +1547,150 @@ xend_parse_sexp_desc(virConnectPtr conn, struct sexpr *root, int xendConfigVersi /* in case of HVM we have devices emulation */ tmp = sexpr_node(root, "domain/image/hvm/device_model"); if ((tmp != NULL) && (tmp[0] != 0)) - virBufferVSprintf(&buf, " %s\n", tmp); + virBufferVSprintf(&buf, " %s\n", tmp); for (cur = root; cur->kind == SEXPR_CONS; cur = cur->cdr) { node = cur->car; - if (sexpr_lookup(node, "device/vbd")) { - tmp = sexpr_node(node, "device/vbd/uname"); - if (tmp == NULL) - continue; - if (!memcmp(tmp, "file:", 5)) { - int cdrom = 0; - const char *src = tmp+5; - const char *dst = sexpr_node(node, "device/vbd/dev"); + /* Normally disks are in a (device (vbd ...)) block + but blktap disks ended up in a differently named + (device (tap ....)) block.... */ + if (sexpr_lookup(node, "device/vbd") || + sexpr_lookup(node, "device/tap")) { + char *offset; + int isBlock = 0; + int cdrom = 0; + char *drvName = NULL; + char *drvType = NULL; + const char *src = NULL; + const char *dst = NULL; + const char *mode = NULL; - if (dst == NULL) { - virXendError(NULL, VIR_ERR_INTERNAL_ERROR, - _("domain information incomplete, vbd has no dev")); - goto error; - } - - if (!strncmp(dst, "ioemu:", 6)) - dst += 6; - /* New style disk config from Xen >= 3.0.3 */ - if (xendConfigVersion > 1) { - char *offset = rindex(dst, ':'); - if (offset) { - if (!strcmp(offset, ":cdrom")) { - cdrom = 1; - } else if (!strcmp(offset, ":disk")) { - /* defualt anyway */ - } else { - /* Unknown, lets pretend its a disk */ - } - offset[0] = '\0'; - } - } - - virBufferVSprintf(&buf, " \n", cdrom ? "cdrom" : "disk"); - virBufferVSprintf(&buf, " \n", src); - virBufferVSprintf(&buf, " \n", dst); - tmp = sexpr_node(node, "device/vbd/mode"); - /* XXX should we force mode == r, if cdrom==1, or assume - xend has already done this ? */ - if ((tmp != NULL) && (!strcmp(tmp, "r"))) - virBufferVSprintf(&buf, " \n"); - virBufferAdd(&buf, " \n", 12); - } else if (!memcmp(tmp, "phy:", 4)) { - int cdrom = 0; - const char *src = tmp+4; - const char *dst = sexpr_node(node, "device/vbd/dev"); - - if (dst == NULL) { - virXendError(NULL, VIR_ERR_INTERNAL_ERROR, - _("domain information incomplete, vbd has no dev")); - goto error; - } - - if (!strncmp(dst, "ioemu:", 6)) - dst += 6; - /* New style cdrom config from Xen >= 3.0.3 */ - if (xendConfigVersion > 1) { - char *offset = rindex(dst, ':'); - if (offset) { - if (!strcmp(offset, ":cdrom")) { - cdrom = 1; - } else if (!strcmp(offset, ":disk")) { - /* defualt anyway */ - } else { - /* Unknown, lets pretend its a disk */ - } - offset[0] = '\0'; - } - } - - virBufferVSprintf(&buf, " \n", cdrom ? "cdrom" : "disk"); - virBufferVSprintf(&buf, " \n", src); - virBufferVSprintf(&buf, " \n", dst); - tmp = sexpr_node(node, "device/vbd/mode"); - /* XXX should we force mode == r, if cdrom==1, or assume - xend has already done this ? */ - if ((tmp != NULL) && (!strcmp(tmp, "r"))) - virBufferVSprintf(&buf, " \n"); - virBufferAdd(&buf, " \n", 12); + /* Again dealing with (vbd...) vs (tap ...) differences */ + if (sexpr_lookup(node, "device/vbd")) { + src = sexpr_node(node, "device/vbd/uname"); + dst = sexpr_node(node, "device/vbd/dev"); + mode = sexpr_node(node, "device/vbd/mode"); } else { - char serial[1000]; + src = sexpr_node(node, "device/tap/uname"); + dst = sexpr_node(node, "device/tap/dev"); + mode = sexpr_node(node, "device/tap/mode"); + } - TODO sexpr2string(node, serial, 1000); - virBufferVSprintf(&buf, "\n", - serial); - TODO} + if (src == NULL) { + virXendError(conn, VIR_ERR_INTERNAL_ERROR, + _("domain information incomplete, vbd has no src")); + goto bad_parse; + } + + if (dst == NULL) { + virXendError(conn, VIR_ERR_INTERNAL_ERROR, + _("domain information incomplete, vbd has no dev")); + goto bad_parse; + } + + + offset = strchr(src, ':'); + if (!offset) { + virXendError(conn, VIR_ERR_INTERNAL_ERROR, + _("cannot parse vbd filename, missing driver name")); + goto bad_parse; + } + + drvName = malloc((offset-src)+1); + if (!drvName) { + virXendError(conn, VIR_ERR_NO_MEMORY, + _("allocate new buffer")); + goto bad_parse; + } + strncpy(drvName, src, (offset-src)); + drvName[offset-src] = '\0'; + + src = offset + 1; + + if (!strcmp(drvName, "tap")) { + offset = strchr(src, ':'); + if (!offset) { + virXendError(conn, VIR_ERR_INTERNAL_ERROR, + _("cannot parse vbd filename, missing driver type")); + goto bad_parse; + } + + drvType = malloc((offset-src)+1); + if (!drvType) { + virXendError(conn, VIR_ERR_NO_MEMORY, + _("allocate new buffer")); + goto bad_parse; + } + strncpy(drvType, src, (offset-src)); + drvType[offset-src] = '\0'; + src = offset + 1; + /* Its possible to use blktap driver for block devs + too, but kinda pointless because blkback is better, + so we assume common case here. If blktap becomes + omnipotent, we can revisit this, perhaps stat()'ing + the src file in question */ + isBlock = 0; + } else if (!strcmp(drvName, "phy")) { + isBlock = 1; + } else if (!strcmp(drvName, "file")) { + isBlock = 0; + } + + if (!strncmp(dst, "ioemu:", 6)) + dst += 6; + + /* New style disk config from Xen >= 3.0.3 */ + if (xendConfigVersion > 1) { + offset = rindex(dst, ':'); + if (offset) { + if (!strcmp(offset, ":cdrom")) { + cdrom = 1; + } else if (!strcmp(offset, ":disk")) { + /* The default anyway */ + } else { + /* Unknown, lets pretend its a disk too */ + } + offset[0] = '\0'; + } + } + + virBufferVSprintf(&buf, " \n", + isBlock ? "block" : "file", + cdrom ? "cdrom" : "disk"); + if (drvType) { + virBufferVSprintf(&buf, " \n", drvName, drvType); + } else { + virBufferVSprintf(&buf, " \n", drvName); + } + if (isBlock) { + virBufferVSprintf(&buf, " \n", src); + } else { + virBufferVSprintf(&buf, " \n", src); + } + virBufferVSprintf(&buf, " \n", dst); + + + /* XXX should we force mode == r, if cdrom==1, or assume + xend has already done this ? */ + if ((mode != NULL) && (!strcmp(mode, "r"))) + virBufferVSprintf(&buf, " \n"); + virBufferAdd(&buf, " \n", 12); + + bad_parse: + if (drvName) + free(drvName); + if (drvType) + free(drvType); } else if (sexpr_lookup(node, "device/vif")) { - const char *tmp2; + const char *tmp2; tmp = sexpr_node(node, "device/vif/bridge"); - tmp2 = sexpr_node(node, "device/vif/script"); + tmp2 = sexpr_node(node, "device/vif/script"); if ((tmp != NULL) || (strstr(tmp2, "bridge"))) { virBufferVSprintf(&buf, " \n"); - if (tmp != NULL) - virBufferVSprintf(&buf, " \n", - tmp); + if (tmp != NULL) + virBufferVSprintf(&buf, " \n", + tmp); tmp = sexpr_node(node, "device/vif/vifname"); if (tmp != NULL) virBufferVSprintf(&buf, " \n", @@ -1688,10 +1734,11 @@ xend_parse_sexp_desc(virConnectPtr conn, struct sexpr *root, int xendConfigVersi } /* Old style cdrom config from Xen <= 3.0.2 */ - if (xendConfigVersion == 1) { + if (xendConfigVersion == 1) { tmp = sexpr_node(root, "domain/image/hvm/cdrom"); if ((tmp != NULL) && (tmp[0] != 0)) { virBufferAdd(&buf, " \n", 38); + virBufferAdd(&buf, " \n", 28); virBufferVSprintf(&buf, " \n", tmp); virBufferAdd(&buf, " \n", 26); virBufferAdd(&buf, " \n", 18); @@ -1699,24 +1746,24 @@ xend_parse_sexp_desc(virConnectPtr conn, struct sexpr *root, int xendConfigVersi } } } - + /* Graphics device */ tmp = sexpr_fmt_node(root, "domain/image/%s/vnc", hvm ? "hvm" : "linux"); if (tmp != NULL) { if (tmp[0] == '1') { int port = xenStoreDomainGetVNCPort(conn, domid); - if (port == -1) + if (port == -1) port = 5900 + domid; virBufferVSprintf(&buf, " \n", port); } } - + tmp = sexpr_fmt_node(root, "domain/image/%s/sdl", hvm ? "hvm" : "linux"); if (tmp != NULL) { if (tmp[0] == '1') virBufferAdd(&buf, " \n", 27 ); } - + tty = xenStoreDomainGetConsolePath(conn, domid); if (tty) { virBufferVSprintf(&buf, " \n", tty); diff --git a/src/xml.c b/src/xml.c index 7ae89b3ccf..df8c8dc627 100644 --- a/src/xml.c +++ b/src/xml.c @@ -931,6 +931,8 @@ virDomainParseXMLDiskDesc(xmlNodePtr node, virBufferPtr buf, int hvm, int xendCo xmlChar *device = NULL; xmlChar *source = NULL; xmlChar *target = NULL; + xmlChar *drvName = NULL; + xmlChar *drvType = NULL; int ro = 0; int typ = 0; int cdrom = 0; @@ -944,7 +946,7 @@ virDomainParseXMLDiskDesc(xmlNodePtr node, virBufferPtr buf, int hvm, int xendCo xmlFree(type); } device = xmlGetProp(node, BAD_CAST "device"); - + cur = node->children; while (cur != NULL) { if (cur->type == XML_ELEMENT_NODE) { @@ -958,6 +960,11 @@ virDomainParseXMLDiskDesc(xmlNodePtr node, virBufferPtr buf, int hvm, int xendCo } else if ((target == NULL) && (xmlStrEqual(cur->name, BAD_CAST "target"))) { target = xmlGetProp(cur, BAD_CAST "dev"); + } else if ((drvName == NULL) && + (xmlStrEqual(cur->name, BAD_CAST "driver"))) { + drvName = xmlGetProp(cur, BAD_CAST "name"); + if (drvName && !strcmp((const char *)drvName, "tap")) + drvType = xmlGetProp(cur, BAD_CAST "type"); } else if (xmlStrEqual(cur->name, BAD_CAST "readonly")) { ro = 1; } @@ -986,14 +993,14 @@ virDomainParseXMLDiskDesc(xmlNodePtr node, virBufferPtr buf, int hvm, int xendCo /* Xend (all versions) put the floppy device config * under the hvm (image (os)) block */ - if (hvm && + if (hvm && device && !strcmp((const char *)device, "floppy")) { goto cleanup; } /* Xend <= 3.0.2 doesn't include cdrom config here */ - if (hvm && + if (hvm && device && !strcmp((const char *)device, "cdrom")) { if (xendConfigVersion == 1) @@ -1004,7 +1011,14 @@ virDomainParseXMLDiskDesc(xmlNodePtr node, virBufferPtr buf, int hvm, int xendCo virBufferAdd(buf, "(device ", 8); - virBufferAdd(buf, "(vbd ", 5); + /* Normally disks are in a (device (vbd ...)) block + but blktap disks ended up in a differently named + (device (tap ....)) block.... */ + if (drvName && !strcmp((const char *)drvName, "tap")) { + virBufferAdd(buf, "(tap ", 5); + } else { + virBufferAdd(buf, "(vbd ", 5); + } if (hvm) { char *tmp = (char *)target; @@ -1014,19 +1028,32 @@ virDomainParseXMLDiskDesc(xmlNodePtr node, virBufferPtr buf, int hvm, int xendCo /* Xend <= 3.0.2 wants a ioemu: prefix on devices for HVM */ if (xendConfigVersion == 1) - virBufferVSprintf(buf, "(dev 'ioemu:%s')", (const char *) tmp); + virBufferVSprintf(buf, "(dev 'ioemu:%s')", (const char *)tmp); else /* But newer does not */ - virBufferVSprintf(buf, "(dev '%s%s')", (const char *) tmp, cdrom ? ":cdrom" : ":disk"); + virBufferVSprintf(buf, "(dev '%s%s')", (const char *)tmp, cdrom ? ":cdrom" : ":disk"); } else - virBufferVSprintf(buf, "(dev '%s')", (const char *) target); + virBufferVSprintf(buf, "(dev '%s')", (const char *)target); - if (typ == 0) - virBufferVSprintf(buf, "(uname 'file:%s')", source); - else if (typ == 1) { - if (source[0] == '/') - virBufferVSprintf(buf, "(uname 'phy:%s')", source); - else - virBufferVSprintf(buf, "(uname 'phy:/dev/%s')", source); + if (drvName) { + if (!strcmp((const char *)drvName, "tap")) { + virBufferVSprintf(buf, "(uname '%s:%s:%s')", + (const char *)drvName, + (drvType ? (const char *)drvType : "aio"), + (const char *)source); + } else { + virBufferVSprintf(buf, "(uname '%s:%s')", + (const char *)drvName, + (const char *)source); + } + } else { + if (typ == 0) + virBufferVSprintf(buf, "(uname 'file:%s')", source); + else if (typ == 1) { + if (source[0] == '/') + virBufferVSprintf(buf, "(uname 'phy:%s')", source); + else + virBufferVSprintf(buf, "(uname 'phy:/dev/%s')", source); + } } if (ro == 0) virBufferVSprintf(buf, "(mode 'w')"); @@ -1037,6 +1064,8 @@ virDomainParseXMLDiskDesc(xmlNodePtr node, virBufferPtr buf, int hvm, int xendCo virBufferAdd(buf, ")", 1); cleanup: + xmlFree(drvType); + xmlFree(drvName); xmlFree(device); xmlFree(target); xmlFree(source); diff --git a/tests/sexpr2xmldata/sexpr2xml-disk-block.sexpr b/tests/sexpr2xmldata/sexpr2xml-disk-block.sexpr new file mode 100644 index 0000000000..1bb0dcbe8f --- /dev/null +++ b/tests/sexpr2xmldata/sexpr2xml-disk-block.sexpr @@ -0,0 +1,2 @@ +(domain (domid 6)(name 'pvtest')(memory 420)(maxmem 420)(vcpus 2)(uuid '596a5d2171f48fb2e068e2386a5c413e')(on_poweroff 'destroy')(on_reboot 'destroy')(on_crash 'destroy')(image (linux (kernel '/var/lib/xen/vmlinuz.2Dn2YT')(ramdisk '/var/lib/xen/initrd.img.0u-Vhq')(args ' method=http://download.fedora.devel.redhat.com/pub/fedora/linux/core/test/5.91/x86_64/os ')))(device (vbd (dev 'xvda')(uname 'phy:/dev/MainVG/GuestVG')(mode 'w')))) + diff --git a/tests/sexpr2xmldata/sexpr2xml-disk-block.xml b/tests/sexpr2xmldata/sexpr2xml-disk-block.xml new file mode 100644 index 0000000000..60cf44c45c --- /dev/null +++ b/tests/sexpr2xmldata/sexpr2xml-disk-block.xml @@ -0,0 +1,22 @@ + + pvtest + 596a5d2171f48fb2e068e2386a5c413e + + linux + /var/lib/xen/vmlinuz.2Dn2YT + /var/lib/xen/initrd.img.0u-Vhq + method=http://download.fedora.devel.redhat.com/pub/fedora/linux/core/test/5.91/x86_64/os + + 430080 + 2 + destroy + destroy + destroy + + + + + + + + diff --git a/tests/sexpr2xmldata/sexpr2xml-disk-drv-blktap-qcow.sexpr b/tests/sexpr2xmldata/sexpr2xml-disk-drv-blktap-qcow.sexpr new file mode 100644 index 0000000000..c642230fbd --- /dev/null +++ b/tests/sexpr2xmldata/sexpr2xml-disk-drv-blktap-qcow.sexpr @@ -0,0 +1,2 @@ +(domain (domid 6)(name 'pvtest')(memory 420)(maxmem 420)(vcpus 2)(uuid '596a5d2171f48fb2e068e2386a5c413e')(on_poweroff 'destroy')(on_reboot 'destroy')(on_crash 'destroy')(image (linux (kernel '/var/lib/xen/vmlinuz.2Dn2YT')(ramdisk '/var/lib/xen/initrd.img.0u-Vhq')(args ' method=http://download.fedora.devel.redhat.com/pub/fedora/linux/core/test/5.91/x86_64/os ')))(device (tap (dev 'xvda')(uname 'tap:qcow:/root/some.img')(mode 'w')))) + diff --git a/tests/sexpr2xmldata/sexpr2xml-disk-drv-blktap-qcow.xml b/tests/sexpr2xmldata/sexpr2xml-disk-drv-blktap-qcow.xml new file mode 100644 index 0000000000..f0322b4379 --- /dev/null +++ b/tests/sexpr2xmldata/sexpr2xml-disk-drv-blktap-qcow.xml @@ -0,0 +1,22 @@ + + pvtest + 596a5d2171f48fb2e068e2386a5c413e + + linux + /var/lib/xen/vmlinuz.2Dn2YT + /var/lib/xen/initrd.img.0u-Vhq + method=http://download.fedora.devel.redhat.com/pub/fedora/linux/core/test/5.91/x86_64/os + + 430080 + 2 + destroy + destroy + destroy + + + + + + + + diff --git a/tests/sexpr2xmldata/sexpr2xml-disk-drv-blktap-raw.sexpr b/tests/sexpr2xmldata/sexpr2xml-disk-drv-blktap-raw.sexpr new file mode 100644 index 0000000000..2852b03044 --- /dev/null +++ b/tests/sexpr2xmldata/sexpr2xml-disk-drv-blktap-raw.sexpr @@ -0,0 +1,2 @@ +(domain (domid 6)(name 'pvtest')(memory 420)(maxmem 420)(vcpus 2)(uuid '596a5d2171f48fb2e068e2386a5c413e')(on_poweroff 'destroy')(on_reboot 'destroy')(on_crash 'destroy')(image (linux (kernel '/var/lib/xen/vmlinuz.2Dn2YT')(ramdisk '/var/lib/xen/initrd.img.0u-Vhq')(args ' method=http://download.fedora.devel.redhat.com/pub/fedora/linux/core/test/5.91/x86_64/os ')))(device (tap (dev 'xvda')(uname 'tap:aio:/root/some.img')(mode 'w')))) + diff --git a/tests/sexpr2xmldata/sexpr2xml-disk-drv-blktap-raw.xml b/tests/sexpr2xmldata/sexpr2xml-disk-drv-blktap-raw.xml new file mode 100644 index 0000000000..5e8c09a469 --- /dev/null +++ b/tests/sexpr2xmldata/sexpr2xml-disk-drv-blktap-raw.xml @@ -0,0 +1,22 @@ + + pvtest + 596a5d2171f48fb2e068e2386a5c413e + + linux + /var/lib/xen/vmlinuz.2Dn2YT + /var/lib/xen/initrd.img.0u-Vhq + method=http://download.fedora.devel.redhat.com/pub/fedora/linux/core/test/5.91/x86_64/os + + 430080 + 2 + destroy + destroy + destroy + + + + + + + + diff --git a/tests/sexpr2xmldata/sexpr2xml-disk-file.sexpr b/tests/sexpr2xmldata/sexpr2xml-disk-file.sexpr new file mode 100644 index 0000000000..74c9e01bf0 --- /dev/null +++ b/tests/sexpr2xmldata/sexpr2xml-disk-file.sexpr @@ -0,0 +1,2 @@ +(domain (domid 6)(name 'pvtest')(memory 420)(maxmem 420)(vcpus 2)(uuid '596a5d2171f48fb2e068e2386a5c413e')(on_poweroff 'destroy')(on_reboot 'destroy')(on_crash 'destroy')(image (linux (kernel '/var/lib/xen/vmlinuz.2Dn2YT')(ramdisk '/var/lib/xen/initrd.img.0u-Vhq')(args ' method=http://download.fedora.devel.redhat.com/pub/fedora/linux/core/test/5.91/x86_64/os ')))(device (vbd (dev 'xvda')(uname 'file:/root/some.img')(mode 'w')))) + diff --git a/tests/sexpr2xmldata/sexpr2xml-disk-file.xml b/tests/sexpr2xmldata/sexpr2xml-disk-file.xml new file mode 100644 index 0000000000..8197a8ed4e --- /dev/null +++ b/tests/sexpr2xmldata/sexpr2xml-disk-file.xml @@ -0,0 +1,22 @@ + + pvtest + 596a5d2171f48fb2e068e2386a5c413e + + linux + /var/lib/xen/vmlinuz.2Dn2YT + /var/lib/xen/initrd.img.0u-Vhq + method=http://download.fedora.devel.redhat.com/pub/fedora/linux/core/test/5.91/x86_64/os + + 430080 + 2 + destroy + destroy + destroy + + + + + + + + diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-v2.xml b/tests/sexpr2xmldata/sexpr2xml-fv-v2.xml index 6ea089611c..b635b72476 100644 --- a/tests/sexpr2xmldata/sexpr2xml-fv-v2.xml +++ b/tests/sexpr2xmldata/sexpr2xml-fv-v2.xml @@ -17,11 +17,13 @@ /usr/lib64/xen/bin/qemu-dm + + diff --git a/tests/sexpr2xmldata/sexpr2xml-fv.xml b/tests/sexpr2xmldata/sexpr2xml-fv.xml index 08a5ee179a..eaa19bf09c 100644 --- a/tests/sexpr2xmldata/sexpr2xml-fv.xml +++ b/tests/sexpr2xmldata/sexpr2xml-fv.xml @@ -17,6 +17,7 @@ /usr/lib64/xen/bin/qemu-dm + @@ -26,6 +27,7 @@