influxdb/e2e/scripts/influxdb2_community_test_en...

201 lines
6.1 KiB
Bash
Executable File

#!/bin/sh
USE_DOCKER=1 # Docker or tarball
USE_ALPHA=0 # alpha or nightly
DEBUG=0
ACTION="setup"
TAR_DOWNLOAD="https://dl.influxdata.com/influxdb/releases/influxdb_2.0.0-alpha.1_linux_amd64.tar.gz"
DOCKER_IMAGE="quay.io/influxdb/influx:nightly"
INSTANCE_NAME="influx2_solo"
INFLUX2_HOME="${HOME}/.influxdbv2"
LOG_DIR=${PWD}/log
LOG_FILE=${LOG_DIR}/docker.log
TELEGRAF_DOWNLOAD="https://dl.influxdata.com/telegraf/releases/telegraf_1.8.2-1_amd64.deb"
download_telegraf(){
echo "["$(date +"%d.%m.%Y %T")"] downloading telegraf.deb - if changed"
#curl -s -o telegraf.deb -z telegraf.deb https://dl.influxdata.com/telegraf/releases/telegraf_1.7.2-1_amd64.deb
curl -s -o telegraf.deb -z telegraf.deb https://dl.influxdata.com/telegraf/releases/telegraf_1.8.2-1_amd64.deb
}
install_telegraf(){
echo "["$(date +"%d.%m.%Y %T")"] installing telegraf.deb - if changed"
sudo dpkg -i telegraf.deb
echo "["$(date +"%d.%m.%Y %T")"] installed telegraf.deb - if changed"
}
stop_telegraf(){
echo "["$(date +"%d.%m.%Y %T")"] stoping telegraf.service - if changed"
sudo systemctl stop telegraf.service
echo "["$(date +"%d.%m.%Y %T")"] stoped telegraf.service - if changed"
}
pull_docker(){
echo "["$(date +"%d.%m.%Y %T")"] pulling ${DOCKER_IMAGE}"
docker pull ${DOCKER_IMAGE}
}
run_docker_influx(){
mkdir -p ${LOG_DIR}
echo "["$(date +"%d.%m.%Y %T")"] starting docker instance ${INSTANCE_NAME}"
sudo docker run --name ${INSTANCE_NAME} --publish 8086:8086 ${DOCKER_IMAGE} > ${LOG_FILE} 2>&1 &
echo "["$(date +"%d.%m.%Y %T")"] started instance $INSTANCE_NAME listening at port 8086."
echo "logfile at $LOG_FILE"
sleep 3
echo "\n$(tail -n32 $LOG_FILE)\n"
}
run_docker_influx_test_env(){
mkdir -p ${LOG_DIR}
sudo docker stop $INSTANCE_NAME
sudo docker rm $INSTANCE_NAME
sudo docker pull quay.io/influxdb/influx:nightly
sudo docker build -t influxdb_test_image .
sudo docker run --name $INSTANCE_NAME --publish 8086:8086 influxdb_test_image > ${LOG_FILE} 2>&1 &
}
stop_docker_influx(){
if [ "$(sudo docker ps -q -f name=$INSTANCE_NAME)" ] ; then
echo "["$(date +"%d.%m.%Y %T")"] stopping docker instance ${INSTANCE_NAME}"
sudo docker stop ${INSTANCE_NAME}
echo "["$(date +"%d.%m.%Y %T")"] stopped $INSTANCE_NAME"
fi
}
remove_docker_influx(){
if [ "$(sudo docker ps -a -q -f name=$INSTANCE_NAME)" ] ; then
echo "["$(date +"%d.%m.%Y %T")"] removing docker instance ${INSTANCE_NAME}"
sudo docker rm ${INSTANCE_NAME}
echo "["$(date +"%d.%m.%Y %T")"] removed $INSTANCE_NAME"
fi
}
clean_influx_home(){
echo "["$(date +"%d.%m.%Y %T")"] cleaning ${INFLUX2_HOME}"
sudo rm -rf ${INFLUX2_HOME}
echo "["$(date +"%d.%m.%Y %T")"] cleaned ${INFLUX2_HOME}"
}
usage(){
echo "usage $0"
echo " -a|--alpha use alpha release - otherwise nightly build is used"
echo " -t|--tarball use tarball build - otherwise docker is used"
echo " -n|--name set name of docker container - default $INSTANCE_NAME"
echo " setup|start start the service daemon - default action"
echo " shutdown|stop shutdown the service daemon"
echo " clean clean(remove) local directory ${INFLUX_HOME}"
echo " -h|--help print this message"
}
# Will need to get the telegraf config on first creating org
# then restart telegraf... Will be part of test cases
while [ "$1" != "" ]; do
case $1 in
-a | --alpha ) USE_ALPHA=1
DOCKER_IMAGE="quay.io/influxdb/influxdb:2.0.0-alpha"
;;
-t | --tarball ) USE_DOCKER=0
;;
-n | --name ) shift
INSTANCE_NAME=$1
;;
setup | start ) ACTION="setup"
;;
setup-qa | start-qa ) ACTION="setup-qa"
;;
stop | shutdown ) ACTION="stop"
;;
clean ) ACTION="clean"
;;
-h | --help ) usage
exit
;;
-d | --debug ) DEBUG=1
;;
* ) usage
exit 1
esac
shift
done
if [ $DEBUG -gt 0 ] ; then
echo "USE_DOCKER $USE_DOCKER"
echo "USE_ALPHA $USE_ALPHA"
echo "ACTION $ACTION"
echo "TAR_DOWNLOAD $TAR_DOWNLOAD"
echo "DOCKER_IMAGE $DOCKER_IMAGE"
echo "INSTANCE_NAME $INSTANCE_NAME"
echo "INFLUX2_HOME $INFLUX2_HOME"
echo "LOG_FILE $LOG_FILE"
echo "TELEGRAF_DOWNLOAD $TELEGRAF_DOWNLOAD"
fi
if [ $USE_ALPHA -ne 0 ] ; then
echo "USING ALPHA"
fi
if [ $USE_ALPHA -eq 0 ] && [ $USE_DOCKER -eq 0 ] ; then
echo "Nightly builds with tar balls not supported at this time"
exit 1
fi
if [ $USE_DOCKER -eq 0 ] ; then
echo "tarball install - not yet supported"
exit
fi
#if [ $USE_ALPHA -eq 0 ] && [ $USE_DOCKER -gt 0 ] ; then
case $ACTION in
setup ) stop_docker_influx
remove_docker_influx
download_telegraf
pull_docker
run_docker_influx
;;
setup-qa) run_docker_influx_test_env
;;
stop ) stop_docker_influx
;;
clean ) clean_influx_home
;;
* ) echo "Unhandled ACTION $ACTION"
exit 1
esac
#if [ "$ACTION" = "setup" ] ; then
# stop_docker_influx
# remove_docker_influx
# download_telegraf
# install_telegraf
# stop_telegraf
# pull_docker_nightly
# run_docker_influx
#elif [ "$ACTION" = "stop" ] ; then # stop docker nightly
# stop_docker_influx
# else
# echo "Unhandled ACTION $ACTION"
# exit 1
#fi
#fi
#if [ -z $1 ] ; then # check if first cmdline param is not set
# echo "["$(date +"%d.%m.%Y %T")"] USAGE: $0 [setup|start|stop]"
#elif [ "$1" = "setup" ] || [ "$1" = "start" ] ; then
# stop_docker_influx
# remove_docker_influx
# download_telegraf
## install_telegraf
## stop_telegraf
# pull_docker_nightly
# run_docker_influx
#elif [ "$1" = "stop" ] ; then
# stop_docker_influx
#fi