[libvirt] [PATCH 2/2] virsh: Move error messages inside vshCommandOpt*() functions.

Andrea Bolognani abologna at redhat.com
Thu May 21 09:40:27 UTC 2015


---
 tests/vcpupin                |   4 +-
 tools/virsh-domain-monitor.c |   9 +--
 tools/virsh-domain.c         | 134 +++++++------------------------------------
 tools/virsh-host.c           |  57 +++---------------
 tools/virsh-interface.c      |   6 +-
 tools/virsh-network.c        |   6 +-
 tools/virsh-volume.c         |  24 ++------
 tools/virsh.c                |  88 ++++++++++++++++------------
 8 files changed, 89 insertions(+), 239 deletions(-)

diff --git a/tests/vcpupin b/tests/vcpupin
index ab0d38f..b6b8b31 100755
--- a/tests/vcpupin
+++ b/tests/vcpupin
@@ -34,7 +34,7 @@ fail=0
 $abs_top_builddir/tools/virsh --connect test:///default vcpupin test a 0,1 > out 2>&1
 test $? = 1 || fail=1
 cat <<\EOF > exp || fail=1
-error: Numeric value for <vcpu> option is malformed or out of range
+error: Numeric value 'a' for <vcpu> option is malformed or out of range
 
 EOF
 compare exp out || fail=1
@@ -52,7 +52,7 @@ compare exp out || fail=1
 $abs_top_builddir/tools/virsh --connect test:///default vcpupin test -100 0,1 > out 2>&1
 test $? = 1 || fail=1
 cat <<\EOF > exp || fail=1
-error: Numeric value for <vcpu> option is malformed or out of range
+error: Numeric value '-100' for <vcpu> option is malformed or out of range
 
 EOF
 compare exp out || fail=1
diff --git a/tools/virsh-domain-monitor.c b/tools/virsh-domain-monitor.c
index db7ef8b..5b17505 100644
--- a/tools/virsh-domain-monitor.c
+++ b/tools/virsh-domain-monitor.c
@@ -340,12 +340,8 @@ cmdDomMemStat(vshControl *ctl, const vshCmd *cmd)
     /* Providing a period will adjust the balloon driver collection period.
      * This is not really an unsigned long, but it
      */
-    if ((rv = vshCommandOptInt(ctl, cmd, "period", &period)) < 0) {
-        vshError(ctl,
-                 _("Numeric value for <%s> option is malformed or out of range"),
-                 "period");
+    if ((rv = vshCommandOptInt(ctl, cmd, "period", &period)) < 0)
         goto cleanup;
-    }
     if (rv > 0) {
         if (period < 0) {
             vshError(ctl, _("Invalid collection period value '%d'"), period);
@@ -1440,9 +1436,6 @@ cmdDomTime(vshControl *ctl, const vshCmd *cmd)
 
     if (rv < 0) {
         /* invalid integer format */
-        vshError(ctl,
-                 _("Numeric value for <%s> option is malformed or out of range"),
-                 "time");
         goto cleanup;
     } else if (rv > 0) {
         /* valid integer to set */
diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c
index bb8e20a..5094b2a 100644
--- a/tools/virsh-domain.c
+++ b/tools/virsh-domain.c
@@ -1552,9 +1552,6 @@ cmdBlkiotune(vshControl * ctl, const vshCmd * cmd)
         return false;
 
     if ((rv = vshCommandOptInt(ctl, cmd, "weight", &weight)) < 0) {
-        vshError(ctl,
-                 _("Numeric value for <%s> option is malformed or out of range"),
-                 "weight");
         goto cleanup;
     } else if (rv > 0) {
         if (weight <= 0) {
@@ -1692,12 +1689,8 @@ blockJobImpl(vshControl *ctl, const vshCmd *cmd,
     if (vshCommandOptStringReq(ctl, cmd, "path", &path) < 0)
         goto cleanup;
 
-    if (vshCommandOptULWrap(ctl, cmd, "bandwidth", &bandwidth) < 0) {
-        vshError(ctl,
-                 _("Numeric value for <%s> option is malformed or out of range"),
-                 "bandwidth");
+    if (vshCommandOptULWrap(ctl, cmd, "bandwidth", &bandwidth) < 0)
         goto cleanup;
-    }
 
     switch (mode) {
     case VSH_CMD_BLOCK_JOB_ABORT:
@@ -2216,24 +2209,12 @@ cmdBlockCopy(vshControl *ctl, const vshCmd *cmd)
      * MiB/s, and either reject negative input or treat it as 0 rather
      * than trying to guess which value will work well across both
      * APIs with their different sizes and scales.  */
-    if (vshCommandOptULWrap(ctl, cmd, "bandwidth", &bandwidth) < 0) {
-        vshError(ctl,
-                 _("Numeric value for <%s> option is malformed or out of range"),
-                 "bandwidth");
+    if (vshCommandOptULWrap(ctl, cmd, "bandwidth", &bandwidth) < 0)
         goto cleanup;
-    }
-    if (vshCommandOptUInt(ctl, cmd, "granularity", &granularity) < 0) {
-        vshError(ctl,
-                 _("Numeric value for <%s> option is malformed or out of range"),
-                 "granularity");
+    if (vshCommandOptUInt(ctl, cmd, "granularity", &granularity) < 0)
         goto cleanup;
-    }
-    if (vshCommandOptULongLong(ctl, cmd, "buf-size", &buf_size) < 0) {
-        vshError(ctl,
-                 _("Numeric value for <%s> option is malformed or out of range"),
-                 "buf-size");
+    if (vshCommandOptULongLong(ctl, cmd, "buf-size", &buf_size) < 0)
         goto cleanup;
-    }
 
     if (xml) {
         if (virFileReadAll(xml, VSH_MAX_XML_FILE, &xmlstr) < 0) {
@@ -2800,12 +2781,8 @@ cmdBlockResize(vshControl *ctl, const vshCmd *cmd)
     if (vshCommandOptStringReq(ctl, cmd, "path", (const char **) &path) < 0)
         return false;
 
-    if (vshCommandOptScaledInt(ctl, cmd, "size", &size, 1024, ULLONG_MAX) < 0) {
-        vshError(ctl,
-                 _("Numeric value for <%s> option is malformed or out of range"),
-                 "size");
+    if (vshCommandOptScaledInt(ctl, cmd, "size", &size, 1024, ULLONG_MAX) < 0)
         return false;
-    }
 
     /* Prefer the older interface of KiB.  */
     if (size % 1024 == 0)
@@ -3406,12 +3383,8 @@ cmdDomPMSuspend(vshControl *ctl, const vshCmd *cmd)
     if (!(dom = vshCommandOptDomain(ctl, cmd, &name)))
         return false;
 
-    if (vshCommandOptULongLong(ctl, cmd, "duration", &duration) < 0) {
-        vshError(ctl,
-                 _("Numeric value for <%s> option is malformed or out of range"),
-                 "duration");
+    if (vshCommandOptULongLong(ctl, cmd, "duration", &duration) < 0)
         goto cleanup;
-    }
 
     if (vshCommandOptStringReq(ctl, cmd, "target", &target) < 0)
         goto cleanup;
@@ -5330,12 +5303,8 @@ cmdScreenshot(vshControl *ctl, const vshCmd *cmd)
     if (vshCommandOptStringReq(ctl, cmd, "file", (const char **) &file) < 0)
         return false;
 
-    if (vshCommandOptUInt(ctl, cmd, "screen", &screen) < 0) {
-        vshError(ctl,
-                 _("Numeric value for <%s> option is malformed or out of range"),
-                 "screen");
+    if (vshCommandOptUInt(ctl, cmd, "screen", &screen) < 0)
         return false;
-    }
 
     if (!(dom = vshCommandOptDomain(ctl, cmd, &name)))
         return false;
@@ -6429,12 +6398,8 @@ cmdVcpuPin(vshControl *ctl, const vshCmd *cmd)
     if (!cpulist)
         VSH_EXCLUSIVE_OPTIONS_VAR(live, config);
 
-    if ((got_vcpu = vshCommandOptUInt(ctl, cmd, "vcpu", &vcpu)) < 0) {
-        vshError(ctl,
-                 _("Numeric value for <%s> option is malformed or out of range"),
-                 "vcpu");
+    if ((got_vcpu = vshCommandOptUInt(ctl, cmd, "vcpu", &vcpu)) < 0)
         return false;
-    }
 
     /* In pin mode, "vcpu" is necessary */
     if (cpulist && got_vcpu == 0) {
@@ -6698,12 +6663,8 @@ cmdSetvcpus(vshControl *ctl, const vshCmd *cmd)
     if (!(dom = vshCommandOptDomain(ctl, cmd, NULL)))
         return false;
 
-    if (vshCommandOptInt(ctl, cmd, "count", &count) < 0 || count <= 0) {
-        vshError(ctl,
-                 _("Numeric value for <%s> option is malformed or out of range"),
-                 "count");
+    if (vshCommandOptInt(ctl, cmd, "count", &count) < 0 || count <= 0)
         goto cleanup;
-    }
 
     /* none of the options were specified */
     if (!current && flags == 0) {
@@ -6878,12 +6839,8 @@ cmdIOThreadPin(vshControl *ctl, const vshCmd *cmd)
     if (!(dom = vshCommandOptDomain(ctl, cmd, NULL)))
         return false;
 
-    if (vshCommandOptUInt(ctl, cmd, "iothread", &iothread_id) < 0) {
-        vshError(ctl,
-                 _("Numeric value for <%s> option is malformed or out of range"),
-                 "iothread");
+    if (vshCommandOptUInt(ctl, cmd, "iothread", &iothread_id) < 0)
         goto cleanup;
-    }
 
     if (vshCommandOptString(ctl, cmd, "cpulist", &cpulist) < 0) {
         vshError(ctl, "%s", _("iothreadpin: invalid cpulist."));
@@ -6969,12 +6926,8 @@ cmdIOThreadAdd(vshControl *ctl, const vshCmd *cmd)
     if (!(dom = vshCommandOptDomain(ctl, cmd, NULL)))
         return false;
 
-    if (vshCommandOptInt(ctl, cmd, "id", &iothread_id) < 0) {
-        vshError(ctl,
-                 _("Numeric value for <%s> option is malformed or out of range"),
-                 "id");
+    if (vshCommandOptInt(ctl, cmd, "id", &iothread_id) < 0)
         goto cleanup;
-    }
     if (iothread_id <= 0) {
         vshError(ctl, _("Invalid IOThread id value: '%d'"), iothread_id);
         goto cleanup;
@@ -7051,12 +7004,8 @@ cmdIOThreadDel(vshControl *ctl, const vshCmd *cmd)
     if (!(dom = vshCommandOptDomain(ctl, cmd, NULL)))
         return false;
 
-    if (vshCommandOptInt(ctl, cmd, "id", &iothread_id) < 0) {
-        vshError(ctl,
-                 _("Numeric value for <%s> option is malformed or out of range"),
-                 "id");
+    if (vshCommandOptInt(ctl, cmd, "id", &iothread_id) < 0)
         goto cleanup;
-    }
     if (iothread_id <= 0) {
         vshError(ctl, _("Invalid IOThread id value: '%d'"), iothread_id);
         goto cleanup;
@@ -7341,9 +7290,6 @@ cmdCPUStats(vshControl *ctl, const vshCmd *cmd)
     show_total = vshCommandOptBool(ctl, cmd, "total");
 
     if ((rv = vshCommandOptInt(ctl, cmd, "start", &cpu)) < 0) {
-        vshError(ctl,
-                 _("Numeric value for <%s> option is malformed or out of range"),
-                 "start");
         goto cleanup;
     } else if (rv > 0) {
         if (cpu < 0) {
@@ -7354,9 +7300,6 @@ cmdCPUStats(vshControl *ctl, const vshCmd *cmd)
     }
 
     if ((rv = vshCommandOptInt(ctl, cmd, "count", &show_count)) < 0) {
-        vshError(ctl,
-                 _("Numeric value for <%s> option is malformed or out of range"),
-                 "count");
         goto cleanup;
     } else if (rv > 0) {
         if (show_count < 0) {
@@ -8143,12 +8086,8 @@ cmdSendKey(vshControl *ctl, const vshCmd *cmd)
     if (vshCommandOptString(ctl, cmd, "codeset", &codeset_option) <= 0)
         codeset_option = "linux";
 
-    if (vshCommandOptUInt(ctl, cmd, "holdtime", &holdtime) < 0) {
-        vshError(ctl,
-                 _("Numeric value for <%s> option is malformed or out of range"),
-                 "holdtime");
+    if (vshCommandOptUInt(ctl, cmd, "holdtime", &holdtime) < 0)
         goto cleanup;
-    }
 
     codeset = virKeycodeSetTypeFromString(codeset_option);
     if (codeset < 0) {
@@ -8269,12 +8208,8 @@ cmdSendProcessSignal(vshControl *ctl, const vshCmd *cmd)
     if (!(dom = vshCommandOptDomain(ctl, cmd, NULL)))
         return false;
 
-    if (vshCommandOptLongLong(ctl, cmd, "pid", &pid_value) < 0) {
-        vshError(ctl,
-                 _("Numeric value for <%s> option is malformed or out of range"),
-                 "pid");
+    if (vshCommandOptLongLong(ctl, cmd, "pid", &pid_value) < 0)
         goto cleanup;
-    }
 
     if (vshCommandOptStringReq(ctl, cmd, "signame", &signame) < 0)
         goto cleanup;
@@ -8371,9 +8306,6 @@ cmdSetmem(vshControl *ctl, const vshCmd *cmd)
     else
         max = ULONG_MAX;
     if (vshCommandOptScaledInt(ctl, cmd, "size", &bytes, 1024, max) < 0) {
-        vshError(ctl,
-                 _("Numeric value for <%s> option is malformed or out of range"),
-                 "size");
         virDomainFree(dom);
         return false;
     }
@@ -8468,9 +8400,6 @@ cmdSetmaxmem(vshControl *ctl, const vshCmd *cmd)
     else
         max = ULONG_MAX;
     if (vshCommandOptScaledInt(ctl, cmd, "size", &bytes, 1024, max) < 0) {
-        vshError(ctl,
-                 _("Numeric value for <%s> option is malformed or out of range"),
-                 "size");
         virDomainFree(dom);
         return false;
     }
@@ -9103,12 +9032,8 @@ cmdQemuAttach(vshControl *ctl, const vshCmd *cmd)
     unsigned int flags = 0;
     unsigned int pid_value; /* API uses unsigned int, not pid_t */
 
-    if (vshCommandOptUInt(ctl, cmd, "pid", &pid_value) <= 0) {
-        vshError(ctl,
-                 _("Numeric value for <%s> option is malformed or out of range"),
-                 "pid");
+    if (vshCommandOptUInt(ctl, cmd, "pid", &pid_value) <= 0)
         goto cleanup;
-    }
 
     if (!(dom = virDomainQemuAttach(ctl->conn, pid_value, flags))) {
         vshError(ctl, _("Failed to attach to pid %u"), pid_value);
@@ -9200,14 +9125,10 @@ cmdQemuAgentCommand(vshControl *ctl, const vshCmd *cmd)
     guest_agent_cmd = virBufferContentAndReset(&buf);
 
     judge = vshCommandOptInt(ctl, cmd, "timeout", &timeout);
-    if (judge < 0) {
-        vshError(ctl,
-                 _("Numeric value for <%s> option is malformed or out of range"),
-                 "timeout");
+    if (judge < 0)
         goto cleanup;
-    } else if (judge > 0) {
+    else if (judge > 0)
         judge = 1;
-    }
     if (judge && timeout < 1) {
         vshError(ctl, "%s", _("timeout must be positive"));
         goto cleanup;
@@ -10085,12 +10006,8 @@ cmdMigrateSetMaxDowntime(vshControl *ctl, const vshCmd *cmd)
     if (!(dom = vshCommandOptDomain(ctl, cmd, NULL)))
         return false;
 
-    if (vshCommandOptLongLong(ctl, cmd, "downtime", &downtime) < 0) {
-        vshError(ctl,
-                 _("Numeric value for <%s> option is malformed or out of range"),
-                 "downtime");
+    if (vshCommandOptLongLong(ctl, cmd, "downtime", &downtime) < 0)
         goto done;
-    }
     if (downtime < 1) {
         vshError(ctl, "%s", _("migrate: Invalid downtime"));
         goto done;
@@ -10149,9 +10066,6 @@ cmdMigrateCompCache(vshControl *ctl, const vshCmd *cmd)
 
     rc = vshCommandOptULongLong(ctl, cmd, "size", &size);
     if (rc < 0) {
-        vshError(ctl,
-                 _("Numeric value for <%s> option is malformed or out of range"),
-                 "size");
         goto cleanup;
     } else if (rc != 0) {
         if (virDomainMigrateSetCompressionCache(dom, size, 0) < 0)
@@ -10208,12 +10122,8 @@ cmdMigrateSetMaxSpeed(vshControl *ctl, const vshCmd *cmd)
     if (!(dom = vshCommandOptDomain(ctl, cmd, NULL)))
         return false;
 
-    if (vshCommandOptULWrap(ctl, cmd, "bandwidth", &bandwidth) < 0) {
-        vshError(ctl,
-                 _("Numeric value for <%s> option is malformed or out of range"),
-                 "bandwidth");
+    if (vshCommandOptULWrap(ctl, cmd, "bandwidth", &bandwidth) < 0)
         goto done;
-    }
 
     if (virDomainMigrateSetMaxSpeed(dom, bandwidth, 0) < 0)
         goto done;
@@ -12548,12 +12458,8 @@ cmdDomFSTrim(vshControl *ctl, const vshCmd *cmd)
     if (!(dom = vshCommandOptDomain(ctl, cmd, NULL)))
         return ret;
 
-    if (vshCommandOptULongLong(ctl, cmd, "minimum", &minimum) < 0) {
-        vshError(ctl,
-                 _("Numeric value for <%s> option is malformed or out of range"),
-                 "minimum");
+    if (vshCommandOptULongLong(ctl, cmd, "minimum", &minimum) < 0)
         goto cleanup;
-    }
 
     if (vshCommandOptStringReq(ctl, cmd, "mountpoint", &mountPoint) < 0)
         goto cleanup;
diff --git a/tools/virsh-host.c b/tools/virsh-host.c
index aa37aa6..7ec9373 100644
--- a/tools/virsh-host.c
+++ b/tools/virsh-host.c
@@ -176,12 +176,8 @@ cmdFreecell(vshControl *ctl, const vshCmd *cmd)
 
     VSH_EXCLUSIVE_OPTIONS_VAR(all, cellno);
 
-    if (cellno && vshCommandOptInt(ctl, cmd, "cellno", &cell) < 0) {
-        vshError(ctl,
-                 _("Numeric value for <%s> option is malformed or out of range"),
-                 "cellno");
+    if (cellno && vshCommandOptInt(ctl, cmd, "cellno", &cell) < 0)
         return false;
-    }
 
     if (all) {
         if (!(cap_xml = virConnectGetCapabilities(ctl->conn))) {
@@ -311,12 +307,8 @@ cmdFreepages(vshControl *ctl, const vshCmd *cmd)
 
     VSH_EXCLUSIVE_OPTIONS_VAR(all, cellno);
 
-    if (vshCommandOptScaledInt(ctl, cmd, "pagesize", &bytes, 1024, UINT_MAX) < 0) {
-        vshError(ctl,
-                 _("Numeric value for <%s> option is malformed or out of range"),
-                 "pagesize");
+    if (vshCommandOptScaledInt(ctl, cmd, "pagesize", &bytes, 1024, UINT_MAX) < 0)
         goto cleanup;
-    }
     kibibytes = VIR_DIV_UP(bytes, 1024);
 
     if (all) {
@@ -391,12 +383,8 @@ cmdFreepages(vshControl *ctl, const vshCmd *cmd)
             goto cleanup;
         }
 
-        if (vshCommandOptInt(ctl, cmd, "cellno", &cell) < 0) {
-            vshError(ctl,
-                     _("Numeric value for <%s> option is malformed or out of range"),
-                     "cellno");
+        if (vshCommandOptInt(ctl, cmd, "cellno", &cell) < 0)
             goto cleanup;
-        }
 
         if (cell < -1) {
             vshError(ctl, "%s",
@@ -490,19 +478,11 @@ cmdAllocpages(vshControl *ctl, const vshCmd *cmd)
 
     VSH_EXCLUSIVE_OPTIONS_VAR(all, cellno);
 
-    if (cellno && vshCommandOptInt(ctl, cmd, "cellno", &startCell) < 0) {
-        vshError(ctl,
-                 _("Numeric value for <%s> option is malformed or out of range"),
-                 "cellno");
+    if (cellno && vshCommandOptInt(ctl, cmd, "cellno", &startCell) < 0)
         return false;
-    }
 
-    if (vshCommandOptScaledInt(ctl, cmd, "pagesize", &tmp, 1024, UINT_MAX) < 0) {
-        vshError(ctl,
-                 _("Numeric value for <%s> option is malformed or out of range"),
-                 "cellno");
+    if (vshCommandOptScaledInt(ctl, cmd, "pagesize", &tmp, 1024, UINT_MAX) < 0)
         return false;
-    }
     pageSizes[0] = VIR_DIV_UP(tmp, 1024);
 
     if (vshCommandOptULongLong(ctl, cmd, "pagecount", &pageCounts[0]) < 0) {
@@ -764,12 +744,8 @@ cmdNodeCpuStats(vshControl *ctl, const vshCmd *cmd)
     unsigned long long cpu_stats[VSH_CPU_LAST] = { 0 };
     bool present[VSH_CPU_LAST] = { false };
 
-    if (vshCommandOptInt(ctl, cmd, "cpu", &cpuNum) < 0) {
-        vshError(ctl,
-                 _("Numeric value for <%s> option is malformed or out of range"),
-                 "cpu");
+    if (vshCommandOptInt(ctl, cmd, "cpu", &cpuNum) < 0)
         return false;
-    }
 
     if (virNodeGetCPUStats(ctl->conn, cpuNum, NULL, &nparams, 0) != 0) {
         vshError(ctl, "%s",
@@ -875,12 +851,8 @@ cmdNodeMemStats(vshControl *ctl, const vshCmd *cmd)
     virNodeMemoryStatsPtr params = NULL;
     bool ret = false;
 
-    if (vshCommandOptInt(ctl, cmd, "cell", &cellNum) < 0) {
-        vshError(ctl,
-                 _("Numeric value for <%s> option is malformed or out of range"),
-                 "cell");
+    if (vshCommandOptInt(ctl, cmd, "cell", &cellNum) < 0)
         return false;
-    }
 
     /* get the number of memory parameters */
     if (virNodeGetMemoryStats(ctl->conn, cellNum, NULL, &nparams, 0) != 0) {
@@ -951,12 +923,8 @@ cmdNodeSuspend(vshControl *ctl, const vshCmd *cmd)
     if (vshCommandOptStringReq(ctl, cmd, "target", &target) < 0)
         return false;
 
-    if (vshCommandOptLongLong(ctl, cmd, "duration", &duration) < 0) {
-        vshError(ctl,
-                 _("Numeric value for <%s> option is malformed or out of range"),
-                 "duration");
+    if (vshCommandOptLongLong(ctl, cmd, "duration", &duration) < 0)
         return false;
-    }
 
     if (STREQ(target, "mem")) {
         suspendTarget = VIR_NODE_SUSPEND_TARGET_MEM;
@@ -1261,9 +1229,6 @@ cmdNodeMemoryTune(vshControl *ctl, const vshCmd *cmd)
     size_t i;
 
     if ((rc = vshCommandOptUInt(ctl, cmd, "shm-pages-to-scan", &value)) < 0) {
-        vshError(ctl,
-                 _("Numeric value for <%s> option is malformed or out of range"),
-                 "shm-pages-to-scan");
         goto cleanup;
     } else if (rc > 0) {
         if (virTypedParamsAddUInt(&params, &nparams, &maxparams,
@@ -1273,9 +1238,6 @@ cmdNodeMemoryTune(vshControl *ctl, const vshCmd *cmd)
     }
 
     if ((rc = vshCommandOptUInt(ctl, cmd, "shm-sleep-millisecs", &value)) < 0) {
-        vshError(ctl,
-                 _("Numeric value for <%s> option is malformed or out of range"),
-                 "shm-sleep-millisecs");
         goto cleanup;
     } else if (rc > 0) {
         if (virTypedParamsAddUInt(&params, &nparams, &maxparams,
@@ -1285,9 +1247,6 @@ cmdNodeMemoryTune(vshControl *ctl, const vshCmd *cmd)
     }
 
     if ((rc = vshCommandOptUInt(ctl, cmd, "shm-merge-across-nodes", &value)) < 0) {
-        vshError(ctl,
-                 _("Numeric value for <%s> option is malformed or out of range"),
-                 "shm-merge-across-nodes");
         goto cleanup;
     } else if (rc > 0) {
         if (virTypedParamsAddUInt(&params, &nparams, &maxparams,
diff --git a/tools/virsh-interface.c b/tools/virsh-interface.c
index 0f8ea95..671facc 100644
--- a/tools/virsh-interface.c
+++ b/tools/virsh-interface.c
@@ -843,12 +843,8 @@ cmdInterfaceBridge(vshControl *ctl, const vshCmd *cmd)
     /* use "no-stp" because we want "stp" to default true */
     stp = !vshCommandOptBool(ctl, cmd, "no-stp");
 
-    if (vshCommandOptUInt(ctl, cmd, "delay", &delay) < 0) {
-        vshError(ctl,
-                 _("Numeric value for <%s> option is malformed or out of range"),
-                 "delay");
+    if (vshCommandOptUInt(ctl, cmd, "delay", &delay) < 0)
         goto cleanup;
-    }
 
     nostart = vshCommandOptBool(ctl, cmd, "no-start");
 
diff --git a/tools/virsh-network.c b/tools/virsh-network.c
index 8a52834..58d7906 100644
--- a/tools/virsh-network.c
+++ b/tools/virsh-network.c
@@ -936,12 +936,8 @@ cmdNetworkUpdate(vshControl *ctl, const vshCmd *cmd)
         goto cleanup;
     }
 
-    if (vshCommandOptInt(ctl, cmd, "parent-index", &parentIndex) < 0) {
-        vshError(ctl,
-                 _("Numeric value for <%s> option is malformed or out of range"),
-                 "parent-index");
+    if (vshCommandOptInt(ctl, cmd, "parent-index", &parentIndex) < 0)
         goto cleanup;
-    }
 
     /* The goal is to have a full xml element in the "xml"
      * string. This is provided in the --xml option, either directly
diff --git a/tools/virsh-volume.c b/tools/virsh-volume.c
index 07dfd67..640ecb3 100644
--- a/tools/virsh-volume.c
+++ b/tools/virsh-volume.c
@@ -693,19 +693,11 @@ cmdVolUpload(vshControl *ctl, const vshCmd *cmd)
     const char *name = NULL;
     unsigned long long offset = 0, length = 0;
 
-    if (vshCommandOptULongLong(ctl, cmd, "offset", &offset) < 0) {
-        vshError(ctl,
-                 _("Numeric value for <%s> option is malformed or out of range"),
-                 "offset");
+    if (vshCommandOptULongLong(ctl, cmd, "offset", &offset) < 0)
         return false;
-    }
 
-    if (vshCommandOptULongLongWrap(ctl, cmd, "length", &length) < 0) {
-        vshError(ctl,
-                 _("Numeric value for <%s> option is malformed or out of range"),
-                 "length");
+    if (vshCommandOptULongLongWrap(ctl, cmd, "length", &length) < 0)
         return false;
-    }
 
     if (!(vol = vshCommandOptVol(ctl, cmd, "vol", "pool", &name)))
         return false;
@@ -806,19 +798,11 @@ cmdVolDownload(vshControl *ctl, const vshCmd *cmd)
     unsigned long long offset = 0, length = 0;
     bool created = false;
 
-    if (vshCommandOptULongLong(ctl, cmd, "offset", &offset) < 0) {
-        vshError(ctl,
-                 _("Numeric value for <%s> option is malformed or out of range"),
-                 "offset");
+    if (vshCommandOptULongLong(ctl, cmd, "offset", &offset) < 0)
         return false;
-    }
 
-    if (vshCommandOptULongLongWrap(ctl, cmd, "length", &length) < 0) {
-        vshError(ctl,
-                 _("Numeric value for <%s> option is malformed or out of range"),
-                 "length");
+    if (vshCommandOptULongLongWrap(ctl, cmd, "length", &length) < 0)
         return false;
-    }
 
     if (!(vol = vshCommandOptVol(ctl, cmd, "vol", "pool", &name)))
         return false;
diff --git a/tools/virsh.c b/tools/virsh.c
index 9f94b75..b5da6fe 100644
--- a/tools/virsh.c
+++ b/tools/virsh.c
@@ -1522,13 +1522,17 @@ vshCommandOptInt(vshControl *ctl, const vshCmd *cmd,
     vshCmdOpt *arg;
     int ret;
 
-    ret = vshCommandOpt(ctl, cmd, name, &arg, true);
-    if (ret <= 0)
+    if ((ret = vshCommandOpt(ctl, cmd, name, &arg, true)) <= 0)
         return ret;
 
-    if (virStrToLong_i(arg->data, NULL, 10, value) < 0)
-        return -1;
-    return 1;
+    if ((ret = virStrToLong_i(arg->data, NULL, 10, value)) < 0)
+        vshError(ctl,
+                 _("Numeric value '%s' for <%s> option is malformed or out of range"),
+                 arg->data, name);
+    else
+        ret = 1;
+
+    return ret;
 }
 
 static int
@@ -1542,15 +1546,18 @@ vshCommandOptUIntInternal(vshControl *ctl, const vshCmd *cmd,
     if ((ret = vshCommandOpt(ctl, cmd, name, &arg, true)) <= 0)
         return ret;
 
-    if (wrap) {
-        if (virStrToLong_ui(arg->data, NULL, 10, value) < 0)
-            return -1;
-    } else {
-        if (virStrToLong_uip(arg->data, NULL, 10, value) < 0)
-            return -1;
-    }
+    if (wrap)
+        ret = virStrToLong_ui(arg->data, NULL, 10, value);
+    else
+        ret = virStrToLong_uip(arg->data, NULL, 10, value);
+    if (ret < 0)
+        vshError(ctl,
+                 _("Numeric value '%s' for <%s> option is malformed or out of range"),
+                 arg->data, name);
+    else
+        ret = 1;
 
-    return 1;
+    return ret;
 }
 
 /**
@@ -1596,15 +1603,18 @@ vshCommandOptULInternal(vshControl *ctl, const vshCmd *cmd,
     if ((ret = vshCommandOpt(ctl, cmd, name, &arg, true)) <= 0)
         return ret;
 
-    if (wrap) {
-        if (virStrToLong_ul(arg->data, NULL, 10, value) < 0)
-            return -1;
-    } else {
-        if (virStrToLong_ulp(arg->data, NULL, 10, value) < 0)
-            return -1;
-    }
+    if (wrap)
+        ret = virStrToLong_ul(arg->data, NULL, 10, value);
+    else
+        ret = virStrToLong_ulp(arg->data, NULL, 10, value);
+    if (ret < 0)
+        vshError(ctl,
+                 _("Numeric value '%s' for <%s> option is malformed or out of range"),
+                 arg->data, name);
+    else
+        ret = 1;
 
-    return 1;
+    return ret;
 }
 
 /*
@@ -1658,8 +1668,7 @@ vshCommandOptString(vshControl *ctl, const vshCmd *cmd,
     vshCmdOpt *arg;
     int ret;
 
-    ret = vshCommandOpt(ctl, cmd, name, &arg, true);
-    if (ret <= 0)
+    if ((ret = vshCommandOpt(ctl, cmd, name, &arg, true)) <= 0)
         return ret;
 
     if (!*arg->data && !(arg->def->flags & VSH_OFLAG_EMPTY_OK))
@@ -1727,13 +1736,17 @@ vshCommandOptLongLong(vshControl *ctl, const vshCmd *cmd,
     vshCmdOpt *arg;
     int ret;
 
-    ret = vshCommandOpt(ctl, cmd, name, &arg, true);
-    if (ret <= 0)
+    if ((ret = vshCommandOpt(ctl, cmd, name, &arg, true)) <= 0)
         return ret;
 
-    if (virStrToLong_ll(arg->data, NULL, 10, value) < 0)
-        return -1;
-    return 1;
+    if ((ret = virStrToLong_ll(arg->data, NULL, 10, value)) < 0)
+        vshError(ctl,
+                 _("Numeric value '%s' for <%s> option is malformed or out of range"),
+                 arg->data, name);
+    else
+        ret = 1;
+
+    return ret;
 }
 
 static int
@@ -1747,15 +1760,18 @@ vshCommandOptULongLongInternal(vshControl *ctl, const vshCmd *cmd,
     if ((ret = vshCommandOpt(ctl, cmd, name, &arg, true)) <= 0)
         return ret;
 
-    if (wrap) {
-        if (virStrToLong_ull(arg->data, NULL, 10, value) < 0)
-            return -1;
-    } else {
-        if (virStrToLong_ullp(arg->data, NULL, 10, value) < 0)
-            return -1;
-    }
+    if (wrap)
+        ret = virStrToLong_ull(arg->data, NULL, 10, value);
+    else
+        ret = virStrToLong_ullp(arg->data, NULL, 10, value);
+    if (ret < 0)
+        vshError(ctl,
+                 _("Numeric value '%s' for <%s> option is malformed or out of range"),
+                 arg->data, name);
+    else
+        ret = 1;
 
-    return 1;
+    return ret;
 }
 
 /**
-- 
2.1.0




More information about the libvir-list mailing list