diff --git a/integrations/selenium_grid/grid-hub b/integrations/selenium_grid/grid-hub new file mode 100755 index 00000000..5982305d --- /dev/null +++ b/integrations/selenium_grid/grid-hub @@ -0,0 +1,72 @@ +#!/usr/bin/env bash + +# +# Usage: grid-hub {start|stop} +# + +source $(dirname $0)/util + +EXPECTED_ARGS=1 +E_BADARGS=65 + +DO_showUsage() { + echo "Usage: $(basename $0) {start|stop}" + exit $E_BADARGS +} + +if [ $# -ne $EXPECTED_ARGS ]; then + DO_showUsage +fi + +################################################################################ + +WEBDRIVER_SERVER_JAR=./selenium-server-standalone.jar +WEBDRIVER_HUB_PARAMS="-role hub -port 4444" +WEBDRIVER_HUB_PIDFILE="/tmp/webdriver_hub.pid" + +if [ ! -f $WEBDRIVER_SERVER_JAR ]; then + echo "You must place the Selenium-WebDriver standalone JAR file at ${WEBDRIVER_SERVER_JAR} before proceeding." + exit 1 +fi + +case "$1" in + start) + echo "Starting Selenium-WebDriver Grid2 hub..." + if [ -f $WEBDRIVER_HUB_PIDFILE ]; then + echo "${FAIL_MSG} Selenium-WebDriver Grid2 hub already running with PID $(cat $WEBDRIVER_HUB_PIDFILE). Run 'grid-hub stop' or 'grid-hub restart'." + exit 1 + else + START_HUB_CMD="java -Djava.util.logging.config.file=test/logging.properties -jar ${WEBDRIVER_SERVER_JAR} ${WEBDRIVER_HUB_PARAMS}" + $START_HUB_CMD & + PID=$! + echo $PID > "${WEBDRIVER_HUB_PIDFILE}" + echo "${SUCCESS_MSG} Selenium-WebDriver Grid2 hub started successfully." + echo "To see full log output, remove the java.util.logging.config.file parameter from script/grid-hub" + fi + ;; + stop) + echo "Stopping Selenium-WebDriver Grid2 hub..." + if [ -f $WEBDRIVER_HUB_PIDFILE ]; then + PID=$(cat $WEBDRIVER_HUB_PIDFILE) + kill $PID + rm $WEBDRIVER_HUB_PIDFILE + sleep 1 + if [[ $(ps -A | egrep "^${PID}") ]]; then + echo "${FAIL_MSG} Tried to kill the hub with PID ${PID}, but was unsuccessful. You need to kill it with something stronger, like 'kill -9'" + exit 1 + else + echo "${SUCCESS_MSG} Selenium-WebDriver Grid2 hub stopped successfully." + exit 0 + fi + else + echo "${SUCCESS_MSG} Selenium-WebDriver Grid2 hub has already been stopped." + exit 0 + fi + ;; + restart) + $0 stop + $0 start + ;; + *) + DO_showUsage +esac