On Mon, Sep 12, 2005 at 09:57:51PM -0500, Craig Cook wrote:
Given the new client design of sending "raw" data back to the sever so it can decide what the status should be...
How can I extend this concept and write an external client script with the same logic...
ie. a custom mysql status script that just sends its data back to the central server. The server must analyse it somehow and set the status message
You need to write two programs: 1) The client side tool that collects the data. Run it as a client extension, and have it send back the data in using a "data" message. I.e. $BB $BBDISP "data $MACHINE.mydata" 2) A Hobbit server module to process the data. Server modules are all of those programs in hobbitlaunch.cfg that runs "hobbitd_channel --channel=X hobbitd_bla". For a start, try running ~hobbit/server/bin/bbcmd hobbitd_channel --channel=data cat (you must be logged in as the hobbit user). This just dumps the incoming "data" messages to the console. You'll see it looks like this: @@data#18078|1126595825.225133|127.0.0.1||voodoo.hswn.dk|mydata <the contents of the data message> @@ The first line always has @@data#Seq.no.|Timestamp|SenderIP|Origin|Hostname|Type and the message ends with "@@" "Origin" is currently not used and will always be blank. So your server module - written in C, Perl, Ruby or whatever your favourite programming language is - now has access to the full data message sent by your client, and hence it can parse the data and build a "status" message to generate the final status. For debugging, You can start/stop modules without having to restart Hobbit - just run the "hobbitd_channel ..." command on the command line. -- Henrik Storner