Setup CI job for storage benchmarking on apex 59/39859/2
authorzhihui wu <wu.zhihui1@zte.com.cn>
Tue, 22 Aug 2017 09:29:59 +0000 (17:29 +0800)
committerzhihui wu <wu.zhihui1@zte.com.cn>
Tue, 22 Aug 2017 10:01:08 +0000 (18:01 +0800)
The script "launch_containers_by_testsuites.sh" helps to
launch containers according to TEST_SUITE. e.g. compute or
storage.

JIRA: QTIP-265

Change-Id: Ib7210d68600cc092e3322ddaab4cdf7913428647
Signed-off-by: zhihui wu <wu.zhihui1@zte.com.cn>
tests/ci/launch_containers_by_testsuite.sh [new file with mode: 0755]
tests/ci/periodic.sh
tests/ci/run_compute_qpi.sh

diff --git a/tests/ci/launch_containers_by_testsuite.sh b/tests/ci/launch_containers_by_testsuite.sh
new file mode 100755 (executable)
index 0000000..ff94a02
--- /dev/null
@@ -0,0 +1,70 @@
+#! /bin/bash
+##############################################################################
+# Copyright (c) 2017 ZTE and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+if [[ -e $ENV_FILE ]];then
+    rm $ENV_FILE
+fi
+
+echo "INSTALLER_TYPE=$INSTALLER_TYPE" >> $ENV_FILE
+echo "INSTALLER_IP=$INSTALLER_IP" >> $ENV_FILE
+echo "NODE_NAME=$NODE_NAME" >> $ENV_FILE
+echo "SCENARIO=$DEPLOY_SCENARIO" >> $ENV_FILE
+echo "TESTAPI_URL=$TESTAPI_URL" >> $ENV_FILE
+
+if [[ "$TEST_SUITE" == 'compute' ]];then
+
+    echo "--------------------------------------------------------"
+    cat $ENV_FILE
+    echo "--------------------------------------------------------"
+
+    if [[ ! -z $(docker ps -a | grep "opnfv/qtip:$DOCKER_TAG") ]]; then
+        echo "Removing existing opnfv/qtip containers..."
+        container_id=$(docker ps -a | grep "opnfv/qtip:$DOCKER_TAG" | awk '{print $1}')
+        docker stop $container_id
+        docker rm $container_id
+    fi
+
+    if [[ $(docker images opnfv/qtip:${DOCKER_TAG} | wc -l) -gt 1 ]]; then
+        echo "Removing docker image opnfv/qtip:$DOCKER_TAG..."
+        docker rmi opnfv/qtip:$DOCKER_TAG
+    fi
+
+    echo "Qtip: Pulling docker image: opnfv/qtip:${DOCKER_TAG}"
+    docker pull opnfv/qtip:$DOCKER_TAG >/dev/null
+
+    envs="--env-file $ENV_FILE"
+    vols=""
+    if [[ "$INSTALLER_TYPE" == "apex" ]];then     vols="-v /root/.ssh:/root/.ssh"
+    fi
+
+    cmd="sudo docker run -id ${envs} ${vols} opnfv/qtip:${DOCKER_TAG} /bin/bash"
+    echo "Qtip: Running docker command: ${cmd}"
+    ${cmd}
+
+elif [[ "$TEST_SUITE" == 'storage' ]];then
+    script_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+
+    git clone --depth 1 https://gerrit.opnfv.org/gerrit/releng $WORKSPACE/releng
+    $WORKSPACE/releng/utils/fetch_os_creds.sh -i $INSTALLER_TYPE -a $INSTALLER_IP -d $WORKSPACE/openrc
+
+    grep "export" $WORKSPACE/openrc | sed "s/export //" >> $ENV_FILE
+    echo "DOCKER_TAG=$DOCKER_TAG" >> $ENV_FILE
+
+    echo "--------------------ENV_FILE----------------------------"
+    cat $ENV_FILE
+    echo "--------------------------------------------------------"
+
+    source $script_dir/storperf/containers.sh
+    cd $script_dir/storperf
+    clean_containers
+    launch_containers
+else
+    echo "Sorry, not support test suite $TEST_SUITE!"
+    exit 1
+fi
index 3f5fe78..f208cdc 100755 (executable)
@@ -7,7 +7,11 @@
 # http://www.apache.org/licenses/LICENSE-2.0
 ##############################################################################
 set -e
+set -x
 
+export DOCKER_TAG=${DOCKER_TAG:-latest}
+export ENV_FILE=$WORKSPACE/env_file
+QTIP_REPO=/home/opnfv/repos/qtip
 
 case $INSTALLER_TYPE in
     apex)
@@ -15,56 +19,18 @@ case $INSTALLER_TYPE in
         ;;
 esac
 
-cat << EOF > $WORKSPACE/env_file
-INSTALLER_TYPE=$INSTALLER_TYPE
-INSTALLER_IP=$INSTALLER_IP
-POD_NAME=$NODE_NAME
-SCENARIO=$DEPLOY_SCENARIO
-TESTAPI_URL=$TESTAPI_URL
-EOF
-
-echo "--------------------------------------------------------"
-cat $WORKSPACE/env_file
-echo "--------------------------------------------------------"
-
-# Remove previous running containers if exist
-if [[ ! -z $(docker ps -a | grep "opnfv/qtip:$DOCKER_TAG") ]]; then
-    echo "Removing existing opnfv/qtip containers..."
-    # workaround: sometimes it throws an error when stopping qtip container.
-    # To make sure ci job unblocked, remove qtip container by force without stopping it.
-    docker rm -f $(docker ps -a | grep "opnfv/qtip:$DOCKER_TAG" | awk '{print $1}')
-fi
-
-# Remove existing images if exist
-if [[ $(docker images opnfv/qtip:${DOCKER_TAG} | wc -l) -gt 1 ]]; then
-    echo "Removing docker image opnfv/qtip:$DOCKER_TAG..."
-    docker rmi -f opnfv/qtip:$DOCKER_TAG
-fi
-
-echo "Qtip: Pulling docker image: opnfv/qtip:${DOCKER_TAG}"
-docker pull opnfv/qtip:$DOCKER_TAG >/dev/null
-
-envs="--env-file $WORKSPACE/env_file"
-vols="-v /root/.ssh:/root/.ssh"
-
-cmd="sudo docker run -id ${envs} ${vols} opnfv/qtip:${DOCKER_TAG} /bin/bash"
-echo "Qtip: Running docker command: ${cmd}"
-${cmd}
+script_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+source $script_dir/launch_containers_by_testsuite.sh
 
 container_id=$(docker ps | grep "opnfv/qtip:${DOCKER_TAG}" | awk '{print $1}' | head -1)
-if [ $(docker ps | grep 'opnfv/qtip' | wc -l) == 0 ]; then
-    echo "The container opnfv/qtip with ID=${container_id} has not been properly started. Exiting..."
+
+if [[ -z "$container_id" ]]; then
+    echo "The container opnfv/qtip has not been properly started. Exiting..."
     exit 1
+else
+    echo "The container ID is: ${container_id}"
+    docker exec -t ${container_id} bash -c "bash ${QTIP_REPO}/tests/ci/run_${TEST_SUITE}_qpi.sh"
 fi
 
-echo "The container ID is: ${container_id}"
-QTIP_REPO=/home/opnfv/repos/qtip
-
-case $TEST_SUITE in
-    compute)
-        docker exec -t ${container_id} bash -c "bash ${QTIP_REPO}/tests/ci/run_compute_qpi.sh"
-        ;;
-esac
-
-echo "Qtip done!"
+echo "${TEST_SUITE} QPI done!"
 exit 0
\ No newline at end of file
index 09762b1..7b3987f 100644 (file)
@@ -7,6 +7,7 @@
 # http://www.apache.org/licenses/LICENSE-2.0
 ##############################################################################
 set -e
+set -x
 
 usage(){
    echo "usage: $0 -t <installer_type> -i <installer_ip> -p <pod_name> -s <scenario> -r <report_url>" >&2
@@ -46,7 +47,7 @@ done
 #set vars from env if not provided by user as options
 installer_type=${installer_type:-$INSTALLER_TYPE}
 installer_ip=${installer_ip:-$INSTALLER_IP}
-pod_name=${pod_name:-$POD_NAME}
+pod_name=${pod_name:-$NODE_NAME}
 scenario=${scenario:-$SCENARIO}
 testapi_url=${testapi_url:-$TESTAPI_URL}