提交 dd0a0861 编写于 作者: T tangfangzhi

compatibility test scripts

上级 1eb792a8
#!/bin/bash
function usage() {
echo "$0"
echo -e "\t -w work dir"
echo -e "\t -o old version package"
echo -e "\t -n new version package"
echo -e "\t -c client package"
echo -e "\t -h help"
}
while getopts "w:o:n:c:h" opt; do
case $opt in
w)
WORK_DIR=$OPTARG
;;
o)
TAOS_PKG1=$OPTARG
;;
n)
TAOS_PKG2=$OPTARG
;;
c)
CLIENT_PKG=$OPTARG
;;
h)
usage
exit 0
;;
\?)
echo "Invalid option: -$OPTARG"
usage
exit 0
;;
esac
done
if [ -z "$WORK_DIR" ]; then
usage
exit 1
fi
if [ -z "$TAOS_PKG1" ]; then
usage
exit 1
fi
if [ -z "$TAOS_PKG2" ]; then
usage
exit 1
fi
if [ ! -z "$CLIENT_PKG" ]; then
if [ ! -f "$CLIENT_PKG" ]; then
echo "$CLIENT_PKG not found"
exit 1
fi
fi
script_dir=`dirname $0`
cd $script_dir
source settings.sh
code_dir=$WORK_DIR/TDinternal
container_workdir1=$WORK_DIR/compatibility/$container_name1
container_workdir2=$WORK_DIR/compatibility/$container_name2
container_workdir3=$WORK_DIR/compatibility/$container_name3
container_workdir4=$WORK_DIR/compatibility/$container_name4
mkdir -p $container_workdir1
mkdir -p $container_workdir2
mkdir -p $container_workdir3
mkdir -p $container_workdir4
docker rm -f $container_name1 >/dev/null 2>&1
docker rm -f $container_name2 >/dev/null 2>&1
docker rm -f $container_name3 >/dev/null 2>&1
docker rm -f $container_name4 >/dev/null 2>&1
net_name=mynet
docker network create --driver bridge --subnet 172.31.30.0/24 --gateway 172.31.30.1 $net_name
./init_container.sh -d $code_dir -w $container_workdir1 -p $TAOS_PKG1 -q $TAOS_PKG2 -n $net_name -c $container_name1 &
./init_container.sh -d $code_dir -w $container_workdir2 -p $TAOS_PKG1 -q $TAOS_PKG2 -n $net_name -c $container_name2 &
./init_container.sh -d $code_dir -w $container_workdir3 -p $TAOS_PKG1 -q $TAOS_PKG2 -n $net_name -c $container_name3 &
./init_container.sh -d $code_dir -w $container_workdir4 -p $TAOS_PKG1 -q $TAOS_PKG2 -n $net_name -c $container_name4 &
RET=0
pids=`jobs -p`
for pid in $pids; do
wait $pid
status=$?
if [ $status -ne 0 ]; then
echo "init container $pid status is $status!"
RET=$status
fi
done
if [ $RET -eq 0 ]; then
if [ -z "$CLIENT_PKG" ]; then
docker exec $container_name4 pip3 install /home/TDinternal/community/src/connector/python
RET=$?
else
pkg_name=`basename $CLIENT_PKG`
pkg_dir=`echo "$pkg_name"|sed "s/-Linux-x64.tar.gz//"`
docker cp $CLIENT_PKG $container_name4:/home/
docker exec $container_name4 sh -c "cd /home;tar xzf $pkg_name;pip3 install /home/$pkg_dir/connector/python"
RET=$?
fi
fi
if [ $RET -eq 0 ]; then
echo "containers created"
else
echo "containers create failed"
fi
exit $RET
#!/bin/bash
function usage() {
echo "$0"
echo -e "\t -w work dir"
echo -e "\t -d TDinternal code dir"
echo -e "\t -p old package"
echo -e "\t -q new package"
echo -e "\t -c container name"
echo -e "\t -h help"
}
while getopts "w:p:q:n:c:d:h" opt; do
case $opt in
w)
WORK_DIR=$OPTARG
;;
d)
CODE_DIR=$OPTARG
;;
p)
TAOS_PKG1=$OPTARG
;;
q)
TAOS_PKG2=$OPTARG
;;
c)
CONTAINER_NAME=$OPTARG
;;
n)
NET_NAME=$OPTARG
;;
h)
usage
exit 0
;;
\?)
echo "Invalid option: -$OPTARG"
usage
exit 0
;;
esac
done
if [ -z "$WORK_DIR" ]; then
usage
exit 1
fi
if [ -z "$TAOS_PKG1" ]; then
usage
exit 1
fi
if [ -z "$TAOS_PKG2" ]; then
usage
exit 1
fi
if [ -z "$CONTAINER_NAME" ]; then
usage
exit 1
fi
if [ -z "$NET_NAME" ]; then
usage
exit 1
fi
if [ -z "$CODE_DIR" ]; then
usage
exit 1
fi
if [ ! -f "$TAOS_PKG1" ]; then
echo "$TAOS_PKG1 not found"
exit 1
fi
if [ ! -f "$TAOS_PKG2" ]; then
echo "$TAOS_PKG2 not found"
exit 1
fi
pkg_name1=`basename $TAOS_PKG1`
pkg_dir1=`echo "$pkg_name1"|sed "s/-Linux-x64.tar.gz//"`
pkg_name2=`basename $TAOS_PKG2`
pkg_dir2=`echo "$pkg_name2"|sed "s/-Linux-x64.tar.gz//"`
RET=0
docker run -d --name $CONTAINER_NAME \
--hostname $CONTAINER_NAME \
--net $NET_NAME --ulimit core=-1 -it \
-v $TAOS_PKG1:/home/tdengine1.tar.gz:ro \
-v $TAOS_PKG2:/home/tdengine2.tar.gz:ro \
-v $WORK_DIR/coredump:/home/coredump \
-v $CODE_DIR:/home/TDinternal \
taos_test:v1.0 bash
RET=$?
if [ $RET -ne 0 ]; then
echo "docker run failed with $RET"
exit $RET
fi
docker exec $CONTAINER_NAME sh -c "cd /home;tar xzf tdengine1.tar.gz;tar xzf tdengine2.tar.gz;cd $pkg_dir1;./install.sh -v server -e no"
RET=$?
if [ $RET -ne 0 ]; then
echo "docker exec install.sh failed with $RET"
exit $RET
fi
exit 0
#!/bin/bash
function usage() {
echo "$0"
echo -e "\t -w work dir"
echo -e "\t -o old package"
echo -e "\t -n new package"
echo -e "\t -c client package"
echo -e "\t -h help"
}
while getopts "w:o:n:c:h" opt; do
case $opt in
w)
WORK_DIR=$OPTARG
;;
o)
OLD_PACKAGE=$OPTARG
;;
n)
NEW_PACKAGE=$OPTARG
;;
c)
CLIENT_PACKAGE_PARAM="-c $OPTARG"
;;
h)
usage
exit 0
;;
\?)
echo "Invalid option: -$OPTARG"
usage
exit 0
;;
esac
done
if [ -z "$WORK_DIR" ]; then
usage
exit 1
fi
if [ -z "$OLD_PACKAGE" ]; then
usage
exit 1
fi
if [ -z "$NEW_PACKAGE" ]; then
usage
exit 1
fi
script_dir=`dirname $0`
cd $script_dir
pkg_name=`basename $NEW_PACKAGE`
new_version=`echo "$pkg_name"|sed "s/TDengine-enterprise-server-//"|sed "s/-Linux-x64.tar.gz//"`
pkg_name=`basename $OLD_PACKAGE`
old_version=`echo "$pkg_name"|sed "s/TDengine-enterprise-server-//"|sed "s/-Linux-x64.tar.gz//"`
source settings.sh
containers="$container_name1 $container_name2 $container_name3"
# initialize all containers and install with old version package
./init.sh -w $WORK_DIR -o $OLD_PACKAGE -n $NEW_PACKAGE $CLIENT_PACKAGE_PARAM
# upgrade with new version package
function upgrade() {
local container_name=$1
local new_pkg_name=`basename $NEW_PACKAGE`
local new_pkg_dir=`echo "$new_pkg_name"|sed "s/-Linux-x64.tar.gz//"`
local ret=0
echo "upgrade ${container_name}"
docker exec $container_name service taosd stop
ret=$?
if [ $ret -ne 0 ]; then
echo "docker exec $container_name service taosd stop, exit: $ret"
return $ret
fi
docker exec $container_name sh -c "cd /home/$new_pkg_dir;./install.sh -v server -e no"
ret=$?
if [ $ret -ne 0 ]; then
echo "docker exec $container_name install.sh, exit: $ret"
return $ret
fi
docker exec $container_name service taosd start
ret=$?
if [ $ret -ne 0 ]; then
echo "docker exec $container_name service taosd start, exit: $ret"
return $ret
fi
return 0
}
function checkStatus() {
local container_name=$1
local check_version=$2
echo "python3 manualTest/TD-5114/checkClusterStatus.py $container_name $check_version"
docker exec $container_name4 sh -c "cd /home/TDinternal/community/tests/pytest;python3 manualTest/TD-5114/checkClusterStatus.py $container_name $check_version"
return $?
}
# config container /etc/taos/taos.cfg
taos_cfg=/etc/taos/taos.cfg
for container in $containers; do
docker exec $container sed -i "s/^.*firstEp.*$/firstEp $container_name1:6030/" $taos_cfg
docker exec $container sed -i "s/^.*fqdn.*$/fqdn $container/" $taos_cfg
docker exec $container sed -i "s/^.*numOfMnodes.*$/numOfMnodes 3/" $taos_cfg
done
# start taosd
docker exec $container_name1 service taosd start
docker exec $container_name4 taos -h $container_name1 -s "CREATE DNODE \"$container_name2:6030\";"
docker exec $container_name4 taos -h $container_name1 -s "CREATE DNODE \"$container_name3:6030\";"
# start taosd
docker exec $container_name2 service taosd start
docker exec $container_name3 service taosd start
# show nodes
docker exec $container_name4 taos -h $container_name1 -s "SHOW DNODES;"
docker exec $container_name4 taos -h $container_name1 -s "SHOW MNODES;"
# check cluster status
for container in $containers; do
checkStatus $container $old_version
RET=$?
if [ $RET -ne 0 ]; then
echo "check cluster status $container error: $RET"
exit $RET
fi
echo "check cluster status $container ret: $RET"
done
sleep 1
# upgrade
upgrade ${container_name3}
RET=$?
if [ $RET -ne 0 ]; then
echo "upgrade ${container_name3} error: $RET"
exit $RET
fi
sleep 10
# check cluster status
checkStatus ${container_name3} $old_version
RET=$?
if [ $RET -ne 0 ]; then
echo "check cluster status ${container_name3} error: $RET"
exit $RET
fi
echo "check cluster status ${container_name3} ret: $RET"
# upgrade
upgrade ${container_name2}
RET=$?
if [ $RET -ne 0 ]; then
echo "upgrade ${container_name2} error: $RET"
exit $RET
fi
sleep 10
# check cluster status
checkStatus ${container_name2} $old_version
RET=$?
if [ $RET -ne 0 ]; then
echo "check cluster status ${container_name2} error: $RET"
exit $RET
fi
echo "check cluster status ${container_name2} ret: $RET"
# upgrade
upgrade ${container_name1}
RET=$?
if [ $RET -ne 0 ]; then
echo "upgrade ${container_name1} error: $RET"
exit $RET
fi
sleep 10
# check cluster status
checkStatus ${container_name3} $new_version
RET=$?
if [ $RET -ne 0 ]; then
echo "check cluster status ${container_name3} error: $RET"
exit $RET
fi
echo "check cluster status ${container_name3} ret: $RET"
exit $RET
container_name1=compat_container1
container_name2=compat_container2
container_name3=compat_container3
container_name4=compat_container4
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册