From 6e2de3845a2380ff6d981d107d396e42b4bae0ba Mon Sep 17 00:00:00 2001 From: melanie witt Date: Mon, 9 Oct 2017 19:07:54 +0000 Subject: [PATCH] Force pip install update of PasteDeploy The gate-tempest-dsvm-full-devstack-plugin-ceph-ubuntu-xenial job is currently failing at a rate of 100% since we updated to use the Pike UCA. The Ceph packages in the Pike UCA are pulling in python-paste and python-pastedeploy. When devstack pip installs a newer version of python-paste to satisfy upper-constraints, we end up with Paste installed from pypi and python-pastedeploy installed from the Ubuntu archive and Keystone fails to start with the error: "ImportError: cannot import name deploy." This adds a hack to force an update of PasteDeploy from pypi during the devstack "stack install" phase to work around the problem and get the job passing again. Change-Id: Idf28de8faa56c2d387291c7d14ac6d4bf1c74c6a --- devstack/plugin.sh | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/devstack/plugin.sh b/devstack/plugin.sh index 3f56d83..838e306 100644 --- a/devstack/plugin.sh +++ b/devstack/plugin.sh @@ -30,6 +30,16 @@ elif [[ "$1" == "stack" && "$2" == "pre-install" ]]; then else install_ceph_remote fi +elif [[ "$1" == "stack" && "$2" == "install" ]]; then + # FIXME(melwitt): This is a hack to get around a namespacing issue with + # Paste and PasteDeploy. Recently, we updated to use the Pike UCA packages + # and the Ceph packages in the Pike UCA are pulling in python-paste and + # python-pastedeploy packages. The python-pastedeploy package satisfies the + # upper-constraints but python-paste does not, so devstack pip installs a + # newer version of it, while python-pastedeploy remains. The mismatch + # between the install path of paste and paste.deploy causes Keystone to + # fail to start, with "ImportError: cannot import name deploy." + pip_install -U --force PasteDeploy elif [[ "$1" == "stack" && "$2" == "post-config" ]]; then if is_ceph_enabled_for_service glance; then echo_summary "Configuring Glance for Ceph"