summaryrefslogtreecommitdiffstats
path: root/src/launch-libvirt.c
diff options
context:
space:
mode:
authorRichard W.M. Jones <rjones@redhat.com>2012-07-23 16:43:14 +0100
committerRichard W.M. Jones <rjones@redhat.com>2012-07-23 16:43:14 +0100
commit5fb0f4e07ecaa3e084d3ae173606d6f03df393c3 (patch)
tree8e674ab2c216dd8c00c03dc47a74ad7aa644e0b0 /src/launch-libvirt.c
parent20a5b4de7ddc4221544784df65eb472481698dcb (diff)
downloadlibguestfs-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.c17
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,