Add option to run grenade.
Change-Id: I73fd79518bcff5a0b0fd002610ab5d51e8d6dd6f
This commit is contained in:
parent
11d6180d66
commit
a7db4c7b7f
|
@ -11,13 +11,19 @@ export SKIP_DEVSTACK_GATE_PROJECT=1
|
|||
export DEVSTACK_GATE_TEMPEST=1
|
||||
export ZUUL_BRANCH=master
|
||||
export ZUUL_PROJECT=testing
|
||||
export ZUUL_REF=refs/zuul/Ztest
|
||||
export JOB_NAME=test
|
||||
export BUILD_NUMBER=42
|
||||
export GERRIT_CHANGE_NUMBER=1234
|
||||
export GERRIT_PATCHSET_NUMBER=1
|
||||
export DEVSTACK_GATE_TEMPEST=${DEVSTACK_GATE_TEMPEST:-0}
|
||||
export DEVSTACK_GATE_CINDER=${DEVSTACK_GATE_CINDER:-0}
|
||||
export DEVSTACK_GATE_QUANTUM=${DEVSTACK_GATE_QUANTUM:-0}
|
||||
export DEVSTACK_GATE_GRENADE=${DEVSTACK_GATE_GRENADE:-""}
|
||||
EOF
|
||||
|
||||
rsync -az --delete $WORKSPACE/ jenkins@$NODE_IP_ADDR:workspace/
|
||||
rsync -az $WORKSPACE/ jenkins@$NODE_IP_ADDR:workspace-cache/
|
||||
rsync -az $WORKSPACE/ jenkins@$NODE_IP_ADDR:workspace/
|
||||
RETVAL=$?
|
||||
if [ $RETVAL != 0 ]; then
|
||||
exit $RETVAL
|
||||
|
|
|
@ -40,6 +40,9 @@ export DEVSTACK_CINDER_SECURE_DELETE=${DEVSTACK_CINDER_SECURE_DELETE:-0}
|
|||
# Only applicable to master branch
|
||||
export DEVSTACK_GATE_QUANTUM=${DEVSTACK_GATE_QUANTUM:-0}
|
||||
|
||||
# Set to the name of the "old" branch to run grenade (eg "stable/folsom")
|
||||
export DEVSTACK_GATE_GRENADE=${DEVSTACK_GATE_GRENADE:-""}
|
||||
|
||||
# Set the virtualization driver to: libvirt, openvz
|
||||
export DEVSTACK_GATE_VIRT_DRIVER=${DEVSTACK_GATE_VIRT_DRIVER:-libvirt}
|
||||
|
||||
|
@ -56,12 +59,13 @@ if [ -z "$SKIP_DEVSTACK_GATE_PROJECT" ]; then
|
|||
PROJECTS="openstack-ci/devstack-gate $PROJECTS"
|
||||
fi
|
||||
|
||||
export DEST=/opt/stack
|
||||
export BASE=/opt/stack
|
||||
|
||||
# Most of the work of this script is done in functions so that we may
|
||||
# easily redirect their stdout / stderr to log files.
|
||||
|
||||
function setup_workspace {
|
||||
DEST=$1
|
||||
# Enabled detailed logging, since output of this function is redirected
|
||||
set -o xtrace
|
||||
|
||||
|
@ -75,6 +79,21 @@ function setup_workspace {
|
|||
sudo bash -c 'echo "127.0.1.1 $HOSTNAME" >>/etc/hosts'
|
||||
fi
|
||||
|
||||
# Hpcloud provides no swap, but does have a virtual disk mounted
|
||||
# at /mnt we can use. It also doesn't have enough space on / for
|
||||
# two devstack installs, so we partition the vdisk:
|
||||
if [ `grep SwapTotal /proc/meminfo | awk '{ print $2; }'` -eq 0 ] && \
|
||||
[ -b /dev/vdb ]; then
|
||||
sudo umount /dev/vdb
|
||||
sudo parted /dev/vdb --script -- mklabel msdos
|
||||
sudo parted /dev/vdb --script -- mkpart primary linux-swap 0 8192
|
||||
sudo parted /dev/vdb --script -- mkpart primary ext2 8192 -1
|
||||
sudo mkswap /dev/vdb1
|
||||
sudo mkfs.ext4 /dev/vdb2
|
||||
sudo swapon /dev/vdb1
|
||||
sudo mount /dev/vdb2 /opt
|
||||
fi
|
||||
|
||||
sudo mkdir -p $DEST
|
||||
sudo chown -R jenkins:jenkins $DEST
|
||||
cd $DEST
|
||||
|
@ -82,9 +101,10 @@ function setup_workspace {
|
|||
# The vm template update job should cache the git repos
|
||||
# Move them to where we expect:
|
||||
if ls ~/workspace-cache/*; then
|
||||
mv ~/workspace-cache/* $DEST
|
||||
rsync -a ~/workspace-cache/ $DEST/
|
||||
fi
|
||||
|
||||
echo "Using branch: $ZUUL_BRANCH"
|
||||
for PROJECT in $PROJECTS
|
||||
do
|
||||
echo "Setting up $PROJECT"
|
||||
|
@ -142,9 +162,11 @@ function setup_workspace {
|
|||
cd $DEST
|
||||
done
|
||||
|
||||
# Set GATE_SCRIPT_DIR to point to devstack-gate in the workspace so that
|
||||
# we are testing the proposed change from this point forward.
|
||||
GATE_SCRIPT_DIR=$DEST/devstack-gate
|
||||
# The vm template update job should cache some images in ~/files.
|
||||
# Move them to where devstack expects:
|
||||
if [ -e ~/cache/files/* ]; then
|
||||
rsync -a ~/cache/files/ $DEST/devstack/files/
|
||||
fi
|
||||
|
||||
# Disable detailed logging as we return to the main script
|
||||
set +o xtrace
|
||||
|
@ -157,20 +179,6 @@ function setup_host {
|
|||
# Make sure headers for the currently running kernel are installed:
|
||||
sudo apt-get install -y --force-yes linux-headers-`uname -r`
|
||||
|
||||
# Hpcloud provides no swap, but does have a partition mounted at /mnt
|
||||
# we can use:
|
||||
if [ `cat /proc/meminfo | grep SwapTotal | awk '{ print $2; }'` -eq 0 ] && [ -b /dev/vdb ]; then
|
||||
sudo umount /dev/vdb
|
||||
sudo mkswap /dev/vdb
|
||||
sudo swapon /dev/vdb
|
||||
fi
|
||||
|
||||
# The vm template update job should cache some images in ~/files.
|
||||
# Move them to where devstack expects:
|
||||
if ls ~/cache/files/*; then
|
||||
mv ~/cache/files/* $DEST/devstack/files
|
||||
fi
|
||||
|
||||
# Move the PIP cache into position:
|
||||
sudo mkdir -p /var/cache/pip
|
||||
sudo mv ~/cache/pip/* /var/cache/pip
|
||||
|
@ -191,7 +199,7 @@ function setup_host {
|
|||
|
||||
# Create a stack user for devstack to run as, so that we can
|
||||
# revoke sudo permissions from that user when appropriate.
|
||||
sudo useradd -U -s /bin/bash -d $DEST -m stack
|
||||
sudo useradd -U -s /bin/bash -d $BASE/new -m stack
|
||||
TEMPFILE=`mktemp`
|
||||
echo "stack ALL=(root) NOPASSWD:ALL" >$TEMPFILE
|
||||
chmod 0440 $TEMPFILE
|
||||
|
@ -216,11 +224,23 @@ function cleanup_host {
|
|||
|
||||
sudo cp /var/log/syslog $WORKSPACE/logs/syslog.txt
|
||||
sudo cp /var/log/kern.log $WORKSPACE/logs/kern_log.txt
|
||||
sudo cp $DEST/screen-logs/* $WORKSPACE/logs/
|
||||
sudo cp $DEST/devstacklog.txt $WORKSPACE/logs/
|
||||
|
||||
# Make the devstack localrc available with the logs
|
||||
sudo cp $DEST/devstack/localrc $WORKSPACE/logs/localrc.txt
|
||||
if [ -d $BASE/old ]; then
|
||||
mkdir -p $WORKSPACE/logs/old/
|
||||
mkdir -p $WORKSPACE/logs/new/
|
||||
mkdir -p $WORKSPACE/logs/grenade/
|
||||
sudo cp $BASE/old/screen-logs/* $WORKSPACE/logs/old/
|
||||
sudo cp $BASE/old/devstacklog.txt $WORKSPACE/logs/old/
|
||||
sudo cp $BASE/old/devstack/localrc $WORKSPACE/logs/old/localrc.txt
|
||||
sudo cp $BASE/logs/* $WORKSPACE/logs/
|
||||
sudo cp $BASE/new/grenade/localrc $WORKSPACE/logs/grenade/localrc.txt
|
||||
NEWLOGTARGET=$WORKSPACE/logs/new
|
||||
else
|
||||
NEWLOGTARGET=$WORKSPACE/logs
|
||||
fi
|
||||
sudo cp $BASE/new/screen-logs/* $NEWLOGTARGET/
|
||||
sudo cp $BASE/new/devstacklog.txt $NEWLOGTARGET/
|
||||
sudo cp $BASE/new/devstack/localrc $NEWLOGTARGET/localrc.txt
|
||||
|
||||
# Make sure jenkins can read all the logs
|
||||
sudo chown -R jenkins:jenkins $WORKSPACE/logs/
|
||||
|
@ -232,7 +252,7 @@ function cleanup_host {
|
|||
rm $WORKSPACE/logs/*.*.txt
|
||||
|
||||
# Save the tempest nosetests results
|
||||
sudo cp $DEST/tempest/nosetests*.xml $WORKSPACE/
|
||||
sudo cp $BASE/new/tempest/nosetests*.xml $WORKSPACE/
|
||||
sudo chown jenkins:jenkins $WORKSPACE/nosetests*.xml
|
||||
sudo chmod a+r $WORKSPACE/nosetests*.xml
|
||||
|
||||
|
@ -241,10 +261,15 @@ function cleanup_host {
|
|||
}
|
||||
|
||||
# Make a directory to store logs
|
||||
rm -rf logs
|
||||
mkdir -p logs
|
||||
rm -f logs/*
|
||||
|
||||
setup_workspace &> $WORKSPACE/logs/devstack-gate-setup-workspace.txt
|
||||
setup_workspace $BASE/new &> \
|
||||
$WORKSPACE/logs/devstack-gate-setup-workspace-new.txt
|
||||
|
||||
# Set GATE_SCRIPT_DIR to point to devstack-gate in the workspace so that
|
||||
# we are testing the proposed change from this point forward.
|
||||
GATE_SCRIPT_DIR=$BASE/new/devstack-gate
|
||||
|
||||
# Also, if we're testing devstack-gate, re-exec this script once so
|
||||
# that we can test the new version of it.
|
||||
|
@ -254,6 +279,14 @@ if [[ $ZUUL_PROJECT == "openstack-ci/devstack-gate" ]] && [[ $RE_EXEC != "true"
|
|||
exec $GATE_SCRIPT_DIR/devstack-vm-gate-wrap.sh
|
||||
fi
|
||||
|
||||
if [ "$DEVSTACK_GATE_GRENADE" ]; then
|
||||
ORIGBRANCH=$ZUUL_BRANCH
|
||||
ZUUL_BRANCH=$DEVSTACK_GATE_GRENADE
|
||||
setup_workspace $BASE/old &> \
|
||||
$WORKSPACE/logs/devstack-gate-setup-workspace-old.txt
|
||||
ZUUL_BRANCH=$ORIGBRANCH
|
||||
fi
|
||||
|
||||
echo "Triggered by: https://review.openstack.org/$ZUUL_CHANGE patchset $ZUUL_PATCHSET"
|
||||
echo "Pipeline: $ZUUL_PIPELINE"
|
||||
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
|
||||
set -o errexit
|
||||
|
||||
cd $DEST/devstack
|
||||
cd $BASE/new/devstack
|
||||
|
||||
rm -f localrc
|
||||
|
||||
|
@ -62,6 +62,7 @@ EOF
|
|||
fi
|
||||
|
||||
cat <<EOF >>localrc
|
||||
DEST=$BASE/new
|
||||
ACTIVE_TIMEOUT=60
|
||||
BOOT_TIMEOUT=90
|
||||
ASSOCIATE_TIMEOUT=60
|
||||
|
@ -78,8 +79,8 @@ ENABLED_SERVICES=$ENABLED_SERVICES
|
|||
SKIP_EXERCISES=$SKIP_EXERCISES
|
||||
SERVICE_HOST=127.0.0.1
|
||||
SYSLOG=True
|
||||
SCREEN_LOGDIR=$DEST/screen-logs
|
||||
LOGFILE=$DEST/devstacklog.txt
|
||||
SCREEN_LOGDIR=$BASE/new/screen-logs
|
||||
LOGFILE=$BASE/new/devstacklog.txt
|
||||
VERBOSE=True
|
||||
FIXED_RANGE=10.1.0.0/24
|
||||
FIXED_NETWORK_SIZE=256
|
||||
|
@ -124,21 +125,42 @@ if [ "$DEVSTACK_GATE_TEMPEST" -eq "1" ]; then
|
|||
fi
|
||||
|
||||
# Make the workspace owned by the stack user
|
||||
sudo chown -R stack:stack $DEST
|
||||
sudo chown -R stack:stack $BASE/new
|
||||
if [ -d $BASE/old ]; then
|
||||
sed -e 's|$BASE/new|$BASE/old|' < $BASE/new/devstack/localrc \
|
||||
> $BASE/old/devstack/localrc
|
||||
sed -e 's|$BASE/new|$BASE/old|' < $BASE/new/devstack/exerciserc \
|
||||
> $BASE/old/devstack/exerciserc
|
||||
|
||||
echo "Running devstack"
|
||||
sudo -H -u stack ./stack.sh
|
||||
sudo chown -R stack:stack $BASE/old
|
||||
fi
|
||||
|
||||
echo "Removing sudo privileges for devstack user"
|
||||
sudo rm /etc/sudoers.d/50_stack_sh
|
||||
if [ "$DEVSTACK_GATE_GRENADE" != "" ]; then
|
||||
sudo echo "GRENADE_PHASE=work" >>$BASE/old/devstack/localrc
|
||||
sudo echo "GRENADE_PHASE=trunk" >>$BASE/new/devstack/localrc
|
||||
cat <<EOF >$BASE/new/grenade/localrc
|
||||
WORK_DEVSTACK_DIR=$BASE/old/devstack
|
||||
TRUNK_DEVSTACK_DIR=$BASE/new/devstack
|
||||
EOF
|
||||
|
||||
echo "Running devstack exercises"
|
||||
sudo -H -u stack ./exercise.sh
|
||||
cd $BASE
|
||||
sudo -H -u stack ./grenade.sh
|
||||
else
|
||||
echo "Running devstack"
|
||||
sudo -H -u stack ./stack.sh
|
||||
|
||||
echo "Removing sudo privileges for devstack user"
|
||||
sudo rm /etc/sudoers.d/50_stack_sh
|
||||
|
||||
echo "Running devstack exercises"
|
||||
sudo -H -u stack ./exercise.sh
|
||||
fi
|
||||
|
||||
if [ "$DEVSTACK_GATE_TEMPEST" -eq "1" ]; then
|
||||
echo "Configuring tempest"
|
||||
cd $BASE/new/devstack
|
||||
sudo -H -u stack ./tools/configure_tempest.sh
|
||||
cd $DEST/tempest
|
||||
cd $BASE/new/tempest
|
||||
echo "Running tempest smoke tests"
|
||||
sudo -H -u stack NOSE_XUNIT_FILE=nosetests-smoke.xml nosetests --with-xunit -sv --nologcapture --attr=type=smoke tempest
|
||||
RETVAL=$?
|
||||
|
|
Loading…
Reference in New Issue