On 07/14/2011 05:58 AM, Jiri Denemark wrote:
On Thu, Jun 30, 2011 at 13:52:32 +0530, Supriya Kannery wrote:
> Aligning loglevel values of virsh to that of libvirt.
> "DEBUG"=0 loglevel, when specified through commandline or
> env variable, should log all the messages. "ERROR=4"
> should log only error messages.
>
> Signed-off-by: Supriya Kannery <supriyak(a)in.ibm.com>
>
This breaks make check for two reasons. First, it reverses the condition but
leaves default level unchanged, so instead of not printint anything but errors
before the patch it now prints all debug messages by default. Second, you
forgot to change -d5 option passed to virsh in tests/virsh-optparse to -d0;
the script wants to see all debug messages.
In other words, the following patch needs to be squashed in.
Jirka
diff --git a/tests/virsh-optparse b/tests/virsh-optparse
index 092e80d..7b3a25d 100755
--- a/tests/virsh-optparse
+++ b/tests/virsh-optparse
@@ -64,7 +64,7 @@ for args in \
'--count 2 test' \
'--count=2 test' \
; do
- virsh -d5 -c $test_url setvcpus $args >out 2>>err || fail=1
+ virsh -d0 -c $test_url setvcpus $args >out 2>>err || fail=1
LC_ALL=C sort out | compare - exp-out || fail=1
done
test -s err && fail=1
diff --git a/tools/virsh.c b/tools/virsh.c
index dda86cb..6d356d2 100644
--- a/tools/virsh.c
+++ b/tools/virsh.c
@@ -98,6 +98,8 @@ typedef enum {
VSH_ERR_ERROR
} vshErrorLevel;
+#define VSH_DEBUG_DEFAULT VSH_ERR_ERROR
+
/*
* virsh command line grammar:
*
@@ -13406,15 +13408,17 @@ vshInit(vshControl *ctl)
if (ctl->conn)
return false;
- if (ctl->debug == -1) {
+ if (ctl->debug == VSH_DEBUG_DEFAULT) {
/* log level not set from commandline, check env variable */
debugEnv = getenv("VIRSH_DEBUG");
if (debugEnv) {
- if (virStrToLong_i(debugEnv, NULL, 10, &ctl->debug) < 0 ||
- ctl->debug < VSH_ERR_DEBUG || ctl->debug > VSH_ERR_ERROR) {
+ int debug;
+ if (virStrToLong_i(debugEnv, NULL, 10, &debug) < 0 ||
+ debug < VSH_ERR_DEBUG || debug > VSH_ERR_ERROR) {
vshError(ctl, "%s",
_("VIRSH_DEBUG not set with a valid numeric
value"));
- ctl->debug = VSH_ERR_DEBUG;
+ } else {
+ ctl->debug = debug;
}
}
}
@@ -14102,7 +14106,7 @@ main(int argc, char **argv)
memset(ctl, 0, sizeof(vshControl));
ctl->imode = true; /* default is interactive mode */
ctl->log_fd = -1; /* Initialize log file descriptor */
- ctl->debug = -1; /* Initialize log level */
+ ctl->debug = VSH_DEBUG_DEFAULT;
if (!setlocale(LC_ALL, "")) {
perror("setlocale");
ACK to that delta, so I've pushed the combined patch.
Aargh! Correction, I pushed the broken patch first, accidentally, so now
I'm pushing the fix separately. :(
(I hate the lag between my computer and
libvirt.org - I keep forgetting
that a 'git push' started in one terminal, followed by 'git rebase
--continue' in another, can affect the operation in the first terminal -
I really wish 'git push' would remember the HEAD that was in effect at
the start of the operation, rather than what is in effect at the time
the remote connection is actually established).
--
Eric Blake eblake(a)redhat.com +1-801-349-2682
Libvirt virtualization library
http://libvirt.org