Skip to content

Instantly share code, notes, and snippets.

@xverges
Last active January 31, 2022 10:36
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save xverges/f15f927dddad21b11d14dd6be68b6d8f to your computer and use it in GitHub Desktop.
Save xverges/f15f927dddad21b11d14dd6be68b6d8f to your computer and use it in GitHub Desktop.

Place these files in ~/.oh-my-zsh/custom. They are processed alphabetically, so thus the naming.

  • The first one has the aliases that I have found in onboarding documentation.
  • The second one, aliases that I missed. I have prefixed some of them with _ch for control hub stuff, and with _dc for data collector stuff.
  • The third one uses alias from the previous two files so that I can take advantage of tab completion to remember what commands are available.

With that in place, ch- + tab and you should mbe able to see what you need to run next. 🤞 image

Some of the aliases rely on having this on /etc/hosts

127.0.0.1       localhost host.docker.internal ...whatever else

so that you can use the same address to refer to your running containers both from the host and from other containers

export IDE_DBG="-Xdebug -Xrunjdwp:transport=dt_socket,server=n,address=5005,suspend=y"
## Spark
# alias to start a local Spark cluster with a single worker node
alias spark-start="mkdir -p /tmp/spark && $SPARK_HOME/sbin/start-master.sh >/tmp/spark/master-start.out 2>/tmp/spark/master-start.err && $SPARK_HOME/bin/spark-class org.apache.spark.deploy.worker.Worker spark://`hostname`:7077 -c 6 -m 2048M >/tmp/spark/worker.out 2>/tmp/spark/worker.err &"
# alias to stop aforementioned single-worker local cluster
alias spark-stop="$SPARK_HOME/sbin/stop-master.sh && pkill -f org.apache.spark.deploy.worker.Worker"
# to potentially enable event logging, create default events dir (can be useful for debugging)
mkdir -p /tmp/spark-events
## SDC
alias run-sdc='echo "Running command $HOME/src/streamsets/datacollector/dist/target/streamsets-datacollector-*-SNAPSHOT/streamsets-datacollector-*-SNAPSHOT/bin/streamsets dc" ; $HOME/src/streamsets/datacollector/dist/target/streamsets-datacollector-*-SNAPSHOT/streamsets-datacollector-*-SNAPSHOT/bin/streamsets dc'
alias compile-sdc='echo "Running command: mvn clean install -DskipTests -Pdist,ui" ; mvn clean install -DskipTests -Pdist,ui'
alias mvn-compile-profiles-dist-ui='echo "Running command: mvn clean install -Pdist,ui" ; mvn clean install -Pdist,ui'
alias mvn-compile-profile-dist='echo “Running command: mvn clean install -Pdist" ; mvn clean install -Pdist'
alias sdcdebug='export SDC_JAVA_OPTS=$IDE_DBG'
alias sdcclear='export SDC_JAVA_OPTS=' # -n -> remove the export property from each NAME
# sdc container stuff (you will need to ask someone from the team for the docker file to build the image)
# alias for running sdc locally. In order for it to correctly run I need to be in $HOME/src/streamsets/datacollector/dist/target/streamsets-datacollector-X.Y.Z-SNAPSHOT/streamsets-datacollector-X.Y.Z-SNAPSHOT
# also note sdc-container image must be in the "docker images" list. otherwise I have to create it running "docker build $HOME/src/docker-images/sdc-container/ -t sdc-container"
alias sdc-container-start-simple='docker run --net=cluster --name=sdc-container -it -p 18630:18630 -v ${SDC_DIST_DIRECTORY}:/sdc sdc-container'
# alias for running sdc locally without further checks needed
alias sdc-container-start='docker stop $(docker ps -a -q --filter ancestor=sdc-container --format={{.ID}}); docker rm $(docker ps -a -q --filter ancestor=sdc-container --format={{.ID}}); docker network create cluster || true; docker run --net=cluster --name=sdc-container -it -p 5005:5005 -p 18630:18630 -v ${SDC_DIST_DIRECTORY}:/sdc sdc-container'
# alias to create sdc-container aka (also known as) java-callback. Dockerfile must be located at the provided path (currently: $HOME/src/docker-images/sdc-container/)
alias sdc-container-build='docker build $HOME/src/docker-images/sdc-container/ -t sdc-container'
# Function to run sdc docker image for version $1 exposed into port 18630
function run-sdc-docker-image() {
docker run --restart on-failure -p 18630:18630 -d --name streamsets-dc streamsets/datacollector:$1 dc
}
run-sdc-with-stf () {
if [[ $# -lt 1 ]]
then
echo "Usage: run-sdc-with-stf '<SDC-IMAGE-VERSION> [<SCH-SERVER-URL>] [<SCH-USERNAME> <SCH-PASSWORD>]'"
echo "Example 1: run-sdc-with-stf 3.16.0 => runs sdc without registering it in sch"
echo "Example 2: run-sdc-with-stf 3.16.0 http://192.168.1.33:18631 => runs sdc registering it in sch using admin@admin both as sch username and sch user password"
echo "Example 3: run-sdc-with-stf 3.16.0 http://192.168.1.33:18631 user@org examplePass => runs sdc registering it in sch using user@org as sch username and examplePass as sch password"
echo "Example 4: run-sdc-with-stf 3.16.0 http://192.168.1.36:18631 user@org examplePass stage-lib-1 stage-lib-2 stage-lib-n"
else
if [[ $# -lt 2 ]]
then
commandToRun="stf -v start sdc --version $1 --enable-base-http-url 'private'"
elif [[ $# -lt 3 ]]
then
commandToRun="stf -v start sdc --version $1 --sch-server-url $2 --sch-username 'admin@admin' --sch-password 'admin@admin' --enable-base-http-url 'private'"
elif [[ $# -eq 4 ]]
then
commandToRun="stf -v start sdc --version $1 --sch-server-url $2 --sch-username $3 --sch-password $4 --enable-base-http-url 'private'"
else
commandToRun="stf -v start sdc --version $1 --sch-server-url $2 --sch-username $3 --sch-password $4 --enable-base-http-url 'private' --stage-lib ${@:5}"
fi
echo "Running command: $commandToRun"
eval "$commandToRun"
fi
}
## Docker
alias docker-stop-all-containers='docker stop $(docker ps -a -q)'
alias docker-remove-all-stopped-containers='docker rm $(docker ps -a -q)'
# Function to open bash shell into container named (or container id) $1
function docker-term() {
docker exec -it $1 /bin/bash
}
## SCH/DPM
alias start-influxdb='docker run --name influxdb -d -p 8086:8086 -v $PWD:/var/lib/influxdb influxdb'
alias start-mysql='docker run --name mysql-5.7 -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root mysql:5.7'
alias compile-dpm='pushd $HOME/src/streamsets/domainserver/; echo "running command ./gradlew clean installDist -PfilterFile=dev-mysql"; ./gradlew clean installDist -PfilterFile=dev-mysql; popd'
alias run-dpm='$DPM_DIST/bin/streamsets dpm'
alias dpm-debug='export DPM_JAVA_OPTS=$IDE_DBG'
alias dpm-debug-ui='export DPM_JAVA_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=1055 -Ddpm.static-web.dir=$HOME/src/streamsets/domainserver/server-ui/dist"'
alias dpm-clear='export DPM_JAVA_OPTS='
alias set-dpm-dist='pushd $HOME/src/streamsets/domainserver/build/install/streamsets-dpm-*/ && export DPM_DIST=$(pwd) && popd'
alias py-stf='source ~/py-envs/stf37/bin/activate'
#######
## Java
export JAVA_8_HOME=$(/usr/libexec/java_home -v1.8)
export JAVA_11_HOME=$(/usr/libexec/java_home -v11)
export JAVA_14_HOME=$(/usr/libexec/java_home -v14)
export JAVA_HOME=$JAVA_8_HOME
alias java8='export JAVA_HOME=$JAVA_8_HOME'
alias java11='export JAVA_HOME=$JAVA_11_HOME'
alias java14='export JAVA_HOME=$JAVA_14_HOME'
######
## Git
alias git-agent-setup='eval "$(ssh-agent -s)";ssh-add -K ~/.ssh/id_gerrit'
############
## Bookmarks
if [ -d "$HOME/.bookmarks" ]; then
export CDPATH=".:$HOME/.bookmarks:/"
alias goto="cd -P"
fi
######
## SCH
# _ch-get-token baseUrl userId password
_ch-get-token () {
if [[ $# -lt 3 ]]
then
echo "Usage: _ch-get-token '<SCH-SERVER-URL> <SCH-USERNAME> <SCH-PASSWORD>'"
else
commandToRun="http --print=h $1/security/public-rest/v1/authentication/login userName=$2 password=$3 X-Requested-By:SCH | grep SS-SSO-LOGIN | awk -F\"=\" '{print \$2}' | awk -F\";\" '{print \$1}'"
#echo "Running command: $commandToRun"
eval "$commandToRun"
fi
}
# _ch-apicreds-export baseUrl org tokenFromLogin
_ch-apicreds-export () {
if [[ $# -lt 3 ]]
then
echo "Usage: ch-apicreds-export <SCH-SERVER-URL> <SCH-ORGANIZATION> <SCH-TOKEN>"
else
body='./.http-body'
http --download --output $body POST $1/security/rest/v1/organization/$2/api-user-credentials X-Requested-By:SCH X-SS-REST-CALL:true "X-SS-User-Auth-Token:$3" active=true label=FromTheRestApi generateAuthToken=true
body_contents=$(cat $body)
rm $body
export CRED_ID=$(echo $body_contents | jq .componentId)
export CRED_TOKEN=$(echo $body_contents | jq .authToken)
echo exported CRED_ID=${CRED_ID}
echo exported CRED_TOKEN=${CRED_TOKEN}
fi
}
alias _ch-compile="./gradlew installDist -PfilterFile=dev-mysql"
alias _ch-init-mysql='set-dpm-dist;$DPM_DIST/dev/99-fullmysqlinit.sh'
alias _ch-rebuild-and-setup='dpm-utils.py --clean-all --host host.docker.internal --expiration=30 clean install setup set-expiration'
alias _ch-run='set-dpm-dist;run-dpm'
alias _ch-setup-short="ch-set-dpmdist;dpm-utils.py --expiration=30 setup set-expiration;sed -i '' -e 's/dpm.base.url.*/dpm.base.url=http:\/\/host.docker.internal:18631/'"' $DPM_DIST/etc/common-to-all-apps.properties'
alias _ch-tail-logs='tail -f $HOME/src/streamsets/domainserver/build/install/streamsets-dpm-*/log/dpm.log'
######
## SDC
alias _dc-command='$HOME/src/streamsets/datacollector/dist/target/streamsets-datacollector-*-SNAPSHOT/streamsets-datacollector-*-SNAPSHOT/bin/streamsets'
alias _dc-disable-control-hub="sed -i '' -e 's/dpm.enabled.true/dpm.enabled=false/' $HOME/src/streamsets/datacollector/dist/target/streamsets-datacollector-*-SNAPSHOT/streamsets-datacollector-*-SNAPSHOT/etc/dpm.properties; echo -n >$HOME/src/streamsets/datacollector/dist/target/streamsets-datacollector-*-SNAPSHOT/streamsets-datacollector-*-SNAPSHOT/etc/application-token.txt"
alias _dc-setup="sed -i '' -e 's/.*sdc.base.http.url.*/sdc.base.http.url=http:\/\/host.docker.internal:18630/' $HOME/src/streamsets/datacollector/dist/target/streamsets-datacollector-*-SNAPSHOT/streamsets-datacollector-*-SNAPSHOT/etc/sdc.properties"
alias _dc-tail-logs='tail -f $HOME/src/streamsets/datacollector/dist/target/streamsets-datacollector-*/streamsets-datacollector-*/log/sdc.log'
##############
## Transformer
alias _tr-run='_tr-set-trdist;$TR_DIST/bin/streamsets transformer'
alias _tr-set-trdist='pushd $HOME/src/streamsets/transformer/dist/target/streamsets-transformer*SNAPSHOT/streamsets-transformer*SNAPSHOT/ && export TR_DIST=$(pwd) && popd'
_tr-setup-public-url () {
_tr-set-trdist
ngrok_url=$(http http://localhost:4040/api/tunnels | jq --join-output '.tunnels[0].public_url')
sed -E -i '' -e "s#\#?transformer.base.http.url.*#transformer.base.http.url=${ngrok_url}#" $TR_DIST/etc/transformer.properties
}
alias ch-apicreds-export=_ch-apicreds-export
alias ch-compile=_ch-compile
alias ch-get-token=_ch-get-token
alias ch-init-mysql=_ch-init-mysql
alias ch-opts-clear=dpm-clear
alias ch-opts-set-debug-ui=dpm-debug-ui
alias ch-opts-set-debug=dpm-debug
alias ch-rebuild-mysql=compile-dpm
alias ch-rebuild-and-setup=_ch-rebuild-and-setup
alias ch-run=_ch-run
alias ch-start-influxdb=start-influxdb
alias ch-start-mysql=start-mysql
alias ch-set-dpmdist=set-dpm-dist
alias ch-setup-short=_ch-setup-short
alias ch-tail-logs=_ch-tail-logs
alias dc-command=_dc-command
alias dc-disable-control-hub=_dc-disable-control-hub
alias dc-opts-clear=sdcclear
alias dc-opts-set-debug=sdcdebug
alias dc-rebuild-no-ui=mvn-compile-profiles-dist
alias dc-rebuild=mvn-compile-profiles-dist-ui
alias dc-rebuild-no-tests=compile-sdc
alias dc-run=run-sdc
alias dc-setup=_dc-setup
alias dc-from-stf=run-sdc-with-stf
alias dc-tail-logs=_dc-tail-logs
alias tr-run=_tr-run
alias tr-set-trdist=_tr-set-trdist
alias tr-setup-public-url=_tr-setup-public-url
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment