launch: appliance is optional

# virt-filesystems -v -d 6326ad4e-5805-2ab4-1338-d1dad8c76162 --all
libguestfs: libvirt version = 10002
libguestfs: [00000ms] connect to libvirt
libguestfs: [00001ms] get libvirt capabilities
libguestfs: [00234ms] build appliance
libguestfs: [00234ms] create libvirt XML
libguestfs: error: error constructing libvirt XML at "xmlTextWriterWriteAttribute (xo, BAD_CAST "file", BAD_CAST appliance)": No such file or directory
libguestfs: closing guestfs handle 0x656270 (state 0)

 # ls -lh /usr/lib64/guestfs/*
-rw-r--r-- 1 root root  13M Oct  8 16:15 /usr/lib64/guestfs/initramfs.x86_64.img
-rw-r--r-- 1 root root 3.7M Oct  6 09:25 /usr/lib64/guestfs/vmlinuz.x86_64

Signed-off-by: Olaf Hering <olaf@aepfle.de>
This commit is contained in:
Olaf Hering
2012-10-08 20:10:36 +02:00
committed by Richard W.M. Jones
parent 0a85fbc946
commit 45c9fbd6f5

View File

@@ -194,10 +194,13 @@ launch_libvirt (guestfs_h *g, const char *libvirt_uri)
/* Create overlays for read-only drives and the appliance. This
* works around lack of support for <transient/> disks in libvirt.
* Note that appliance can be NULL if using the old-style appliance.
*/
appliance_overlay = make_qcow2_overlay (g, appliance, "raw");
if (!appliance_overlay)
goto cleanup;
if (appliance) {
appliance_overlay = make_qcow2_overlay (g, appliance, "raw");
if (!appliance_overlay)
goto cleanup;
}
ITER_DRIVES (g, i, drv) {
if (make_qcow2_overlay_for_drive (g, drv) == -1)
@@ -393,7 +396,8 @@ launch_libvirt (guestfs_h *g, const char *libvirt_uri)
goto cleanup;
}
guestfs___add_dummy_appliance_drive (g);
if (appliance)
guestfs___add_dummy_appliance_drive (g);
TRACE0 (launch_libvirt_end);
@@ -739,10 +743,12 @@ construct_libvirt_xml_devices (guestfs_h *g, xmlTextWriterPtr xo,
goto err;
}
/* Appliance disk. */
if (construct_libvirt_xml_appliance (g, xo, appliance_overlay,
appliance_index) == -1)
goto err;
if (appliance_overlay) {
/* Appliance disk. */
if (construct_libvirt_xml_appliance (g, xo, appliance_overlay,
appliance_index) == -1)
goto err;
}
/* Console. */
XMLERROR (-1, xmlTextWriterStartElement (xo, BAD_CAST "serial"));