9b9cc821dd
Zuul v2 uses 'jenkins' as user, but Zuul v3 uses 'zuul'. Using $USER solves it for both cases. Change-Id: Ib83267ef75f91fb8f95af312d644ebe29c6306c8
139 lines
5.3 KiB
Bash
Executable File
139 lines
5.3 KiB
Bash
Executable File
#!/bin/bash -xe
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
# not use this file except in compliance with the License. You may obtain
|
|
# a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
# License for the specific language governing permissions and limitations
|
|
# under the License.
|
|
|
|
# This script is executed inside post_test_hook function in devstack gate.
|
|
|
|
export MANILACLIENT_DIR="$BASE/new/python-manilaclient"
|
|
export MANILACLIENT_CONF="$MANILACLIENT_DIR/etc/manilaclient/manilaclient.conf"
|
|
|
|
# Go to the manilaclient dir
|
|
cd $MANILACLIENT_DIR
|
|
|
|
# Give permissions
|
|
sudo chown -R $USER:stack .
|
|
|
|
# Create manilaclient config file
|
|
touch $MANILACLIENT_CONF
|
|
|
|
# Import functions from devstack
|
|
source $BASE/new/devstack/functions
|
|
|
|
env | grep OS_
|
|
|
|
# Set options to config client.
|
|
source $BASE/new/devstack/openrc demo demo
|
|
env | grep OS_
|
|
export OS_TENANT_NAME=${OS_PROJECT_NAME:-$OS_TENANT_NAME}
|
|
iniset $MANILACLIENT_CONF DEFAULT username $OS_USERNAME
|
|
iniset $MANILACLIENT_CONF DEFAULT tenant_name $OS_TENANT_NAME
|
|
iniset $MANILACLIENT_CONF DEFAULT password $OS_PASSWORD
|
|
iniset $MANILACLIENT_CONF DEFAULT auth_url $OS_AUTH_URL
|
|
iniset $MANILACLIENT_CONF DEFAULT project_domain_name $OS_PROJECT_DOMAIN_NAME
|
|
iniset $MANILACLIENT_CONF DEFAULT user_domain_name $OS_USER_DOMAIN_NAME
|
|
iniset $MANILACLIENT_CONF DEFAULT project_domain_id $OS_PROJECT_DOMAIN_ID
|
|
iniset $MANILACLIENT_CONF DEFAULT user_domain_id $OS_USER_DOMAIN_ID
|
|
|
|
source $BASE/new/devstack/openrc admin demo
|
|
env | grep OS_
|
|
export OS_TENANT_NAME=${OS_PROJECT_NAME:-$OS_TENANT_NAME}
|
|
iniset $MANILACLIENT_CONF DEFAULT admin_username $OS_USERNAME
|
|
iniset $MANILACLIENT_CONF DEFAULT admin_tenant_name $OS_TENANT_NAME
|
|
iniset $MANILACLIENT_CONF DEFAULT admin_password $OS_PASSWORD
|
|
iniset $MANILACLIENT_CONF DEFAULT admin_auth_url $OS_AUTH_URL
|
|
iniset $MANILACLIENT_CONF DEFAULT admin_project_domain_name $OS_PROJECT_DOMAIN_NAME
|
|
iniset $MANILACLIENT_CONF DEFAULT admin_user_domain_name $OS_USER_DOMAIN_NAME
|
|
iniset $MANILACLIENT_CONF DEFAULT admin_project_domain_id $OS_PROJECT_DOMAIN_ID
|
|
iniset $MANILACLIENT_CONF DEFAULT admin_user_domain_id $OS_USER_DOMAIN_ID
|
|
|
|
# Suppress errors in cleanup of resources
|
|
SUPPRESS_ERRORS=${SUPPRESS_ERRORS_IN_CLEANUP:-True}
|
|
iniset $MANILACLIENT_CONF DEFAULT suppress_errors_in_cleanup $SUPPRESS_ERRORS
|
|
|
|
# Set access type usage specific to dummy driver that we are using in CI
|
|
iniset $MANILACLIENT_CONF DEFAULT access_types_mapping "nfs:ip,cifs:user"
|
|
|
|
# Dummy driver is capable of running share migration tests
|
|
iniset $MANILACLIENT_CONF DEFAULT run_migration_tests "True"
|
|
# Running mountable snapshot tests in dummy driver
|
|
iniset $MANILACLIENT_CONF DEFAULT run_mount_snapshot_tests "True"
|
|
|
|
# Create share network and use it for functional tests if required
|
|
USE_SHARE_NETWORK=$(trueorfalse True USE_SHARE_NETWORK)
|
|
if [[ ${USE_SHARE_NETWORK} = True ]]; then
|
|
SHARE_NETWORK_NAME=${SHARE_NETWORK_NAME:-ci}
|
|
|
|
DEFAULT_NEUTRON_NET=$(neutron net-show private -c id -f value)
|
|
DEFAULT_NEUTRON_SUBNET=$(neutron subnet-show private-subnet -c id -f value)
|
|
NEUTRON_NET=${NEUTRON_NET:-$DEFAULT_NEUTRON_NET}
|
|
NEUTRON_SUBNET=${NEUTRON_SUBNET:-$DEFAULT_NEUTRON_SUBNET}
|
|
|
|
manila share-network-create \
|
|
--name $SHARE_NETWORK_NAME \
|
|
--neutron-net $NEUTRON_NET \
|
|
--neutron-subnet $NEUTRON_SUBNET
|
|
|
|
iniset $MANILACLIENT_CONF DEFAULT share_network $SHARE_NETWORK_NAME
|
|
iniset $MANILACLIENT_CONF DEFAULT admin_share_network $SHARE_NETWORK_NAME
|
|
fi
|
|
|
|
# Set share type if required
|
|
if [[ "$SHARE_TYPE" ]]; then
|
|
iniset $MANILACLIENT_CONF DEFAULT share_type $SHARE_TYPE
|
|
fi
|
|
|
|
# let us control if we die or not
|
|
set +o errexit
|
|
|
|
CONCURRENCY=${CONCURRENCY:-8}
|
|
|
|
# Run functional tests
|
|
sudo -H -u $USER tox -e functional -v -- --concurrency=$CONCURRENCY
|
|
EXIT_CODE=$?
|
|
|
|
if [ -d ".testrepository" ] ; then
|
|
if [ -f ".testrepository/0.2" ] ; then
|
|
cp .testrepository/0.2 ./subunit_log.txt
|
|
elif [ -f ".testrepository/0" ] ; then
|
|
.tox/functional/bin/subunit-1to2 < .testrepository/0 > ./subunit_log.txt
|
|
fi
|
|
/usr/os-testr-env/bin/subunit2html ./subunit_log.txt testr_results.html
|
|
SUBUNIT_SIZE=$(du -k ./subunit_log.txt | awk '{print $1}')
|
|
gzip -9 ./subunit_log.txt
|
|
gzip -9 ./testr_results.html
|
|
sudo mv testr_results.html.gz $WORKSPACE/logs
|
|
sudo mv subunit_log.txt.gz $WORKSPACE/logs
|
|
sudo cp -R .tox $WORKSPACE
|
|
sudo cp -R .testrepository $WORKSPACE
|
|
|
|
if [[ "$SUBUNIT_SIZE" -gt 50000 ]]; then
|
|
echo
|
|
echo "sub_unit.log was greater than 50 MB of uncompressed data!"
|
|
echo "Something is causing tests for this project to log significant amounts of data."
|
|
echo "This may be writers to python logging, stdout, or stderr."
|
|
echo "Failing this test as a result."
|
|
echo
|
|
exit 1
|
|
fi
|
|
|
|
rancount=$(.tox/functional/bin/testr last | sed -ne 's/Ran \([0-9]\+\).*tests in.*/\1/p')
|
|
if [ -z "$rancount" ] || [ "$rancount" -eq "0" ] ; then
|
|
echo
|
|
echo "Zero tests were run. At least one test should have been run."
|
|
echo "Failing this test as a result."
|
|
echo
|
|
exit 1
|
|
fi
|
|
fi
|
|
return $EXIT_CODE
|