diff options
author | Richard W.M. Jones <rjones@redhat.com> | 2012-07-23 16:43:14 +0100 |
---|---|---|
committer | Richard W.M. Jones <rjones@redhat.com> | 2012-07-23 16:43:14 +0100 |
commit | 5fb0f4e07ecaa3e084d3ae173606d6f03df393c3 (patch) | |
tree | 8e674ab2c216dd8c00c03dc47a74ad7aa644e0b0 /src/launch-libvirt.c | |
parent | 20a5b4de7ddc4221544784df65eb472481698dcb (diff) | |
download | libguestfs-5fb0f4e07ecaa3e084d3ae173606d6f03df393c3.tar.gz libguestfs-5fb0f4e07ecaa3e084d3ae173606d6f03df393c3.tar.xz libguestfs-5fb0f4e07ecaa3e084d3ae173606d6f03df393c3.zip |
launch: libvirt: Add <on_reboot>destroy</on_reboot> to libvirt XML.
This causes libvirt to add the qemu -no-reboot option, which
reflects existing behaviour.
Diffstat (limited to 'src/launch-libvirt.c')
-rw-r--r-- | src/launch-libvirt.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/launch-libvirt.c b/src/launch-libvirt.c index 649c809b..268efa5a 100644 --- a/src/launch-libvirt.c +++ b/src/launch-libvirt.c @@ -393,6 +393,7 @@ static int construct_libvirt_xml_name (guestfs_h *g, xmlTextWriterPtr xo); static int construct_libvirt_xml_cpu (guestfs_h *g, xmlTextWriterPtr xo); static int construct_libvirt_xml_boot (guestfs_h *g, xmlTextWriterPtr xo, const char *kernel, const char *initrd, size_t appliance_index); static int construct_libvirt_xml_seclabel (guestfs_h *g, xmlTextWriterPtr xo); +static int construct_libvirt_xml_lifecycle (guestfs_h *g, xmlTextWriterPtr xo); static int construct_libvirt_xml_devices (guestfs_h *g, xmlTextWriterPtr xo, const char *appliance, size_t appliance_index, const char *guestfsd_sock, const char *console_sock); static int construct_libvirt_xml_qemu_cmdline (guestfs_h *g, xmlTextWriterPtr xo); static int construct_libvirt_xml_disk (guestfs_h *g, xmlTextWriterPtr xo, struct drive *drv, size_t drv_index); @@ -457,6 +458,8 @@ construct_libvirt_xml (guestfs_h *g, const char *capabilities_xml, goto err; if (construct_libvirt_xml_seclabel (g, xo) == -1) goto err; + if (construct_libvirt_xml_lifecycle (g, xo) == -1) + goto err; if (construct_libvirt_xml_devices (g, xo, appliance, appliance_index, guestfsd_sock, console_sock) == -1) goto err; @@ -643,6 +646,20 @@ construct_libvirt_xml_seclabel (guestfs_h *g, xmlTextWriterPtr xo) return -1; } +/* qemu -no-reboot */ +static int +construct_libvirt_xml_lifecycle (guestfs_h *g, xmlTextWriterPtr xo) +{ + XMLERROR (-1, xmlTextWriterStartElement (xo, BAD_CAST "on_reboot")); + XMLERROR (-1, xmlTextWriterWriteString (xo, BAD_CAST "destroy")); + XMLERROR (-1, xmlTextWriterEndElement (xo)); + + return 0; + + err: + return -1; +} + /* Devices. */ static int construct_libvirt_xml_devices (guestfs_h *g, xmlTextWriterPtr xo, |