]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
virsh: Use VIR_ENUM_* for --format argument in doDump
authorLin Ma <lma@suse.com>
Mon, 7 Jun 2021 03:14:17 +0000 (11:14 +0800)
committerMichal Privoznik <mprivozn@redhat.com>
Mon, 7 Jun 2021 14:30:56 +0000 (16:30 +0200)
Signed-off-by: Lin Ma <lma@suse.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
tools/virsh-domain.c
tools/virsh-domain.h

index e42c4d612da0f3ec13769071419efc2df0bb5dcb..78276dd8479a1cd503661a10dd77c88369d8ab96 100644 (file)
@@ -5410,6 +5410,14 @@ static const vshCmdOptDef opts_dump[] = {
     {.name = NULL}
 };
 
+VIR_ENUM_IMPL(virDomainCoreDumpFormat,
+              VIR_DOMAIN_CORE_DUMP_FORMAT_LAST,
+              "kdump-zlib",
+              "kdump-lzo",
+              "kdump-snappy",
+              "elf",
+              "win-dmp");
+
 static void
 doDump(void *opaque)
 {
@@ -5421,7 +5429,7 @@ doDump(void *opaque)
     const char *to = NULL;
     unsigned int flags = 0;
     const char *format = NULL;
-    unsigned int dumpformat = VIR_DOMAIN_CORE_DUMP_FORMAT_RAW;
+    int dumpformat = VIR_DOMAIN_CORE_DUMP_FORMAT_RAW;
 #ifndef WIN32
     sigset_t sigmask, oldsigmask;
 
@@ -5455,20 +5463,10 @@ doDump(void *opaque)
         }
 
         if (vshCommandOptStringQuiet(ctl, cmd, "format", &format) > 0) {
-            if (STREQ(format, "kdump-zlib")) {
-                dumpformat = VIR_DOMAIN_CORE_DUMP_FORMAT_KDUMP_ZLIB;
-            } else if (STREQ(format, "kdump-lzo")) {
-                dumpformat = VIR_DOMAIN_CORE_DUMP_FORMAT_KDUMP_LZO;
-            } else if (STREQ(format, "kdump-snappy")) {
-                dumpformat = VIR_DOMAIN_CORE_DUMP_FORMAT_KDUMP_SNAPPY;
-            } else if (STREQ(format, "elf")) {
-                dumpformat = VIR_DOMAIN_CORE_DUMP_FORMAT_RAW;
-            } else if (STREQ(format, "win-dmp")) {
-                dumpformat = VIR_DOMAIN_CORE_DUMP_FORMAT_WIN_DMP;
-            } else {
+            if ((dumpformat = virDomainCoreDumpFormatTypeFromString(format)) < 0) {
                 vshError(ctl, _("format '%s' is not supported, expecting "
-                                "'kdump-zlib', 'kdump-lzo', 'kdump-snappy' "
-                                "or 'elf'"), format);
+                                "'kdump-zlib', 'kdump-lzo', 'kdump-snappy', "
+                                "'win-dmp' or 'elf'"), format);
                 goto out;
             }
         }
index 70e2aba1b10dafcfb88bc7373cfc1c7011e26847..0c1cc7a6309956f7daa16f84daec093ff861fd9f 100644 (file)
@@ -43,3 +43,4 @@ extern const vshCmdDef domManagementCmds[];
 VIR_ENUM_DECL(virDomainProcessSignal);
 VIR_ENUM_DECL(virDomainLifecycle);
 VIR_ENUM_DECL(virDomainLifecycleAction);
+VIR_ENUM_DECL(virDomainCoreDumpFormat);