Denis Egorenko d564f6b2f5 Divide jobs log to different files
Divide logs for each job for Sahara by service

Change-Id: I1472fc30a467218f4aff79c553163968638dad01
2015-02-25 12:22:21 +04:00

280 lines
7.9 KiB
Bash

#!/bin/bash
TMP_LOG=/tmp/tox.log
LOG_FILE=/tmp/tox_log.txt
BUILD_ID=dontKill
TIMEOUT=60
export ADDR=$(ifconfig eth0| awk -F ' *|:' '/inet addr/{print $4}')
# This function determines Openstack host by checking internal address (second octet)
check_openstack_host() {
NETWORK=$(ifconfig eth0 | awk -F ' *|:' '/inet addr/{print $4}' | awk -F . '{print $2}')
export OS_USERNAME=ci-user
export OS_TENANT_NAME=ci
export OS_PASSWORD=nova
if [ "$NETWORK" == "0" ]; then
export OPENSTACK_HOST="172.18.168.42"
export HOST="c1"
export TENANT_ID="$CI_LAB_TENANT_ID"
export USE_NEUTRON=true
else
export OPENSTACK_HOST="172.18.168.43"
export HOST="c2"
export TENANT_ID="$STACK_SAHARA_TENANT_ID"
export USE_NEUTRON=false
fi
export OS_AUTH_URL=http://$OPENSTACK_HOST:5000/v2.0/
}
create_database() {
mysql -usahara-citest -psahara-citest -Bse "DROP DATABASE IF EXISTS sahara"
mysql -usahara-citest -psahara-citest -Bse "create database sahara"
}
enable_pypi() {
mkdir ~/.pip
export PIP_USE_MIRRORS=True
echo "
[global]
timeout = 60
index-url = http://172.18.168.44/simple/
extra-index-url = https://pypi.python.org/simple/
download-cache = /home/jenkins/.pip/cache/
[install]
use-mirrors = true
" > ~/.pip/pip.conf
echo "
[easy_install]
index_url = http://172.18.168.44/simple/
" > ~/.pydistutils.cfg
}
write_sahara_main_conf() {
conf_path=$1
echo "[DEFAULT]
" >> $conf_path
if [ "$HEAT_JOB" == "True" ]
then
echo "infrastructure_engine=heat
" >> $conf_path
else
echo "infrastructure_engine=direct
" >> $conf_path
fi
if [ "$PLUGIN_TYPE" == "cdh" ]
then
echo "plugins=cdh
" >> $conf_path
elif [ "$PLUGIN_TYPE" == "spark" ]
then
echo "plugins=spark
" >> $conf_path
elif [ "$TEMPEST" == "True" ]; then
echo "plugins=fake
" >> $conf_path
fi
echo "os_auth_host=$OPENSTACK_HOST
os_auth_port=5000
os_admin_username=ci-user
os_admin_password=nova
os_admin_tenant_name=ci
use_identity_api_v3=true
use_neutron=$USE_NEUTRON
min_transient_cluster_active_time=30
node_domain = nl
[database]
connection=mysql://sahara-citest:sahara-citest@localhost/sahara?charset=utf8
[keystone_authtoken]
auth_uri=http://$OPENSTACK_HOST:5000/v2.0/
identity_uri=http://$OPENSTACK_HOST:35357/
admin_user=ci-user
admin_password=nova
admin_tenant_name=ci" >> $conf_path
echo "----------- sahara.conf -----------"
cat $conf_path
echo "----------- end of sahara.conf -----------"
}
start_sahara() {
conf_path=$1
conf_dir=$(dirname $1)
mkdir logs
if [ "$ZUUL_BRANCH" == "stable/icehouse" ]
then
sahara_bin=sahara-api
else
sahara_bin=sahara-all
fi
sahara-db-manage --config-file $conf_path upgrade head
status=$?
if [[ "$status" != 0 ]]
then
echo "Command 'sahara-db-manage' failed"
exit 1
fi
if [ "$ZUUL_BRANCH" == "master" -a \( "$PLUGIN_TYPE" == "vanilla2" -a "$hadoop_version" == "2-4" -o "$PLUGIN_TYPE" == "hdp2" -o "$PLUGIN_TYPE" == " transient" \) ]; then
screen -dmS sahara-api /bin/bash -c "PYTHONUNBUFFERED=1 sahara-api --config-dir $conf_dir -d --log-file logs/sahara-log-api.txt"
sleep 2
screen -dmS sahara-engine_1 /bin/bash -c "PYTHONUNBUFFERED=1 sahara-engine --config-dir $conf_dir -d --log-file logs/sahara-log-engine-1.txt"
screen -dmS sahara-engine_2 /bin/bash -c "PYTHONUNBUFFERED=1 sahara-engine --config-dir $conf_dir -d --log-file logs/sahara-log-engine-2.txt"
else
screen -dmS $sahara_bin /bin/bash -c "PYTHONUNBUFFERED=1 $sahara_bin --config-dir $conf_dir -d --log-file logs/sahara-log.txt"
fi
api_responding_timeout=30
FAILURE=0
if ! timeout ${api_responding_timeout} sh -c "while ! curl -s http://127.0.0.1:8386/v1.1/ 2>/dev/null | grep -q 'Authentication required' ; do sleep 1; done"; then
echo "Sahara API failed to respond within ${api_responding_timeout} seconds"
FAILURE=1
fi
}
write_tests_conf() {
test_conf_path=$1
echo "[COMMON]
OS_USERNAME = 'ci-user'
OS_PASSWORD = 'nova'
OS_TENANT_NAME = 'ci'
OS_TENANT_ID = '$TENANT_ID'
OS_AUTH_URL = 'http://$OPENSTACK_HOST:5000/v2.0'
SAHARA_HOST = '$ADDR'
FLAVOR_ID = '20'
CLUSTER_CREATION_TIMEOUT = $TIMEOUT
CLUSTER_NAME = '$CLUSTER_NAME'
FLOATING_IP_POOL = 'public'
NEUTRON_ENABLED = $USE_NEUTRON
INTERNAL_NEUTRON_NETWORK = 'private'
JOB_LAUNCH_TIMEOUT = 15
HDFS_INITIALIZATION_TIMEOUT = 10
[VANILLA]
IMAGE_NAME = '$VANILLA_IMAGE'
SKIP_ALL_TESTS_FOR_PLUGIN = $SKIP_ALL_TESTS_FOR_PLUGIN
SKIP_CINDER_TEST = '$SKIP_CINDER_TEST'
SKIP_CLUSTER_CONFIG_TEST = $SKIP_CLUSTER_CONFIG_TEST
SKIP_EDP_TEST = $SKIP_EDP_TEST
SKIP_MAP_REDUCE_TEST = $SKIP_MAP_REDUCE_TEST
SKIP_SWIFT_TEST = $SKIP_SWIFT_TEST
SKIP_SCALING_TEST = $SKIP_SCALING_TEST
SKIP_TRANSIENT_CLUSTER_TEST = $SKIP_TRANSIENT_TEST
ONLY_TRANSIENT_CLUSTER_TEST = $SKIP_ONLY_TRANSIENT_TEST
[VANILLA_TWO]
IMAGE_NAME = '$VANILLA_TWO_IMAGE'
SKIP_ALL_TESTS_FOR_PLUGIN = $SKIP_ALL_TESTS_FOR_PLUGIN
SKIP_CINDER_TEST = '$SKIP_CINDER_TEST'
SKIP_MAP_REDUCE_TEST = $SKIP_MAP_REDUCE_TEST
SKIP_SWIFT_TEST = $SKIP_SWIFT_TEST
SKIP_SCALING_TEST = $SKIP_SCALING_TEST
SKIP_EDP_TEST = $SKIP_EDP_TEST
SKIP_EDP_JOB_TYPES = $SKIP_EDP_JOB_TYPES
" >> $test_conf_path
if [ "$PLUGIN_TYPE" == "transient" ]; then
if [ "$ZUUL_BRANCH" == "master" ]; then
echo "HADOOP_VERSION = '2.6.0'
" >> $test_conf_path
elif [[ "$ZUUL_BRANCH" =~ juno ]]; then
echo "HADOOP_VERSION = '2.4.1'
" >> $test_conf_path
fi
fi
if [ "$PLUGIN_TYPE" == "vanilla2" -a \( "$hadoop_version" == "2-4" -o "$hadoop_version" == "2-6" \) ]; then
if [ "$hadoop_version" == "2-4" ]; then
version="2.4.1"
else
version="2.6.0"
fi
echo "HADOOP_VERSION = '${version}'
HADOOP_EXAMPLES_JAR_PATH = '/opt/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-${version}.jar'
" >> $test_conf_path
fi
echo "[HDP]
IMAGE_NAME = '$HDP_IMAGE'
SKIP_ALL_TESTS_FOR_PLUGIN = $SKIP_ALL_TESTS_FOR_PLUGIN
SKIP_CINDER_TEST = '$SKIP_CINDER_TEST'
SKIP_EDP_TEST = $SKIP_EDP_TEST
SKIP_MAP_REDUCE_TEST = $SKIP_MAP_REDUCE_TEST
SKIP_SWIFT_TEST = $SKIP_SWIFT_TEST
SKIP_SCALING_TEST = $SKIP_SCALING_TEST
[HDP2]
IMAGE_NAME = '$HDP_TWO_IMAGE'
SKIP_ALL_TESTS_FOR_PLUGIN = $SKIP_ALL_TESTS_FOR_PLUGIN
SKIP_SCALING_TEST = $SKIP_SCALING_TEST
SKIP_EDP_TEST = $SKIP_EDP_TEST
SKIP_SWIFT_TEST = $SKIP_SWIFT_TEST
[CDH]
IMAGE_NAME = '$CDH_IMAGE'
SKIP_ALL_TESTS_FOR_PLUGIN = $SKIP_ALL_TESTS_FOR_PLUGIN
SKIP_MAP_REDUCE_TEST = $SKIP_MAP_REDUCE_TEST
SKIP_SWIFT_TEST = $SKIP_SWIFT_TEST
SKIP_SCALING_TEST = $SKIP_SCALING_TEST
SKIP_CINDER_TEST = $SKIP_CINDER_TEST
SKIP_EDP_TEST = $SKIP_EDP_TEST
CM_REPO_LIST_URL = 'http://$OPENSTACK_HOST/cdh-repo/cm.list'
CDH_REPO_LIST_URL = 'http://$OPENSTACK_HOST/cdh-repo/cdh.list'
[SPARK]
IMAGE_NAME = '$SPARK_IMAGE'
SKIP_ALL_TESTS_FOR_PLUGIN = $SKIP_ALL_TESTS_FOR_PLUGIN
SKIP_EDP_TEST = $SKIP_EDP_TEST
SKIP_SCALING_TEST = $SKIP_SCALING_TEST
" >> $test_conf_path
}
run_tests() {
if [ "$FAILURE" = 0 ]; then
echo "Integration tests are started"
export PYTHONUNBUFFERED=1
case $PLUGIN_TYPE in
hdp1)
if [ "$ZUUL_BRANCH" == "stable/icehouse" ]
then
tox -e integration -- hdp --concurrency=1
STATUS=$?
else
tox -e integration -- hdp1 --concurrency=1
STATUS=$?
fi
;;
hdp2)
tox -e integration -- hdp2 --concurrency=1
STATUS=$?
;;
vanilla1)
tox -e integration -- vanilla1 --concurrency=1
STATUS=$?
;;
vanilla2)
tox -e integration -- vanilla2 --concurrency=1
STATUS=$?
;;
transient)
tox -e integration -- transient --concurrency=3
STATUS=$?
;;
cdh)
tox -e integration -- cdh --concurrency=1
STATUS=$?
;;
spark)
tox -e integration -- spark --concurrency=1
STATUS=$?
;;
esac
fi
}
print_python_env() {
sahara_workspace=$1
cd $sahara_workspace
.tox/integration/bin/pip freeze > logs/python-integration-env.txt
pip freeze > logs/python-system-env.txt
}