Added SNI support for os_horizon role via OS packages
Some Linux distributions, such as CentOS 7 and Xenial, have trouble validating SSL certificates when using get_url with servers that use Server Name Indication (SNI). This patch adds those packages to the list of required packages and uses bindep to install them in developer test environments the same way that the gate tests install them. Change-Id: Ic05b42403920d54a604bcb3f8174db1f4b2b75f6
This commit is contained in:
parent
d315af7029
commit
0afea1fea1
33
bindep.txt
33
bindep.txt
@ -10,12 +10,31 @@
|
|||||||
# will fall back to installing its default packages which
|
# will fall back to installing its default packages which
|
||||||
# will potentially be detrimental to the tests executed.
|
# will potentially be detrimental to the tests executed.
|
||||||
|
|
||||||
# OpenStack-CI's Jenkins needs curl
|
# Base requirements for Ubuntu
|
||||||
# TODO(odyssey4me) remove this once https://review.openstack.org/288634 has merged
|
build-essential [platform:dpkg]
|
||||||
# and the disk images are rebuilt and redeployed.
|
git-core [platform:dpkg]
|
||||||
curl
|
libssl-dev [platform:dpkg]
|
||||||
apt-transport-https
|
libffi-dev [platform:dpkg]
|
||||||
|
python2.7 [platform:dpkg]
|
||||||
|
python-dev [platform:dpkg]
|
||||||
|
|
||||||
|
# Base requirements for CentOS
|
||||||
|
gcc [platform:rpm]
|
||||||
|
gcc-c++ [platform:rpm]
|
||||||
|
git [platform:rpm]
|
||||||
|
python-devel [platform:rpm]
|
||||||
|
|
||||||
# Requirements for Paramiko 2.0
|
# Requirements for Paramiko 2.0
|
||||||
libssl-dev
|
libffi-devel [platform:rpm]
|
||||||
libffi-dev
|
openssl-devel [platform:rpm]
|
||||||
|
|
||||||
|
# For SELinux
|
||||||
|
libselinux-python [platform:rpm]
|
||||||
|
|
||||||
|
# For SSL SNI support
|
||||||
|
python-pyasn1 [platform:dpkg]
|
||||||
|
python-openssl [platform:dpkg]
|
||||||
|
python-ndg-httpsclient [platform:ubuntu !platform:ubuntu-trusty]
|
||||||
|
python2-pyasn1 [platform:rpm]
|
||||||
|
pyOpenSSL [platform:rpm]
|
||||||
|
python-ndg_httpsclient [platform:rpm]
|
||||||
|
32
run_tests.sh
32
run_tests.sh
@ -17,25 +17,37 @@ set -euov
|
|||||||
|
|
||||||
FUNCTIONAL_TEST=${FUNCTIONAL_TEST:-true}
|
FUNCTIONAL_TEST=${FUNCTIONAL_TEST:-true}
|
||||||
|
|
||||||
# prep the host
|
# Install pip
|
||||||
if [ "$(which apt-get)" ]; then
|
|
||||||
apt-get install -y build-essential python2.7 python-dev git-core libssl-dev libffi-dev
|
|
||||||
fi
|
|
||||||
|
|
||||||
# get pip, if necessary
|
|
||||||
if [ ! "$(which pip)" ]; then
|
if [ ! "$(which pip)" ]; then
|
||||||
curl --silent --show-error --retry 5 \
|
curl --silent --show-error --retry 5 \
|
||||||
https://bootstrap.pypa.io/get-pip.py | sudo python2.7
|
https://bootstrap.pypa.io/get-pip.py | sudo python2.7
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# install tox
|
# Install bindep and tox
|
||||||
pip install tox
|
pip install bindep tox
|
||||||
|
|
||||||
|
# CentOS 7 requires two additional packages:
|
||||||
|
# redhat-lsb-core - for bindep profile support
|
||||||
|
# epel-release - required to install python-ndg_httpsclient/python2-pyasn1
|
||||||
|
if [ "$(which yum)" ]; then
|
||||||
|
yum -y install redhat-lsb-core epel-release
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Install OS packages using bindep
|
||||||
|
if apt-get -v >/dev/null 2>&1 ; then
|
||||||
|
apt-get update
|
||||||
|
DEBIAN_FRONTEND=noninteractive \
|
||||||
|
apt-get -q --option "Dpkg::Options::=--force-confold" \
|
||||||
|
--assume-yes install `bindep -b -f bindep.txt test`
|
||||||
|
else
|
||||||
|
yum install -y `bindep -b -f bindep.txt test`
|
||||||
|
fi
|
||||||
|
|
||||||
# run through each tox env and execute the test
|
# run through each tox env and execute the test
|
||||||
for tox_env in $(awk -F= '/envlist/ {print $2}' tox.ini | sed 's/,/ /g'); do
|
for tox_env in $(awk -F= '/envlist/ {print $2}' tox.ini | sed 's/,/ /g'); do
|
||||||
if [ "${tox_env}" != "functional" ]; then
|
if [ "${tox_env}" != "ansible-functional" ]; then
|
||||||
tox -e ${tox_env}
|
tox -e ${tox_env}
|
||||||
elif [ "${tox_env}" == "functional" ]; then
|
elif [ "${tox_env}" == "ansible-functional" ]; then
|
||||||
if ${FUNCTIONAL_TEST}; then
|
if ${FUNCTIONAL_TEST}; then
|
||||||
tox -e ${tox_env}
|
tox -e ${tox_env}
|
||||||
fi
|
fi
|
||||||
|
Loading…
Reference in New Issue
Block a user