[hobbit] problem with CLASS definition (PATCH)

Charles Jones jonescr at cisco.com
Thu Nov 8 00:13:29 CET 2007


It looks like Henrik is back now, so one last bump :)
> 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