[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