From: <kp...@hy...> - 2010-02-11 01:18:16
|
Author: kparikh Date: 2010-02-10 17:18:06 -0800 (Wed, 10 Feb 2010) New Revision: 14277 URL: http://svn.hyperic.org/?view=rev&root=Hyperic+HQ&revision=14277 Added: trunk/tools/agentpork/etc/clone.properties trunk/tools/agentpork/etc/multiagent.properties trunk/tools/agentpork/forkagents.sh trunk/tools/agentpork/hq-agent-nowrapper.sh trunk/tools/agentpork/start_clone.sh trunk/tools/agentpork/start_multiagent.sh trunk/tools/agentpork/stop_clone.sh trunk/tools/agentpork/wipe_clones.sh Removed: trunk/tools/agentpork/agentpork.cfg trunk/tools/agentpork/agentpork.sh trunk/tools/agentpork/clone.properties trunk/tools/agentpork/create_agents Modified: trunk/tools/agentpork/create_clone.sh trunk/tools/agentpork/etc/agent.properties trunk/tools/agentpork/init_framework.sh Log: Fixing multiagent to get it working with 4.3. Deleted: trunk/tools/agentpork/agentpork.cfg =================================================================== --- trunk/tools/agentpork/agentpork.cfg 2010-02-11 00:14:51 UTC (rev 14276) +++ trunk/tools/agentpork/agentpork.cfg 2010-02-11 01:18:06 UTC (rev 14277) @@ -1,6 +0,0 @@ -CLONE_SERVERIP=localhost -CLONE_SECURE=yes -CLONE_LISTEN_STARTPORT=3000 -CLONE_FQDN_PREFIX=clone- -CLONE_JAVA_FLAGS="-XX:MaxPermSize=256m -Xmx1024m" -#CLONE_JAVA_FLAGS="${CLONE_JAVA_FLAGS} -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y" Deleted: trunk/tools/agentpork/agentpork.sh =================================================================== --- trunk/tools/agentpork/agentpork.sh 2010-02-11 00:14:51 UTC (rev 14276) +++ trunk/tools/agentpork/agentpork.sh 2010-02-11 01:18:06 UTC (rev 14277) @@ -1,16 +0,0 @@ -CLONE_JAVA_FLAGS="" -. agentpork.cfg - -${JAVA_HOME}/bin/java \ --client \ --Dagent.propFile=agent.properties \ --Dorg.hyperic.hq.bizapp.agent.CommandsAPIInfo.camUpPort=7080 \ --Djava.security.auth.login.config=jaas.config \ --Djava.net.preferIPv4Stack=true \ --XX:MaxPermSize=256m \ -$CLONE_JAVA_FLAGS \ --classpath clones/pdk/lib/hyperic-util.jar:clones/pdk/lib/log4j-1.2.14.jar:clones/pdk/lib/ant.jar:clones/pdk/lib/jdom_b8.jar:clones/pdk/lib/commons-logging-1.0.4.jar:clones/pdk/lib/commons-httpclient-3.1.jar:clones/pdk/lib/sigar.jar \ -org.hyperic.util.thread.MultiRunner $1 - -#-Xdebug \ -#-Xrunjdwp:transport=dt_socket,server=y,suspend=y \ Deleted: trunk/tools/agentpork/clone.properties =================================================================== --- trunk/tools/agentpork/clone.properties 2010-02-11 00:14:51 UTC (rev 14276) +++ trunk/tools/agentpork/clone.properties 2010-02-11 01:18:06 UTC (rev 14277) @@ -1,8 +0,0 @@ -# Time to sleep between spawning new agents -clone.spawn.sleep=20000 -clone.number=10 -clone.class=org.hyperic.hq.agent.server.AgentRunner -clone.classpath=clones/lib/AgentServer.jar:clones/lib/lather.jar:clones/pdk/lib/activation.jar:clones/pdk/lib/ant.jar:clones/pdk/lib/backport-util-concurrent.jar:clones/pdk/lib/bcel-5.1.jar:clones/pdk/lib/commons-beanutils.jar:clones/pdk/lib/commons-codec-1.3.jar:clones/pdk/lib/commons-collections.jar:clones/pdk/lib/commons-httpclient-2.0.jar:clones/pdk/lib/commons-logging.jar:clones/pdk/lib/dnsjava-2.0.3.jar:clones/pdk/lib/getopt.jar:clones/pdk/lib/hq-product.jar:clones/pdk/lib/hyperic-util.jar:clones/pdk/lib/jakarta-oro-2.0.7.jar:clones/pdk/lib/jdom_b8.jar:clones/pdk/lib/jsch-0.1.34.jar:clones/pdk/lib/json.jar:clones/pdk/lib/junit.jar:clones/pdk/lib/jxla.jar:clones/pdk/lib/log4j-1.2.14.jar:clones/pdk/lib/sigar.jar:clones/pdk/lib/snmp4j.jar:clones/pdk/lib/tomcat-jk.jar:clones/pdk/lib/ws-commons-util-1.0.2.jar:clones/pdk/lib/xalan.jar:clones/pdk/lib/xml-apis.jar:clones/pdk/lib/xmlrpc-client-3.1.jar:clones/pdk/lib/xmlrpc-common-3.1.jar:clones/pdk/lib/xpp3_min-1.1.3.4.O.jar:clones/pdk/lib/xstream-1.2.1.jar - -log4j.rootLogger=INFO - Deleted: trunk/tools/agentpork/create_agents =================================================================== --- trunk/tools/agentpork/create_agents 2010-02-11 00:14:51 UTC (rev 14276) +++ trunk/tools/agentpork/create_agents 2010-02-11 01:18:06 UTC (rev 14277) @@ -1,81 +0,0 @@ -#!/usr/bin/perl -w - -use strict; -use POSIX ":sys_wait_h"; - -my $debug = 1; - -my $NUM_AGENTS = 5; -my $BATCH_SIZE = 2; -my $AGENT_PORK_DIR = "${HOME}/workspace/hq_trunk/tools/agentpork"; -my $LOG_DIR = "${HOME}/workspace/hq_trunk/tools/agentpork"; - -my (@pids); - -sub main() -{ - my $i = 0; - my $clone = 0; - while ($clone < $NUM_AGENTS) - { - $clone = $i++*$BATCH_SIZE; - for (my $j=0; $j<$BATCH_SIZE; $j++) - { - my $pid; - if (0 == ($pid = fork())) { - createAgent($clone); - exit(0); - } else { - $clone++; - push (@pids, $pid); - } - } - waitForAgentCreate(); - } -} - -main(); - -sub createAgent -{ - my ($clone) = @_; - my $cmd = "$AGENT_PORK_DIR/create_clone.sh $clone 2>&1"; - execCmd($cmd); -} - -sub execCmd -{ - my ($cmd) = @_; - print "$cmd\n" if $debug; - my $output = join "", `$cmd`; - `echo "$output" >> $LOG_DIR/create.log`; -} - -sub waitForAgentCreate -{ - while (@pids > 0) - { - foreach my $pid (@pids) - { - if ( waitpid($pid, &WNOHANG()) > 0 ) - { - print "wait for $pid\n" if $debug; - spliceArray($pid); - } - } - sleep(1); - } -} - - -sub spliceArray -{ - my ($PID) = @_; - my ($i); - for ($i=0; $i<@pids; $i++) - { - if ($pids[$i] == $PID) { - splice (@pids, $i, 1); - } - } -} Modified: trunk/tools/agentpork/create_clone.sh =================================================================== --- trunk/tools/agentpork/create_clone.sh 2010-02-11 00:14:51 UTC (rev 14276) +++ trunk/tools/agentpork/create_clone.sh 2010-02-11 01:18:06 UTC (rev 14277) @@ -1,6 +1,6 @@ #!/bin/sh -. agentpork.cfg +. etc/multiagent.properties echo "Creating clone $1" @@ -11,7 +11,8 @@ ln -s ../master/$f clones/clone_$1/$f done -ln clones/master/hq-agent.sh clones/clone_$1/hq-agent.sh +ln -s ../wrapper clones/clone_$1/wrapper +cp hq-agent-nowrapper.sh clones/clone_$1/hq-agent-nowrapper.sh clone_port=$(($CLONE_LISTEN_STARTPORT + $1)) @@ -22,4 +23,5 @@ sed -e s/@CLONE_LISTENPORT@/${clone_port}/ \ > clones/clone_$1/agent.properties -(cd clones/clone_$1 && ./hq-agent.sh start && ./hq-agent.sh stop) +cd clones/clone_$1 +nohup ./hq-agent-nowrapper.sh start 2>&1 > console.out & Modified: trunk/tools/agentpork/etc/agent.properties =================================================================== --- trunk/tools/agentpork/etc/agent.properties 2010-02-11 00:14:51 UTC (rev 14276) +++ trunk/tools/agentpork/etc/agent.properties 2010-02-11 01:18:06 UTC (rev 14277) @@ -2,7 +2,7 @@ agent.setup.camIP=@CLONE_SERVERIP@ -agent.setup.camPort=7080 +agent.setup.camPort=@CLONE_SERVER_PORT@ agent.setup.camSSLPort=7443 agent.setup.camSecure=@CLONE_SECURE@ agent.setup.camLogin=hqadmin @@ -78,3 +78,4 @@ ## Options to pass to java agent.javaOpts=-Xmx128m -Djava.net.preferIPv4Stack=true +agent.setup.unidirectional=no Added: trunk/tools/agentpork/etc/clone.properties =================================================================== --- trunk/tools/agentpork/etc/clone.properties (rev 0) +++ trunk/tools/agentpork/etc/clone.properties 2010-02-11 01:18:06 UTC (rev 14277) @@ -0,0 +1,15 @@ +# Time to sleep between spawning new agents +clone.spawn.sleep=5000 +clone.number=@NUM_CLONES@ +log4j.rootLogger=INFO +netservices.netstat=false +clone.class=org.hyperic.hq.agent.server.AgentRunner +clone.classpath=@AGENT_BUNDLE_HOME@/lib/lather.jar:@AGENT_BUNDLE_HOME@/lib/AgentServer.jar:@AGENT_BUNDLE_HOME@/lib/AgentClient.jar:@AGENT_BUNDLE_HOME@/pdk/lib/commons-httpclient-3.1.jar:@AGENT_BUNDLE_HOME@/pdk/lib/hyperic-util.jar:@AGENT_BUNDLE_HOME@/pdk/lib/commons-logging.jar:@AGENT_BUNDLE_HOME@/pdk/lib/hq-product.jar:@AGENT_BUNDLE_HOME@/pdk/lib/jdom-1.1.jar:@AGENT_BUNDLE_HOME@/pdk/lib/ant.jar:@AGENT_BUNDLE_HOME@/pdk/lib/log4j-1.2.14.jar:@AGENT_BUNDLE_HOME@/pdk/lib/sigar.jar:@AGENT_BUNDLE_HOME@/pdk/lib/commons-codec-1.3.jar:@AGENT_BUNDLE_HOME@/pdk/lib/xstream-1.3.1.jar +agent.bundle.home=@AGENT_BUNDLE_HOME@ +agent.lib.handlers.lib=@AGENT_BUNDLE_HOME@/lib/handlers/lib/ +agent.lib.handlers=@AGENT_BUNDLE_HOME@/lib/handlers/ +agent.logDir=../agentpork/log +agent.pdkPluginDir=@AGENT_BUNDLE_HOME@/pdk/plugins +agent.pdkLibDir=@AGENT_BUNDLE_HOME@/pdk/lib +agent.pdkDir=@AGENT_BUNDLE_HOME@/pdk +agent.pdkWorkDir=@AGENT_BUNDLE_HOME@/pdk/work Added: trunk/tools/agentpork/etc/multiagent.properties =================================================================== --- trunk/tools/agentpork/etc/multiagent.properties (rev 0) +++ trunk/tools/agentpork/etc/multiagent.properties 2010-02-11 01:18:06 UTC (rev 14277) @@ -0,0 +1,32 @@ +# Adjust following variables based on your config +export AGENT_HOME=/x2/HQ/multiagent/trimmed-agent +export AGENT_BUILD_VERSION=4.2.0 +export AGENT_BUILD_NUMBER=1261 +export CLONE_SERVERIP=10.16.17.38 +export CLONE_SERVER_PORT=8080 +export CLONE_LISTEN_STARTPORT=4000 +export NUM_CLONES=100 +export CLONE_JAVA_FLAGS="-XX:MaxPermSize=128m -Xmx1024m -Xms1024m" + + +# Do not modify anything below +export CLONE_SECURE=yes +export AGENT_BUNDLE_HOME=$AGENT_HOME/bundles/agent-$AGENT_BUILD_VERSION-EE-$AGENT_BUILD_NUMBER +export PDK_LIB=$AGENT_BUNDLE_HOME/pdk/lib +CLONE_CP=$AGENT_BUNDLE_HOME/lib/AgentClient.jar +CLONE_CP=$AGENT_BUNDLE_HOME/lib/AgentServer.jar:$CLONE_CP +CLONE_CP=$AGENT_BUNDLE_HOME/lib/lather.jar:$CLONE_CP +CLONE_CP=$CLONE_CP:$PDK_LIB/ant.jar +CLONE_CP=$CLONE_CP:$PDK_LIB/commons-httpclient-3.1.jar +CLONE_CP=$CLONE_CP:$PDK_LIB/hq-product.jar +CLONE_CP=$CLONE_CP:$PDK_LIB/jdom-1.1.jar +CLONE_CP=$CLONE_CP:$PDK_LIB/sigar.jar +CLONE_CP=$CLONE_CP:$PDK_LIB/commons-codec-1.3.jar +CLONE_CP=$CLONE_CP:$PDK_LIB/commons-logging.jar +CLONE_CP=$CLONE_CP:$PDK_LIB/hyperic-util.jar +CLONE_CP=$CLONE_CP:$PDK_LIB/log4j-1.2.14.jar +CLONE_CP=$CLONE_CP:$PDK_LIB/xstream-1.3.1.jar +CLONE_CP=$AGENT_HOME/wrapper/lib/wrapper.jar:$CLONE_CP +export CLONE_CP=$CLONE_CP +export CLONE_FQDN_PREFIX=$HOSTNAME-clone- + Added: trunk/tools/agentpork/forkagents.sh =================================================================== --- trunk/tools/agentpork/forkagents.sh (rev 0) +++ trunk/tools/agentpork/forkagents.sh 2010-02-11 01:18:06 UTC (rev 14277) @@ -0,0 +1,23 @@ +#!/bin/bash + +. etc/multiagent.properties + +for ((i=0;i<$NUM_CLONES;)) +do + for ((j=0;j<5;j++)) + do + echo "cloning agent ------------> " $i + ./create_clone.sh $i + i=$(($i + 1)) + sleep 1 + done + sleep 30 + for ((j=5;j>0;j--)) + do + k=$(($i - $j)) + echo "stopping agent ------------> " $k + ./stop_clone.sh $k + sleep 1 + done + sleep 5 +done Added: trunk/tools/agentpork/hq-agent-nowrapper.sh =================================================================== --- trunk/tools/agentpork/hq-agent-nowrapper.sh (rev 0) +++ trunk/tools/agentpork/hq-agent-nowrapper.sh 2010-02-11 01:18:06 UTC (rev 14277) @@ -0,0 +1,122 @@ +#!/bin/sh +AGENTPROPFILE_PROP=agent.propFile +AGENT_PROPS=agent.properties +AGENTLOGDIR_PROP=agent.logDir +AGENTLOGDIR=log +AGENTDATADIR_PROP=agent.dataDir +AGENTDATADIR=./data +AGENT_LIB=./lib +PDK_LIB=./pdk/lib +WRAPPER_LIB=./wrapper/lib +# for /proc/net/tcp mirror +SIGAR_PROC_NET=./tmp + +# ------------- +# Shouldn't need to change anything below this +# ------------- + +FINDNAME=$0 +while [ -h $FINDNAME ] ; do FINDNAME=`ls -ld $FINDNAME | awk '{print $NF}'` ; done +RUNDIR=`echo $FINDNAME | sed -e 's@/[^/]*$@@'` +unset FINDNAME +#if test -d $RUNDIR; then +# cd $RUNDIR/.. +#else +# cd .. +#fi + +if [ "x${HQ_JAVA_HOME}" != "x" ] ; then + HQ_JAVA_HOME=${HQ_JAVA_HOME} +elif [ -d jre ]; then + HQ_JAVA_HOME=jre + # Just in case + chmod -R +x jre/bin/* > /dev/null 2>&1 +elif [ "x$JAVA_HOME" != "x" ] ; then + HQ_JAVA_HOME=${JAVA_HOME} +else + case "`uname`" in + Darwin) + HQ_JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Home + ;; + *) + echo "HQ_JAVA_HOME or JAVA_HOME must be set when invoking the agent" + exit 1 + ;; + esac +fi + +chmod +x ./pdk/scripts/* > /dev/null 2>&1 + +HQ_JAVA="${HQ_JAVA_HOME}/bin/java" + +CLIENT_CLASSPATH= +for i in `ls ${AGENT_LIB}/*.jar` +do + CLIENT_CLASSPATH="${CLIENT_CLASSPATH}:${i}" +done + +for i in `ls ${PDK_LIB}/*.jar` +do + CLIENT_CLASSPATH="${CLIENT_CLASSPATH}:${i}" +done + +for i in `ls ${WRAPPER_LIB}/*.jar` +do + CLIENT_CLASSPATH="${CLIENT_CLASSPATH}:${i}" +done + +CLIENT_CLASS=org.hyperic.hq.bizapp.agent.client.AgentClient + +HQ_JAVA_OPTS="${HQ_JAVA_OPTS} \ + -Xmx128m + -Dsun.net.inetaddr.ttl=60 + -Djava.net.preferIPv4Stack=true \ + -Djava.security.auth.login.config=jaas.config + -Dagent.install.home=. \ + -Dagent.bundle.home=. \ + -Djava.library.path=${WRAPPER_LIB} + -D${AGENTPROPFILE_PROP}=${AGENT_PROPS} \ + -D${AGENTLOGDIR_PROP}=${AGENTLOGDIR} \ + -D${AGENTDATADIR_PROP}=${AGENTDATADIR}" + +CLIENT_CMD="${HQ_JAVA} \ + ${HQ_JAVA_OPTS} + -cp ${CLIENT_CLASSPATH} ${CLIENT_CLASS}" + +START_CMD="${CLIENT_CMD} start" +STATUS_CMD="${CLIENT_CMD} status" +PING_CMD="${CLIENT_CMD} ping" +SETUP_CMD="${CLIENT_CMD} setup" +DIE_CMD="${CLIENT_CMD} die" + +if [ "$1" = "start" ] ; then + echo "Starting agent" + if ${START_CMD} ; then + exit 0 + else + exit 1 + fi +elif [ "$1" = "run" ] ; then + echo "Running agent" + echo ${START_CMD} + ${START_CMD} +elif [ "$1" = "stop" ] ; then + ${DIE_CMD} 10 || exit 1 +elif [ "$1" = "status" ] ; then + ${STATUS_CMD} || exit 1 +elif [ "$1" = "ping" ] ; then + echo Pinging ... + VAL=`$PING_CMD 2>&1` + if [ "$?" = "0" ] ; then + echo 'Success!' + else + echo 'Failure!' + echo $VAL + exit 1 + fi +elif [ "$1" = "setup" ] ; then + ${SETUP_CMD} +else + echo "Syntax: $0 "'<start | stop | ping | setup>' + exit 1 +fi Modified: trunk/tools/agentpork/init_framework.sh =================================================================== --- trunk/tools/agentpork/init_framework.sh 2010-02-11 00:14:51 UTC (rev 14276) +++ trunk/tools/agentpork/init_framework.sh 2010-02-11 01:18:06 UTC (rev 14277) @@ -1,11 +1,19 @@ #!/bin/sh +. etc/multiagent.properties + mkdir clones cd clones -ln -s ../../../build/agent master +ln -s $AGENT_BUNDLE_HOME master +ln -s $AGENT_HOME/wrapper wrapper ln -s master/lib lib ln -s master/pdk pdk cd .. ln -s clones/pdk pdk ln -s clones/lib lib + +cat etc/clone.properties | \ + sed -e s:@AGENT_BUNDLE_HOME@:${AGENT_BUNDLE_HOME}:g | \ + sed -e s:@NUM_CLONES@:${NUM_CLONES}:g > clone.properties + Added: trunk/tools/agentpork/start_clone.sh =================================================================== --- trunk/tools/agentpork/start_clone.sh (rev 0) +++ trunk/tools/agentpork/start_clone.sh 2010-02-11 01:18:06 UTC (rev 14277) @@ -0,0 +1,8 @@ +#!/bin/sh + +. etc/multiagent.properties + +echo "starting clone $1" + +cd clones/clone_$1 +nohup ./hq-agent-nowrapper.sh start 2>&1 > console.out & Added: trunk/tools/agentpork/start_multiagent.sh =================================================================== --- trunk/tools/agentpork/start_multiagent.sh (rev 0) +++ trunk/tools/agentpork/start_multiagent.sh 2010-02-11 01:18:06 UTC (rev 14277) @@ -0,0 +1,25 @@ +#!/bin/bash +. etc/multiagent.properties + +CLIENT_CMD="${JAVA_HOME}/bin/java -client \ + -Dagent.propFile=agent.properties \ + -Dorg.hyperic.hq.bizapp.agent.CommandsAPIInfo.camUpPort=111 \ + -Dagent.install.home=$AGENT_HOME \ + -Dagent.bundle.home=$AGENT_BUNDLE_HOME \ + -Dagent.mode=thread \ + -Djava.security.auth.login.config=jaas.config \ + -Djava.net.preferIPv4Stack=true \ + -Dcom.sun.management.jmxremote \ + $CLONE_JAVA_FLAGS \ + -cp $CLONE_CP org.hyperic.util.thread.MultiRunner $1" + +echo $CLIENT_CMD + +echo "***** the start time is " +echo `date` + +$CLIENT_CMD + +echo "***** the end time is " +echo `date` + Added: trunk/tools/agentpork/stop_clone.sh =================================================================== --- trunk/tools/agentpork/stop_clone.sh (rev 0) +++ trunk/tools/agentpork/stop_clone.sh 2010-02-11 01:18:06 UTC (rev 14277) @@ -0,0 +1,6 @@ +#!/bin/sh + +. etc/multiagent.properties + +cd clones/clone_$1 +./hq-agent-nowrapper.sh stop Added: trunk/tools/agentpork/wipe_clones.sh =================================================================== --- trunk/tools/agentpork/wipe_clones.sh (rev 0) +++ trunk/tools/agentpork/wipe_clones.sh 2010-02-11 01:18:06 UTC (rev 14277) @@ -0,0 +1 @@ +rm -rf clones pdk lib tmp clone.properties |