Signed-off-by: Lin Ma <lma(a)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