[libvirt] [PATCH 02/12] virsh: Use VIR_ENUM_* for --target argument in cmdNodeSuspend

Lin Ma lma at suse.com
Tue Jun 15 00:38:22 UTC 2021


Signed-off-by: Lin Ma <lma at suse.com>
---
 tools/virsh-host.c | 17 +++++++++--------
 tools/virsh-host.h |  3 +++
 2 files changed, 12 insertions(+), 8 deletions(-)

diff --git a/tools/virsh-host.c b/tools/virsh-host.c
index 1eca0bc231..9d6d2b3645 100644
--- a/tools/virsh-host.c
+++ b/tools/virsh-host.c
@@ -950,6 +950,13 @@ cmdNodeMemStats(vshControl *ctl, const vshCmd *cmd)
 /*
  * "nodesuspend" command
  */
+
+VIR_ENUM_IMPL(virNodeSuspendTarget,
+              VIR_NODE_SUSPEND_TARGET_LAST,
+              "mem",
+              "disk",
+              "hybrid");
+
 static const vshCmdInfo info_nodesuspend[] = {
     {.name = "help",
      .data = N_("suspend the host node for a given time duration")
@@ -980,7 +987,7 @@ static bool
 cmdNodeSuspend(vshControl *ctl, const vshCmd *cmd)
 {
     const char *target = NULL;
-    unsigned int suspendTarget;
+    int suspendTarget;
     long long duration;
     virshControl *priv = ctl->privData;
 
@@ -990,13 +997,7 @@ cmdNodeSuspend(vshControl *ctl, const vshCmd *cmd)
     if (vshCommandOptLongLong(ctl, cmd, "duration", &duration) < 0)
         return false;
 
-    if (STREQ(target, "mem")) {
-        suspendTarget = VIR_NODE_SUSPEND_TARGET_MEM;
-    } else if (STREQ(target, "disk")) {
-        suspendTarget = VIR_NODE_SUSPEND_TARGET_DISK;
-    } else if (STREQ(target, "hybrid")) {
-        suspendTarget = VIR_NODE_SUSPEND_TARGET_HYBRID;
-    } else {
+    if ((suspendTarget = virNodeSuspendTargetTypeFromString(target)) < 0) {
         vshError(ctl, "%s", _("Invalid target"));
         return false;
     }
diff --git a/tools/virsh-host.h b/tools/virsh-host.h
index 92328c7deb..840f0b4538 100644
--- a/tools/virsh-host.h
+++ b/tools/virsh-host.h
@@ -21,5 +21,8 @@
 #pragma once
 
 #include "vsh.h"
+#include "virenum.h"
 
 extern const vshCmdDef hostAndHypervisorCmds[];
+
+VIR_ENUM_DECL(virNodeSuspendTarget);
-- 
2.26.2





More information about the libvir-list mailing list