Xymon Mailing List Archive search

problem with CLASS definition (PATCH)

list Charles Jones
Wed, 31 Oct 2007 13:30:31 -0700
Message-Id: <user-179faa0d157f@xymon.invalid>

Thanks for the info Josh. Is that the official place we are supposed to 
report bugs and submit patches? Since I see open bugs there that are 
literally years old, and assigned to "nobody", I'm not that confident 
that's the proper place.

-Charles

Josh Luthman wrote:
*Psst*

http://sourceforge.net/tracker/?group_id=128058&atid=710488 
<http://sourceforge.net/tracker/?group_id=128058&atid=710488>;

On 10/31/07, * Charles Jones* <user-e86b4aeade4e@xymon.invalid 
<mailto:user-e86b4aeade4e@xymon.invalid>> wrote:

    I don't want this to fall through the cracks, so I'm going to keep
    bumping it until Henrik sees it :)

    -Charles

    Charles Jones wrote:
Henrik,

Just making sure that you saw this bug that I found, and hopefully
implement a fix (I'm sure you have a more elegant way to fix it
    than I
did) for Hobbit 4.3
-Charles

Charles Jones wrote:
Okay I came up with a workaround. The problem is that CONFIGCLASS
gets reset to a default value (in hobbitclient.cfg). So, I created
another variable, "CLASS". I then made a small mod to
    hobbitclient.sh
that checks to see if CLASS got set to something, and if it
    did, it
sets CONFIGCLASS to that value.  Here are the changes:

--- runclient.sh        2006-08-09 20:09:58.000000000 +0000
+++ /tmp/runclient.sh   2007-10-10 18:55:00.000000000 +0000
@@ -32,6 +32,7 @@
               ;;
         --class=*)
               CONFIGCLASS="`echo $1 | sed -e 's/--class=//' | tr
'[A-Z]' '[a-z]'`"
+                CLASS=$CONFIGCLASS # Use a variable that
    doesn't get
reset
               ;;
         --help)
               echo "Usage: $0 [--hostname=CLIENTNAME]
[--os=rhel3|linux22] [--class=CLASSNAME] start|stop
"
@@ -61,7 +62,7 @@

MACHINE="`echo $MACHINEDOTS | sed -e 's/\./,/g'`"

-export MACHINE MACHINEDOTS BBOSTYPE BBOSSCRIPT HOBBITCLIENTHOME
CONFIGCLASS
+export MACHINE MACHINEDOTS BBOSTYPE BBOSSCRIPT HOBBITCLIENTHOME
CONFIGCLASS CLASS

case "$CMD" in
  "start")
@@ -128,6 +129,5 @@
       break;

esac
• exit 0


--- hobbitclient.sh      2006-08-09 20:09:58.000000000 +0000
+++ /tmp/hobbitclient.sh        2007-10-10 18:55:28.000000000 +0000
@@ -48,6 +48,9 @@
       echo "@@client#1|0|127.0.0.1|$MACHINEDOTS|$BBOSTYPE" >>
$MSGTMPFILE
fi

+if [ -n "$CLASS" ]; then #If CLASS was set to something, override
the default
+   CONFIGCLASS=$CLASS
+fi
echo "client $MACHINE.$BBOSTYPE $CONFIGCLASS"  >>  $MSGTMPFILE
$BBHOME/bin/$BBOSSCRIPT >> $MSGTMPFILE
# logfiles


Charles Jones wrote:
I also just discovered that CONFIGCLASS gets converted to
    lowercase
(which I should have seen plain as day in the sed command).
    However
this is not the problem as the CONFIGCLASS in the client
    message is
still using the default value of BBOSTYPE.  I'm currently
    attempting
to hack in a work around.

-Charles

Charles Jones wrote:
I did some poking around, and as far as I can tell, the
    problem is
due to hobbitclient.cfg overriding the CONFIGCLASS variable.
Here are some snippets from runclient.sh:

--class=*)
               CONFIGCLASS="`echo $1 | sed -e 's/--class=//'
    | tr
'[A-Z]' '[a-z]'`"

export MACHINE MACHINEDOTS BBOSTYPE BBOSSCRIPT HOBBITCLIENTHOME
CONFIGCLASS

hobbitclient.cfg contains this:
./hobbitclient.cfg:CONFIGCLASS="$BBOSTYPE"         # Default
configuration class for logfiles

hobbitclient.sh uses the CONFIGCLASS variable when sending the
client message:
./bin/hobbitclient.sh:echo "client $MACHINE.$BBOSTYPE
$CONFIGCLASS"  >>  $MSGTMPFILE

Heres the actual client message header Im sending (not that
CONFIGCLASS  is being set to "linux" instead of the specified
    class:
client host-app-23.linux linux

-Charles


Charles Jones wrote:
Anyone have any thoughts on this? I'm currently dead in the
    water
without this working as it should.  I tried emailing Henrik as
well but I'm sure he is too busy to reply.

-Charles

Charles Jones wrote:
I have a host whose client was started via: "./runclient.sh
--class=APP_PRIMARY start"

In the hobbit servers hobbit-clients.cfg, I have something
similar to:

CLASS=APP_PRIMARY
   PROC "someproc"
   PROC "/some/other/proc"
....
DEFAULT
   PROC sshd

The problem is that only the default proc "sshd" is being
    checked
on the host.  The expected behavior is that the CLASS would be
used and other other procs checked instead. I know this has
nothing to do with the DEFAULT setting, as using HOST=hostname
works fine. I just cant get it to check the procs by CLASS.  Is
there any way to debug this?  Shouldn't the CLASS show up
    in the
"info" section?  Do I need to put the class name in quotes
    on the
command line?