CI: Use upper constraints to install clients

Stein & earlier only

Some dependencies of client libraries (openstacksdk) have released
packages which do not support Python 2, but are not marked as such,
meaning that pip will install them. This breaks when the clients are
used, in this case in init-runonce:

    ImportError: No module named queue

This change fixes the issue by using upper constraints when installing
the clients.

This change also increases the timeout when waiting for Horizon to
start in CI, since it seems to now take a long time to compress static
files.

Change-Id: I3272c0b8ebf6be957c120714a826a615246aa16b
Related-Bug: #1870349
This commit is contained in:
Mark Goddard 2020-04-03 09:48:23 +01:00
parent 1695d6cd98
commit aa7b6c355d
3 changed files with 10 additions and 8 deletions

View File

@ -191,6 +191,7 @@
TAG: "{{ build_image_tag }}"
KOLLA_SRC_DIR: "{{ ansible_env.HOME }}/src/opendev.org/openstack/kolla"
ACTION: "{{ scenario }}"
UPPER_CONSTRAINTS: "{{ ansible_env.HOME }}/src/opendev.org/openstack/requirements/upper-constraints.txt"
# At this point we have generated all necessary configuration, and are
# ready to deploy the control plane services. Control flow now depends on

View File

@ -116,7 +116,7 @@ function test_dashboard {
while ! check_dashboard $output_path; do
echo "Dashboard not accessible yet"
attempt=$((attempt+1))
if [[ $attempt -eq 10 ]]; then
if [[ $attempt -eq 100 ]]; then
echo "FAILED: Dashboard did not become accessible. Response:"
cat $output_path
return 1

View File

@ -10,15 +10,16 @@ GIT_PROJECT_DIR=$(mktemp -d)
function setup_openstack_clients {
# Prepare virtualenv for openstack deployment tests
local packages=(python-openstackclient)
if [[ $SCENARIO == zun ]]; then
packages+=(python-zunclient)
fi
if [[ $SCENARIO == ironic ]]; then
packages+=(python-ironicclient)
fi
virtualenv ~/openstackclient-venv
~/openstackclient-venv/bin/pip install -U pip
~/openstackclient-venv/bin/pip install python-openstackclient
if [[ $ACTION == zun ]]; then
~/openstackclient-venv/bin/pip install python-zunclient
fi
if [[ $ACTION == ironic ]]; then
~/openstackclient-venv/bin/pip install python-ironicclient
fi
~/openstackclient-venv/bin/pip install -c $UPPER_CONSTRAINTS ${packages[@]}
}
function setup_config {