5107556a79
Change the tests to run on the tox invocation line, too, not just in the message logged. Change-Id: I86e02ea5a5eace92397bc18e08c494c6fd009880
107 lines
3.2 KiB
Bash
Executable File
107 lines
3.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
# **cinder_cert.sh**
|
|
|
|
# This script is a simple wrapper around the tempest volume api tests
|
|
# It requires that you have a working and functional devstack install
|
|
# and that you've enabled your device driver by making the necessary
|
|
# modifications to /etc/cinder/cinder.conf
|
|
|
|
# This script will refresh your openstack repo's and restart the cinder
|
|
# services to pick up your driver changes.
|
|
# please NOTE; this script assumes your devstack install is functional
|
|
# and includes tempest. A good first step is to make sure you can
|
|
# create volumes on your device before you even try and run this script.
|
|
|
|
# It also assumes default install location (/opt/stack/xxx)
|
|
# to aid in debug, you should also verify that you've added
|
|
# an output directory for screen logs:
|
|
#
|
|
# SCREEN_LOGDIR=/opt/stack/screen-logs
|
|
|
|
set -o pipefail
|
|
|
|
CERT_DIR=$(cd $(dirname "$0") && pwd)
|
|
TOP_DIR=$(cd $CERT_DIR/..; pwd)
|
|
|
|
source $TOP_DIR/functions
|
|
source $TOP_DIR/stackrc
|
|
source $TOP_DIR/openrc
|
|
source $TOP_DIR/lib/infra
|
|
source $TOP_DIR/lib/tempest
|
|
source $TOP_DIR/lib/cinder
|
|
|
|
TEMPFILE=`mktemp`
|
|
RECLONE=True
|
|
|
|
function log_message {
|
|
MESSAGE=$1
|
|
STEP_HEADER=$2
|
|
if [[ "$STEP_HEADER" = "True" ]]; then
|
|
echo -e "\n========================================================" | tee -a $TEMPFILE
|
|
fi
|
|
echo -e `date +%m/%d/%y/%T:`"${MESSAGE}" | tee -a $TEMPFILE
|
|
if [[ "$STEP_HEADER" = "True" ]]; then
|
|
echo -e "========================================================" | tee -a $TEMPFILE
|
|
fi
|
|
}
|
|
|
|
if [[ "$OFFLINE" = "True" ]]; then
|
|
echo "ERROR: Driver cert requires fresh clone/pull from ${CINDER_BRANCH}"
|
|
echo " Please set OFFLINE=False and retry."
|
|
exit 1
|
|
fi
|
|
|
|
log_message "RUNNING CINDER DRIVER CERTIFICATION CHECK", True
|
|
log_message "Output is being logged to: $TEMPFILE"
|
|
|
|
cd $CINDER_DIR
|
|
log_message "Cloning to ${CINDER_REPO}...", True
|
|
install_cinder
|
|
|
|
log_message "Pull a fresh Clone of cinder repo...", True
|
|
git status | tee -a $TEMPFILE
|
|
git log --pretty=oneline -n 1 | tee -a $TEMPFILE
|
|
|
|
log_message "Gathering copy of cinder.conf file (passwords will be scrubbed)...", True
|
|
cat /etc/cinder/cinder.conf | egrep -v "(^#.*|^$)" | tee -a $TEMPFILE
|
|
sed -i "s/\(.*password.*=\).*$/\1 xxx/i" $TEMPFILE
|
|
log_message "End of cinder.conf.", True
|
|
|
|
cd $TOP_DIR
|
|
# Verify tempest is installed/enabled
|
|
if ! is_service_enabled tempest; then
|
|
log_message "ERROR!!! Cert requires tempest in enabled_services!", True
|
|
log_message" Please add tempest to enabled_services and retry."
|
|
exit 1
|
|
fi
|
|
|
|
cd $TEMPEST_DIR
|
|
install_tempest
|
|
|
|
log_message "Verify tempest is current....", True
|
|
git status | tee -a $TEMPFILE
|
|
log_message "Check status and get latest commit..."
|
|
git log --pretty=oneline -n 1 | tee -a $TEMPFILE
|
|
|
|
|
|
#stop and restart cinder services
|
|
log_message "Restart Cinder services...", True
|
|
stop_cinder
|
|
sleep 1
|
|
start_cinder
|
|
sleep 5
|
|
|
|
# run tempest api/volume/test_*
|
|
log_message "Run the actual tempest volume tests (./tools/pretty_tox.sh volume)...", True
|
|
./tools/pretty_tox.sh volume 2>&1 | tee -a $TEMPFILE
|
|
if [[ $? = 0 ]]; then
|
|
log_message "CONGRATULATIONS!!! Device driver PASSED!", True
|
|
log_message "Submit output: ($TEMPFILE)"
|
|
exit 0
|
|
else
|
|
log_message "SORRY!!! Device driver FAILED!", True
|
|
log_message "Check output in $TEMPFILE"
|
|
exit 1
|
|
fi
|