[libvirt] [PATCH v1 3/3] virconf: Introduce VIR_CONF_ULONG

Martin Kletzander mkletzan at redhat.com
Wed Dec 10 09:40:15 UTC 2014


On Tue, Dec 09, 2014 at 04:52:16PM +0100, Michal Privoznik wrote:
>https://bugzilla.redhat.com/show_bug.cgi?id=1160995
>
>In our config files users are expected to pass several integer values
>for different configuration knobs. However, majority of them expect a
>nonnegative number and only a few of them accept a negative number too
>(notably keepalive_interval in libvirtd.conf).
>Therefore, a new type to config value is introduced: VIR_CONF_ULONG
>that is set whenever an integer is positive or zero. With this
>approach knobs accepting VIR_CONF_LONG should accept VIR_CONF_ULONG
>too.
>
>Signed-off-by: Michal Privoznik <mprivozn at redhat.com>
>---
> daemon/libvirtd-config.c          | 51 ++++++++++++++++++++++++---------------
> src/locking/lock_daemon_config.c  | 20 ++++++++++++---
> src/locking/lock_driver_lockd.c   |  4 +--
> src/locking/lock_driver_sanlock.c |  6 ++---
> src/lxc/lxc_conf.c                |  6 ++---
> src/qemu/qemu_conf.c              | 43 ++++++++++++++++++++++-----------
> src/util/virconf.c                |  4 ++-
> src/util/virconf.h                |  1 +
> src/xenconfig/xen_common.c        |  6 ++---
> tests/libvirtdconftest.c          |  9 ++++---
> 10 files changed, 97 insertions(+), 53 deletions(-)
>

[...]

>diff --git a/tests/libvirtdconftest.c b/tests/libvirtdconftest.c
>index 8b93f4e..d589d51 100644
>--- a/tests/libvirtdconftest.c
>+++ b/tests/libvirtdconftest.c
>@@ -65,7 +65,7 @@ munge_param(const char *datain,
>         if (c_isspace(*tmp))
>             continue;
>         if (c_isdigit(*tmp)) {
>-            *type = VIR_CONF_LONG;
>+            *type = VIR_CONF_ULONG;
>             replace = "\"foo\"";
>         } else if (*tmp == '[') {
>             *type = VIR_CONF_LIST;
>@@ -130,15 +130,16 @@ testCorrupt(const void *opaque)
> #endif
>
>     switch (type) {
>-    case VIR_CONF_LONG:
>-        if (!strstr(err->message, "invalid type: got string; expected long")) {
>+    case VIR_CONF_ULONG:
>+        if (!strstr(err->message, "invalid type: got string; expected unsigned long") &&
>+            !strstr(err->message, "invalid type: got string; expected long")) {
>             VIR_DEBUG("Wrong error for long: '%s'",
>                       err->message);
>             ret = -1;
>         }
>         break;
>     case VIR_CONF_STRING:
>-        if (!strstr(err->message, "invalid type: got long; expected string")) {
>+        if (!strstr(err->message, "invalid type: got unsigned long; expected string")) {
>             VIR_DEBUG("Wrong error for string: '%s'",
>                       err->message);
>             ret = -1;
>--
>2.0.4
>


Special-casing the ULONG and adding a '-2' somewhere in the tests
would show you've done the right thing.

Anyway, ACK, but I'd wait after release since this does not fix
anything, strictly speaking.

Martin
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20141210/65efff07/attachment-0001.sig>


More information about the libvir-list mailing list