Browse code

Merge "Use the pip installed version of requests with Fedora"

Jenkins authored on 2015/09/05 04:21:24
Showing 1 changed files
... ...
@@ -134,6 +134,31 @@ if is_fedora; then
134 134
             sudo systemctl start iptables
135 135
         fi
136 136
     fi
137
+
138
+    if  [[ "$os_RELEASE" -ge "21" ]]; then
139
+        # requests ships vendored version of chardet/urllib3, but on
140
+        # fedora these are symlinked back to the primary versions to
141
+        # avoid duplication of code on disk.  This is fine when
142
+        # maintainers keep things in sync, but since devstack takes
143
+        # over and installs later versions via pip we can end up with
144
+        # incompatible versions.
145
+        #
146
+        # The rpm package is not removed to preserve the dependent
147
+        # packages like cloud-init; rather we remove the symlinks and
148
+        # force a re-install of requests so the vendored versions it
149
+        # wants are present.
150
+        #
151
+        # Realted issues:
152
+        # https://bugs.launchpad.net/glance/+bug/1476770
153
+        # https://bugzilla.redhat.com/show_bug.cgi?id=1253823
154
+
155
+        base_path=/usr/lib/python2.7/site-packages/requests/packages
156
+        if [ -L $base_path/chardet -o -L $base_path/urllib3 ]; then
157
+            sudo rm -f /usr/lib/python2.7/site-packages/requests/packages/{chardet,urllib3}
158
+            # install requests with the bundled urllib3 to avoid conflicts
159
+            pip_install --upgrade --force-reinstall requests
160
+        fi
161
+    fi
137 162
 fi
138 163
 
139 164
 # The version of pip(1.5.4) supported by python-virtualenv(1.11.4) has