[hobbit] problem with CLASS definition (PATCH)
Charles Jones
jonescr at cisco.com
Wed Oct 31 18:56:41 CET 2007
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?
>>>>>
>
More information about the Xymon
mailing list