81dcaf9df2
Still hacking on the patch to make it pass trusty systems. * Create 2 flavors, used by Tempest Compute tests * Create 'public' network, used by Tempest Compute tests for floating-ip * Configure Tempest to be aware about the 2 created flavors refs * Configure Tempest to be aware about the public network * Add some Puppet Exec code that prepare virtual bridging to reach floating IPs * Add scenario parameters * Run Smoke suite that includes 2 scenarios & some important API tests. * Pin python-netaddr on ubuntu so we can test floating-IP. Change-Id: Iebb83e110fbb0c072f06b3ca2ad84987e0efe3a6
109 lines
3.7 KiB
Bash
Executable File
109 lines
3.7 KiB
Bash
Executable File
#!/bin/bash -ex
|
|
# Copyright 2015 Red Hat, Inc.
|
|
#
|
|
# 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.
|
|
|
|
if [ $(id -u) != 0 ]; then
|
|
# preserve environment so we can have ZUUL_* params
|
|
SUDO='sudo -E'
|
|
fi
|
|
|
|
$SUDO ./install_modules.sh
|
|
# TODO(pabelanger): Move this into tools/install_tempest.sh and add logic so we
|
|
# can clone tempest outside of the gate. Also, tempest should be sandboxed into
|
|
# the local directory but works needs to be added into puppet to properly find
|
|
# the path.
|
|
if [ -e /usr/zuul-env/bin/zuul-cloner ] ; then
|
|
/usr/zuul-env/bin/zuul-cloner --workspace /tmp --cache-dir /opt/git \
|
|
git://git.openstack.org openstack/tempest
|
|
fi
|
|
|
|
PUPPET_ARGS="--detailed-exitcodes --verbose --color=false --debug"
|
|
|
|
function run_puppet() {
|
|
local manifest=$1
|
|
|
|
$SUDO puppet apply $PUPPET_ARGS fixtures/${manifest}.pp
|
|
local res=$?
|
|
|
|
return $res
|
|
}
|
|
|
|
function is_fedora {
|
|
# note we consider CentOS 7 as fedora for now
|
|
lsb_release -i 2>/dev/null | grep -iq "fedora" || \
|
|
lsb_release -i 2>/dev/null | grep -iq "CentOS"
|
|
}
|
|
|
|
function uses_debs {
|
|
# check if apt-get is installed, valid for debian based
|
|
type "apt-get" 2>/dev/null
|
|
}
|
|
|
|
if uses_debs; then
|
|
sudo apt-get install -y dstat
|
|
elif is_fedora; then
|
|
sudo yum install -y dstat
|
|
fi
|
|
|
|
# use dstat to monitor system activity during integration testing
|
|
if type "dstat" 2>/dev/null; then
|
|
$SUDO dstat -tcmndrylpg --top-cpu-adv --top-io-adv --nocolor | sudo tee --append /var/log/dstat.log > /dev/null &
|
|
fi
|
|
|
|
$SUDO ./install_modules.sh
|
|
|
|
# Run puppet and assert something changes.
|
|
set +e
|
|
run_puppet scenario001
|
|
RESULT=$?
|
|
set -e
|
|
if [ $RESULT -ne 2 ]; then
|
|
exit 1
|
|
fi
|
|
|
|
# Run puppet a second time and assert nothing changes.
|
|
set +e
|
|
run_puppet scenario001
|
|
RESULT=$?
|
|
set -e
|
|
if [ $RESULT -ne 0 ]; then
|
|
exit 1
|
|
fi
|
|
|
|
# TODO(emilien) later, we should use local image if present. That would be a next iteration.
|
|
wget http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img -P /tmp/openstack/tempest
|
|
|
|
# TODO(emilien) drop this code after b3 goes in 'liberty/proposed'
|
|
if uses_debs; then
|
|
# tl;dr; floating-ip is broken in ubuntu/liberty/proposed: http://goo.gl/Yoaqzo
|
|
# our current CI is getting packages from ubuntu liberty/proposed
|
|
# liberty/proposed provides python-netaddr > 0.7.15 but a too old version
|
|
# of neutron that does not include https://review.openstack.org/#/c/218723/
|
|
# which is required when you run python-netaddr > 0.7.15.
|
|
# ubuntu team is about to provide liberty-3 soon in liberty/proposed but in
|
|
# the meantime, we need to pin netaddr==0.7.15 so we can create floating-IP
|
|
sudo pip install -Iv netaddr==0.7.15
|
|
sudo service neutron-server restart
|
|
sudo service neutron-plugin-openvswitch-agent restart
|
|
sudo service neutron-dhcp-agent restart
|
|
sudo service neutron-metadata-agent restart
|
|
sudo service neutron-l3-agent restart
|
|
fi
|
|
|
|
# run a scenario that validates Keystone, Nova, Glance and Neutron
|
|
# TODO(emilien) the checkout thing is temporary, while test_list_projects_returns_only_authorized_projects is
|
|
# failing for us we checkout the most recent commit without this test.
|
|
# https://bugs.launchpad.net/tempest/+bug/1492419
|
|
cd /tmp/openstack/tempest; git checkout b6369eaa58f2c9ce334863cb3ba54c5656cf64c4; tox -eall -- smoke
|