---
tools/virsh-domain.c | 16 +++++++++++++---
1 file changed, 13 insertions(+), 3 deletions(-)
diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c
index 4d0cc8f..f41a74b 100644
--- a/tools/virsh-domain.c
+++ b/tools/virsh-domain.c
@@ -4530,19 +4530,29 @@ static bool
cmdResume(vshControl *ctl, const vshCmd *cmd)
{
virDomainPtr dom;
- bool ret = true;
+ bool ret = false;
const char *name;
+ int state;
if (!(dom = vshCommandOptDomain(ctl, cmd, &name)))
- return false;
+ goto cleanup;
+ if ((state = vshDomainState(ctl, dom, NULL)) < 0) {
+ vshPrint(ctl, _("Unable to get domain status"));
+ goto cleanup;
+ }
+ if (state != VIR_DOMAIN_PAUSED) {
+ vshPrint(ctl, _("Domain %s is not paused"), name);
+ goto cleanup;
+ }
if (virDomainResume(dom) == 0) {
vshPrint(ctl, _("Domain %s resumed\n"), name);
+ ret = true;
} else {
vshError(ctl, _("Failed to resume domain %s"), name);
- ret = false;
}
+cleanup:
virDomainFree(dom);
return ret;
}
--
1.8.1.4