From 3e044e6e4918905a6b16b3284007856f6b68cf7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C5=82awek=20Kap=C5=82o=C5=84ski?= Date: Sat, 22 Oct 2016 12:30:01 +0200 Subject: [PATCH] qemu, lxc: Raise error message when resuming running domain When user tries to resume already running domain (Qemu or LXC) VIR_ERR_OPERATION_INVALID error should be raised with message that domain is already running. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1009008 --- src/lxc/lxc_driver.c | 8 +++++++- src/qemu/qemu_driver.c | 4 ++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/lxc/lxc_driver.c b/src/lxc/lxc_driver.c index 466e67f11c..4a0165a616 100644 --- a/src/lxc/lxc_driver.c +++ b/src/lxc/lxc_driver.c @@ -3156,6 +3156,7 @@ static int lxcDomainResume(virDomainPtr dom) virDomainObjPtr vm; virObjectEventPtr event = NULL; int ret = -1; + int state; virLXCDomainObjPrivatePtr priv; virLXCDriverConfigPtr cfg = virLXCDriverGetConfig(driver); @@ -3176,7 +3177,12 @@ static int lxcDomainResume(virDomainPtr dom) goto endjob; } - if (virDomainObjGetState(vm, NULL) == VIR_DOMAIN_PAUSED) { + state = virDomainObjGetState(vm, NULL); + if (state == VIR_DOMAIN_RUNNING) { + virReportError(VIR_ERR_OPERATION_INVALID, + "%s", _("domain is already running")); + goto endjob; + } else if (state == VIR_DOMAIN_PAUSED) { if (virCgroupSetFreezerState(priv->cgroup, "THAWED") < 0) { virReportError(VIR_ERR_OPERATION_FAILED, "%s", _("Resume operation failed")); diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 3a518262a4..3f57a9fee0 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -1927,6 +1927,10 @@ static int qemuDomainResume(virDomainPtr dom) virReportError(VIR_ERR_OPERATION_INVALID, "%s", _("domain is pmsuspended")); goto endjob; + } else if (state == VIR_DOMAIN_RUNNING) { + virReportError(VIR_ERR_OPERATION_INVALID, + "%s", _("domain is already running")); + goto endjob; } else if ((state == VIR_DOMAIN_CRASHED && reason == VIR_DOMAIN_CRASHED_PANICKED) || state == VIR_DOMAIN_PAUSED) {