python-glanceclient/tools/fix_ca_bundle.sh
Brian Rosmaita 32b8307819 Split glanceclient functional tests
Prepare for the Image API v1 to be removed from glance during Rocky
by splitting the functional tests that hit v1 from the tests that hit
v2.  Introduce a new job that runs the functional-v1 tests against a
devstack running glance stable/queens, and configure this job for both
check and gate for the glanceclient.  The v2 functional tests
continue to be run for both check and gate against a devstack running
glance master.

Change-Id: Ifa98ada26a84e4cca3ea8c98173f61a6174cca27
2018-03-28 22:32:44 -04:00

40 lines
1.5 KiB
Bash
Executable File

# When the functional tests are run in a devstack environment, we
# need to make sure that the python-requests module installed by
# tox in the test environment can find the distro-specific CA store
# where the devstack certs have been installed.
#
# assumptions:
# - devstack is running
# - the devstack tls-proxy service is running
# - the environment var OS_TESTENV_NAME is set in tox.ini (defaults
# to 'functional'
#
# This code based on a function in devstack lib/tls
function set_ca_bundle {
local python_cmd=".tox/${OS_TESTENV_NAME:-functional}/bin/python"
local capath=$($python_cmd -c $'try:\n from requests import certs\n print (certs.where())\nexcept ImportError: pass')
# of course, each distro keeps the CA store in a different location
local fedora_CA='/etc/pki/tls/certs/ca-bundle.crt'
local ubuntu_CA='/etc/ssl/certs/ca-certificates.crt'
local suse_CA='/etc/ssl/ca-bundle.pem'
# the distro CA is rooted in /etc, so if ours isn't, we need to
# change it
if [[ ! $capath == "" && ! $capath =~ ^/etc/.* && ! -L $capath ]]; then
if [[ -e $fedora_CA ]]; then
rm -f $capath
ln -s $fedora_CA $capath
elif [[ -e $ubuntu_CA ]]; then
rm -f $capath
ln -s $ubuntu_CA $capath
elif [[ -e $suse_CA ]]; then
rm -f $capath
ln -s $suse_CA $capath
else
echo "can't set CA bundle, expect tests to fail"
fi
fi
}
set_ca_bundle