Browse code

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

Matt Riedemann authored on 2015/08/13 03:14:23
Showing 1 changed files
... ...
@@ -864,6 +864,21 @@ if [[ -d $TOP_DIR/extras.d ]]; then
864 864
 fi
865 865
 
866 866
 
867
+# NOTE(mriedem): This is an unfortunate hack to workaround a problem with
868
+# uncapped requirements for python-novaclient in python-openstackclient 1.0.1
869
+# such that it pulls in the latest python-novaclient if something hasn't
870
+# already pulled in novaclient (like cinder) at a version that osc in juno will
871
+# accept. The large-ops job doesn't install cinder (since it uses the fake
872
+# nova virt driver) so osc is the first thing to install novaclient which
873
+# then causes a wedge due to capped novaclient in other juno projects.
874
+# So if we're running the large-ops job (per using the nova fake virt driver),
875
+# install novaclient per the g-r caps for stable/juno so osc doesn't pull in
876
+# the latest novaclient and wedge everything.
877
+if [[ "$VIRT_DRIVER" = 'fake' ]]; then
878
+    pip_install_gr python-novaclient
879
+fi
880
+
881
+
867 882
 # install the OpenStack client, needed for most setup commands
868 883
 if use_library_from_git "python-openstackclient"; then
869 884
     git_clone_by_name "python-openstackclient"