[libvirt] [PATCH 1/2] virsh: Add check for domain state before attempting resume

John Ferlan jferlan at redhat.com
Mon Apr 15 16:49:13 UTC 2013


---
 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




More information about the libvir-list mailing list