summaryrefslogtreecommitdiffstats
path: root/src/launch-libvirt.c
diff options
context:
space:
mode:
authorRichard W.M. Jones <rjones@redhat.com>2012-09-04 15:34:35 +0100
committerRichard W.M. Jones <rjones@redhat.com>2012-09-04 15:36:29 +0100
commitc4171ad58f61f72f5f6c6c8e711a7bcc19d20f75 (patch)
treec39e82b8e8846ec74a13d8795d5d7a857dfadb7b /src/launch-libvirt.c
parentcc4b3139d17b98d734d98286bb698bb3b105da05 (diff)
downloadlibguestfs-c4171ad58f61f72f5f6c6c8e711a7bcc19d20f75.tar.gz
libguestfs-c4171ad58f61f72f5f6c6c8e711a7bcc19d20f75.tar.xz
libguestfs-c4171ad58f61f72f5f6c6c8e711a7bcc19d20f75.zip
shutdown: Add 'check_for_errors' hint along the shutdown path.
This hint tells the backend whether anyone cares about errors when the appliance is shut down. Currently this only has any effect on the libvirt backend, where it controls whether or not we use the VIR_DOMAIN_DESTROY_GRACEFUL flag.
Diffstat (limited to 'src/launch-libvirt.c')
-rw-r--r--src/launch-libvirt.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/launch-libvirt.c b/src/launch-libvirt.c
index 04431641..37113633 100644
--- a/src/launch-libvirt.c
+++ b/src/launch-libvirt.c
@@ -1139,18 +1139,20 @@ ignore_errors (void *ignore, virErrorPtr ignore2)
}
static int
-shutdown_libvirt (guestfs_h *g)
+shutdown_libvirt (guestfs_h *g, int check_for_errors)
{
virConnectPtr conn = g->virt.connv;
virDomainPtr dom = g->virt.domv;
int ret = 0;
+ int flags;
/* Note that we can be called back very early in launch (specifically
* from launch_libvirt itself), when conn and dom might be NULL.
*/
if (dom != NULL) {
- if (virDomainDestroyFlags (dom, VIR_DOMAIN_DESTROY_GRACEFUL) == -1) {
+ flags = check_for_errors ? VIR_DOMAIN_DESTROY_GRACEFUL : 0;
+ if (virDomainDestroyFlags (dom, flags) == -1) {
libvirt_error (g, _("could not destroy libvirt domain"));
ret = -1;
}
@@ -1220,7 +1222,7 @@ launch_libvirt (guestfs_h *g, const char *arg)
}
static int
-shutdown_libvirt (guestfs_h *g)
+shutdown_libvirt (guestfs_h *g, int check_for_errors)
{
NOT_IMPL (-1);
}