Workaround large-ops wedge with uncapped novaclient in osc 1.0.1

python-openstackclient 1.0.1 pulls in uncapped novaclient which breaks
the caps for novaclient in other projects in Juno.  This only happens in
the large-ops job because cinder isn't installed and therefore cinder
doesn't install capped novaclient per juno global-requirements before osc
is installed.  We can't fix osc and bump it to 1.0.2 since osc is capped
at <=1.0.1 in global-requirements for stable/juno, so we're stuck.

So the workaround is to install python-novaclient from
global-requirements prior to installing python-openstackclient but only
in the case of the large-ops job, which we identify from the usage of
the fake virt driver.

Closes-Bug: #1482350

Change-Id: Id8cc112800d757bfd509cc48087b769410356920
This commit is contained in:
Matt Riedemann 2015-08-12 11:14:23 -07:00
parent 42854dc87c
commit 001b1cdddc
1 changed files with 15 additions and 0 deletions

View File

@ -864,6 +864,21 @@ if [[ -d $TOP_DIR/extras.d ]]; then
fi
# NOTE(mriedem): This is an unfortunate hack to workaround a problem with
# uncapped requirements for python-novaclient in python-openstackclient 1.0.1
# such that it pulls in the latest python-novaclient if something hasn't
# already pulled in novaclient (like cinder) at a version that osc in juno will
# accept. The large-ops job doesn't install cinder (since it uses the fake
# nova virt driver) so osc is the first thing to install novaclient which
# then causes a wedge due to capped novaclient in other juno projects.
# So if we're running the large-ops job (per using the nova fake virt driver),
# install novaclient per the g-r caps for stable/juno so osc doesn't pull in
# the latest novaclient and wedge everything.
if [[ "$VIRT_DRIVER" = 'fake' ]]; then
pip_install_gr python-novaclient
fi
# install the OpenStack client, needed for most setup commands
if use_library_from_git "python-openstackclient"; then
git_clone_by_name "python-openstackclient"