From 4a01c0eeb1c31239b9194999997210e04b437ddd Mon Sep 17 00:00:00 2001 From: Yujun Zhang Date: Sun, 30 Apr 2017 09:00:37 +0800 Subject: Copy integration test scripts from releng/jjb/qtip - it is better to manage these builder scripts in project instead of releng - releng shall keep only the job scheduler and publisher Change-Id: Idf8685427d8d24b1da83f31afdc7c640c0af2e5f Signed-off-by: Yujun Zhang --- tests/integration/cleanup-deploy.sh | 21 ++++++++++++ tests/integration/validate-deploy.sh | 62 ++++++++++++++++++++++++++++++++++++ tests/integration/validate-setup.sh | 24 ++++++++++++++ 3 files changed, 107 insertions(+) create mode 100644 tests/integration/cleanup-deploy.sh create mode 100644 tests/integration/validate-deploy.sh create mode 100644 tests/integration/validate-setup.sh diff --git a/tests/integration/cleanup-deploy.sh b/tests/integration/cleanup-deploy.sh new file mode 100644 index 00000000..9cb19a58 --- /dev/null +++ b/tests/integration/cleanup-deploy.sh @@ -0,0 +1,21 @@ +#!/bin/bash +############################################################################## +# Copyright (c) 2016 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 +############################################################################## +# 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 opnfv/qtip:$DOCKER_TAG +fi diff --git a/tests/integration/validate-deploy.sh b/tests/integration/validate-deploy.sh new file mode 100644 index 00000000..9f3dbe41 --- /dev/null +++ b/tests/integration/validate-deploy.sh @@ -0,0 +1,62 @@ +#!/bin/bash +############################################################################## +# Copyright (c) 2016 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 +############################################################################## +set -e + +envs="INSTALLER_TYPE=${INSTALLER_TYPE} -e INSTALLER_IP=${INSTALLER_IP} +-e NODE_NAME=${NODE_NAME} -e CI_DEBUG=${CI_DEBUG}" +ramfs=/tmp/qtip/ramfs +cfg_dir=$(dirname $ramfs) +dir_imgstore="${HOME}/imgstore" +ramfs_volume="$ramfs:/mnt/ramfs" + +echo "--------------------------------------------------------" +echo "POD: $NODE_NAME" +echo "INSTALLER: $INSTALLER_TYPE" +echo "Scenario: $DEPLOY_SCENARIO" +echo "--------------------------------------------------------" + +echo "Qtip: Pulling docker image: opnfv/qtip:${DOCKER_TAG}" +docker pull opnfv/qtip:$DOCKER_TAG + +# use ramfs to fix docker socket connection issue with overlay mode in centos +if [ ! -d $ramfs ]; then + mkdir -p $ramfs +fi + +if [ ! -z "$(df $ramfs | tail -n -1 | grep $ramfs)" ]; then + sudo mount -t tmpfs -o size=32M tmpfs $ramfs +fi + +# enable contro path in docker +cat < ${cfg_dir}/ansible.cfg +[defaults] +callback_whitelist = profile_tasks +[ssh_connection] +control_path=/mnt/ramfs/ansible-ssh-%%h-%%p-%%r +EOF + +cmd=" docker run -id -e $envs -v ${ramfs_volume} opnfv/qtip:${DOCKER_TAG} /bin/bash" +echo "Qtip: Running docker command: ${cmd}" +${cmd} + +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..." + exit 1 +else + echo "The container ID is: ${container_id}" + QTIP_REPO=/home/opnfv/repos/qtip + docker cp ${cfg_dir}/ansible.cfg ${container_id}:/home/opnfv/.ansible.cfg +# TODO(zhihui_wu): use qtip cli to execute benchmark test in the future + docker exec -t ${container_id} bash -c "cd ${QTIP_REPO}/qtip/runner/ && + python runner.py -d /home/opnfv/qtip/results/ -b all" + +fi + +echo "Qtip done!" diff --git a/tests/integration/validate-setup.sh b/tests/integration/validate-setup.sh new file mode 100644 index 00000000..8d84e120 --- /dev/null +++ b/tests/integration/validate-setup.sh @@ -0,0 +1,24 @@ +#!/usr/bin/env 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 +############################################################################## + +set -e + +# setup virtualenv +sudo pip install -u virtualenv virtualenvwrapper +export WORKON_HOME=$HOME/.virtualenvs +source /usr/local/bin/virtualenvwrapper.sh +mkvirtualenv qtip +workon qtip + +# setup qtip +sudo pip install $HOME/repos/qtip + +# testing +qtip --version +qtip --help -- cgit 1.2.3-korg