[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [hobbit] How to create multiple custum test under one column
- To: hobbit (at) hswn.dk
- Subject: Re: [hobbit] How to create multiple custum test under one column
- From: Ralph Mitchell <ralphmitchell (at) gmail.com>
- Date: Mon, 7 Dec 2009 19:57:16 -0500
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:content-type; bh=f6kAvqiHTtfxAqblgPbNYfnTMoKLaWZJEE/inbbdT1M=; b=lN9Jri94Koid9EAP0zVshbAaBpMINJJRtYXcXCkd12rqz84/R/FAohoRPM2eoyZaMN OBVwx8yhJDNwh87LBdP5amQjrSNqGHuWN9FRNlQWseSKENr6hoemfo4UZkFRNQhLcjtI etMyNmI1h3wDryLq5Ask9t0dlGv5KJqC4aOuo=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; b=H8Qio5AJ5N/MtuERAAOV5Av+iDjNpJdUMAFBuED5fKd3IcO0O8lGwYGiN/E+TCC2Wi c//lJYami7sqtfknDQo2tUbzuAT4aPHF+KvNSETL2Tv1GUeZwXKcyoAFv8+kvpB+kGXL c/t2MMxim4hr2fg7snyIUz6aTe2cPzGJd2zAA=
- References: <hedmob$4kd$1 (at) voodoo.hswn.dk> <OFDC0EA942.2C2F240E-ONC1257685.005810E7-C1257685.00598515 (at) dcx.dcx>
On Mon, Dec 7, 2009 at 11:17 AM, <thorsten.erdmann (at) daimler.com> wrote:
>
> Hi,
>
> I want to do some application tests on several servers. All these test
> should be under one column named "app". Every test is unique for one server.
> So test "app" on "server1" is different from "app" on server2. All these
> test run remotely on the hobbit server, not on the destination servers.
>
> For now I wrote a test-script for every test and define a unique testname
> for the bbhost file for every test-script. In the script I reported to the
> "app" column. Works fine, but I have to include every test-script in the
> hobbitlaunch file and so all these tests run simultaneously, resulting in a
> big number of processes on the hobbit server.
>
> So I think of writing _one_ testscript for the "app" test and let this
> script decide which subscript should be run for each host. So all the
> different tests would be run under one master test script and so I hopefully
> get only one process.
>
> BBHTAG=app # What we put in bb-hosts to trigger this test
> COLUMN=app # Name of the column, often same as tag in bb-hosts
>
> TEMPFILE_OUTPUT=$BBTMP/$BBHTAG.output.tmp
> TEMPFILE=$BBTMP/$BBHTAG.tmp
> $BBHOME/bin/bbhostgrep $BBHTAG | while read L
> do
> echo "found hosts: $L"
> rm $TEMPFILEOUTPUT >/dev/null 2>&1
> set $L # To get one line of output from bbhostgrep
> HOSTIP="$1"
> MACHINEDOTS="$2"
> MACHINE=`echo $2 | $SED -e's/\./,/g'`
>
> COLOR=green
> echo "Application test on $MACHINEDOTS" > $TEMPFILE
>
> if "$MACHINE" == "server1"
> . apptest_server1.sh
> fi
> if "$MACHINE" == "server2"
> . apptest_server2.sh
> fi
> MSG=`cat $TEMPFILE_OUTPUT | fold -s -w 100`
>
> if [ $DEBUG = TRUE ]
> then
> echo "status $MACHINE.$COLUMN $COLOR `date` $MSG"
> else
> $BB $BBDISP "status $MACHINE.$COLUMN $COLOR `date` $MSG"
> fi
>
>>
>> Thank you
>> Thorsten Erdmann
>>
>> If you are not the intended addressee, please inform us immediately that
>> you have received this e-mail in error, and delete it. We thank you for your
>> cooperation.
>>
> rm $TEMPFILE_OUTPUT >/dev/null 2>&1
> done
>
> exit 0
>
>
> What do you think of this method? Maybe you have a better idea?
>
>
I've used cron quite effectively. Most of the scripts were repeating every
ten minutes, so I could schedule where in the ten minute block the tests
would start. I also had some tests running every 5 minutes, 3 minutes, 1
minute and 30 seconds, so occasionally there would be a "planetary
alignment" when a large bunch of tests ran together, causing a cpu spike on
the server.
In my case, I was running a bunch of checks on web servers, so each "parent"
script started by cron would run through a loop running a "child" script
against each of a list of web servers. If the script finishes quickly, a
bunch can be backgrounded to run near simultaneously, something like this:
for x in 1 2 3 4 5 6 7 8
do
$SCRIPTDIR/script server$x &
done
wait
Ralph Mitchell