Use "pip list" in check_libs_from_git

As described in the change, "pip freeze" has issues with the way
zuulv3 clones repos without a remote.  This is an attempt to use "pip
list" to check for local install

Change-Id: I33d25f86b6afcadb4b190a0f6c53311111c64521
This commit is contained in:
Ian Wienand 2017-09-29 10:16:47 +10:00
parent 5b419ffb1f
commit ae9c6ab759
2 changed files with 15 additions and 6 deletions

View File

@ -386,7 +386,20 @@ function use_library_from_git {
# determine if a package was installed from git
function lib_installed_from_git {
local name=$1
pip freeze 2>/dev/null | grep -- "$name" | grep -q -- '-e git'
# Note "pip freeze" doesn't always work here, because it tries to
# be smart about finding the remote of the git repo the package
# was installed from. This doesn't work with zuul which clones
# repos with no remote.
#
# The best option seems to be to use "pip list" which will tell
# you the path an editable install was installed from; for example
# in response to something like
# pip install -e 'git+http://git.openstack.org/openstack-dev/bashate#egg=bashate'
# pip list shows
# bashate (0.5.2.dev19, /tmp/env/src/bashate)
# Thus we look for "path after a comma" to indicate we were
# installed from some local place
pip list 2>/dev/null | grep -- "$name" | grep -q -- ', .*)$'
}
# check that everything that's in LIBS_FROM_GIT was actually installed

View File

@ -1389,11 +1389,7 @@ service_check
# ensure that all the libraries we think we installed from git,
# actually were.
#
# NOTE(ianw) 2017-09-27 : "pip freeze" is currently having issues
# with zuulv3 and the way it clones remotes. We will restore this
# with a slightly different check soon
#check_libs_from_git
check_libs_from_git
# Configure nova cellsv2