| #!/bin/bash | |
| # | |
| # Licensed to the Apache Software Foundation (ASF) under one or more | |
| # contributor license agreements. See the NOTICE file distributed with | |
| # this work for additional information regarding copyright ownership. | |
| # The ASF licenses this file to You under the Apache License, Version 2.0 | |
| # (the "License"); you may not use this file except in compliance with | |
| # the License. You may obtain a copy of the License at | |
| # | |
| # http://www.apache.org/licenses/LICENSE-2.0 | |
| # | |
| # Unless required by applicable law or agreed to in writing, software | |
| # distributed under the License is distributed on an "AS IS" BASIS, | |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
| # See the License for the specific language governing permissions and | |
| # limitations under the License. | |
| # | |
| read -r -d '' USAGE <<END | |
| Usage: run_expansion_services.sh (start|stop) [options] | |
| Options: | |
| --group_id [unique id for stop services later] | |
| --transform_service_launcher_jar [path to the transform service launcher jar] | |
| --external_port [external port exposed by the transform service] | |
| --start [command to start the transform service for the given group_id] | |
| --stop [command to stop the transform service for the given group_id] | |
| END | |
| while [[ $# -gt 0 ]]; do | |
| key="$1" | |
| case $key in | |
| --group_id) | |
| GROUP_ID="$2" | |
| shift | |
| shift | |
| ;; | |
| --transform_service_launcher_jar) | |
| TRANSFORM_SERVICE_LAUNCHER_JAR="$2" | |
| shift | |
| shift | |
| ;; | |
| --external_port) | |
| EXTERNAL_PORT="$2" | |
| shift | |
| shift | |
| ;; | |
| --beam_version) | |
| BEAM_VERSION_JAR="$2" | |
| BEAM_VERSION_DOCKER=${BEAM_VERSION_JAR/-SNAPSHOT/.dev} | |
| shift | |
| shift | |
| ;; | |
| start) | |
| STARTSTOP="$1" | |
| shift | |
| ;; | |
| stop) | |
| STARTSTOP="$1" | |
| shift | |
| ;; | |
| *) | |
| echo "Unknown option: $1" | |
| echo "$USAGE" | |
| exit 1 | |
| ;; | |
| esac | |
| done | |
| FILE_BASE="beam-transform-service" | |
| if [ -n "$GROUP_ID" ]; then | |
| FILE_BASE="$FILE_BASE-$GROUP_ID" | |
| fi | |
| TEMP_DIR=/tmp | |
| case $STARTSTOP in | |
| start) | |
| echo "Starting the transform service for project $GROUP_ID at port $EXTERNAL_PORT for Beam version $BEAM_VERSION_DOCKER transform service startup jar is $TRANSFORM_SERVICE_LAUNCHER_JAR" | |
| java -jar $TRANSFORM_SERVICE_LAUNCHER_JAR --project_name $GROUP_ID --port $EXTERNAL_PORT --beam_version $BEAM_VERSION_DOCKER --command up >$TEMP_DIR/$FILE_BASE-java1.log 2>&1 </dev/null | |
| ;; | |
| stop) | |
| echo "Stopping the transform service for project $GROUP_ID at port $EXTERNAL_PORT for Beam version $BEAM_VERSION_DOCKER transform service startup jar is $TRANSFORM_SERVICE_LAUNCHER_JAR" | |
| java -jar $TRANSFORM_SERVICE_LAUNCHER_JAR --project_name $GROUP_ID --port $EXTERNAL_PORT --beam_version $BEAM_VERSION_DOCKER --command down >$TEMP_DIR/$FILE_BASE-java2.log 2>&1 </dev/null | |
| TRANSFORM_SERVICE_TEMP_DIR=$TEMP_DIR/$GROUP_ID | |
| if [[ -d ${TRANSFORM_SERVICE_TEMP_DIR} ]]; then | |
| echo "Removing transform service temporary directory $TRANSFORM_SERVICE_TEMP_DIR" | |
| rm -rf ${TRANSFORM_SERVICE_TEMP_DIR} | |
| fi | |
| ;; | |
| esac |