#!/bin/bash declare BrokerPid= declare BrokerCfg= declare TmpP4ROOT=$HMS_TEST_HOME/tmp/.p4root declare -i Debug=1 function msg () { echo -e "$*"; } function dbg () { [[ $Debug -eq 1 ]] || return; echo -e "DEBUG: $*" >&2; } function cmd () { msg "Executing: $*"; $*; return $?; } function bail () { msg "\\nError: ${1:-Unknown Error}\\n"; exit ${2:-1}; } function get_broker_pid () { pid=$(ps -ef | grep "$P4BROKERBIN" | grep -v " grep " | \ awk '{print $2}' | head -1) echo $pid } source ./env.sh BrokerCfg="$HMS_TEST_HOME/broker.cfg" case ${1:-status} in (start) if [[ -r "$BrokerCfg" ]]; then msg "Using existing $BrokerCfg." else msg "Generating $BrokerCfg from template." if ! sed -e "s:__HMS_SCRIPTS__:$HMS_SCRIPTS:g" -e "s:__P4PORT__:$P4PORT:g" -e "s:__P4BROKERPORT__:$P4BROKERPORT:g" -e "s:__HMS_TEST_HOME__:$HMS_TEST_HOME:g" "${BrokerCfg}.t" > "$BrokerCfg"; then bail "Failed to generate broker config." fi fi cd "$HMS_TEST_HOME" || bail "Failed to cd to $HMS_TEST_HOME." cmd "$P4BROKERBIN" -c "$BrokerCfg" -q -d # Start a helper p4d. It does nothing, but needs to be running, # otherwise the broker can't do anything except a 'reject' or # 'redirect' action. unset P4JOURNAL P4AUDIT P4DEBUG P4CHANGE P4AUTH P4LOG rm -rf $TmpP4ROOT mkdir -p $TmpP4ROOT cmd p4d -r $TmpP4ROOT -p $P4PORT -q --daemonsafe --pid-file ;; (stop) if [[ -r "$TmpP4ROOT/server.pid" ]]; then msg "Killing helper p4d." cmd kill $(cat $TmpP4ROOT/server.pid) else msg Helper p4d was not running. fi BrokerPid=$(get_broker_pid) if [[ -n "$BrokerPid" ]]; then msg "Killing broker." cmd kill $BrokerPid else msg Broker was not running. fi ;; (status) if [[ -r "$TmpP4ROOT/server.pid" ]]; then msg "Helper p4d appears to be running." else msg "Helper p4d is not running." fi BrokerPid=$(get_broker_pid) if [[ -n "$BrokerPid" ]]; then msg Broker is running as pid $BrokerPid. else msg Broker is not running. fi ;; (clean) msg "Removing: $TmpP4ROOT" rm -rf "$TmpP4ROOT" msg "Removing: $BrokerCfg" rm -f "$BrokerCfg" ;; (*) msg "\\nUsage:\\n\\t${0##*/} {start|stop|status}\\n" ;; esac
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#2 | 27575 | C. Thomas Tyler | Test environment refinements. | ||
#1 | 25535 | C. Thomas Tyler | Refactored hms test root. | ||
//guest/perforce_software/hms/dev/test/hms/b | |||||
#1 | 25531 | C. Thomas Tyler |
Refactored to receive merge from SDP. This structure emphasizes that HMS will be layered on the SDP. The tree is now structured to make it clear where files appear in an as-deployed configurtion, overlaid into the '/p4/common' structure of the SDP. The test suite is outside this structure, as it will not be deployed (due to dependencies on infratructure that won't likely appear in SDP production deployments). |
||
//guest/perforce_software/hms/dev/hms/test/b | |||||
#1 | 20506 | C. Thomas Tyler |
Added test broker init script sporting helper p4d for offline testing. |