install under python3 by default when enabled

Remove the requirement that services explicitly enable python3 support
in order to be tested under python3 when running with python3
enabled. Keep the enable_python3_package() function for backwards
compatibility, for now, since it is called in some devstack plugins.

Explicitly add swift to the set of packages that should not be installed
using python3 by default until full support is available.

Change-Id: I8ab0a7c242bbf5bf3f091f5a85a98e2f4543f856
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
This commit is contained in:
Doug Hellmann 2018-12-04 11:33:03 -05:00 committed by Tom Barron
parent a88a22969c
commit 36377f63e3
3 changed files with 13 additions and 41 deletions

View File

@ -115,13 +115,12 @@ function check_python3_support_for_package_remote {
echo $classifier
}
# python3_enabled_for() checks if the service(s) specified as arguments are
# enabled by the user in ``ENABLED_PYTHON3_PACKAGES``.
# python3_enabled_for() assumes the service(s) specified as arguments are
# enabled for python 3 unless explicitly disabled. See python3_disabled_for().
#
# Multiple services specified as arguments are ``OR``'ed together; the test
# is a short-circuit boolean, i.e it returns on the first match.
#
# Uses global ``ENABLED_PYTHON3_PACKAGES``
# python3_enabled_for dir [dir ...]
function python3_enabled_for {
local xtrace
@ -132,7 +131,9 @@ function python3_enabled_for {
local dirs=$@
local dir
for dir in ${dirs}; do
[[ ,${ENABLED_PYTHON3_PACKAGES}, =~ ,${dir}, ]] && enabled=0
if ! python3_disabled_for "${dir}"; then
enabled=0
fi
done
$xtrace
@ -163,42 +164,29 @@ function python3_disabled_for {
return $enabled
}
# enable_python3_package() adds the repositories passed as argument to the
# ``ENABLED_PYTHON3_PACKAGES`` list, if they are not already present.
# enable_python3_package() -- no-op for backwards compatibility
#
# For example:
# enable_python3_package nova
#
# Uses global ``ENABLED_PYTHON3_PACKAGES``
# enable_python3_package dir [dir ...]
function enable_python3_package {
local xtrace
xtrace=$(set +o | grep xtrace)
set +o xtrace
local tmpsvcs="${ENABLED_PYTHON3_PACKAGES}"
local python3
for dir in $@; do
if [[ ,${DISABLED_PYTHON3_PACKAGES}, =~ ,${dir}, ]]; then
warn $LINENO "Attempt to enable_python3_package ${dir} when it has been disabled"
continue
fi
if ! python3_enabled_for $dir; then
tmpsvcs+=",$dir"
fi
done
ENABLED_PYTHON3_PACKAGES=$(_cleanup_service_list "$tmpsvcs")
echo "It is no longer necessary to call enable_python3_package()."
$xtrace
}
# disable_python3_package() prepares the services passed as argument to be
# removed from the ``ENABLED_PYTHON3_PACKAGES`` list, if they are present.
# disable_python3_package() adds the services passed as argument to
# the ``DISABLED_PYTHON3_PACKAGES`` list.
#
# For example:
# disable_python3_package swift
#
# Uses globals ``ENABLED_PYTHON3_PACKAGES`` and ``DISABLED_PYTHON3_PACKAGES``
# Uses global ``DISABLED_PYTHON3_PACKAGES``
# disable_python3_package dir [dir ...]
function disable_python3_package {
local xtrace
@ -206,16 +194,11 @@ function disable_python3_package {
set +o xtrace
local disabled_svcs="${DISABLED_PYTHON3_PACKAGES}"
local enabled_svcs=",${ENABLED_PYTHON3_PACKAGES},"
local dir
for dir in $@; do
disabled_svcs+=",$dir"
if python3_enabled_for $dir; then
enabled_svcs=${enabled_svcs//,$dir,/,}
fi
done
DISABLED_PYTHON3_PACKAGES=$(_cleanup_service_list "$disabled_svcs")
ENABLED_PYTHON3_PACKAGES=$(_cleanup_service_list "$enabled_svcs")
$xtrace
}
@ -295,7 +278,7 @@ function pip_install {
if python3_disabled_for ${package_dir##*/}; then
echo "Explicitly using $PYTHON2_VERSION version to install $package_dir based on DISABLED_PYTHON3_PACKAGES"
elif python3_enabled_for ${package_dir##*/}; then
echo "Explicitly using $PYTHON3_VERSION version to install $package_dir based on ENABLED_PYTHON3_PACKAGES"
echo "Using $PYTHON3_VERSION version to install $package_dir based on default behavior"
sudo_pip="$sudo_pip LC_ALL=en_US.UTF-8"
cmd_pip=$(get_pip_command $PYTHON3_VERSION)
elif [[ -d "$package_dir" ]]; then

View File

@ -129,15 +129,9 @@ fi
# Control whether Python 3 should be used at all.
export USE_PYTHON3=$(trueorfalse False USE_PYTHON3)
# Control whether Python 3 is enabled for specific services by the
# base name of the directory from which they are installed. See
# enable_python3_package to edit this variable and use_python3_for to
# test membership.
export ENABLED_PYTHON3_PACKAGES="nova,glance,cinder,uwsgi,python-openstackclient,openstacksdk"
# Explicitly list services not to run under Python 3. See
# disable_python3_package to edit this variable.
export DISABLED_PYTHON3_PACKAGES=""
export DISABLED_PYTHON3_PACKAGES="swift"
# When Python 3 is supported by an application, adding the specific
# version of Python 3 to this variable will install the app using that

View File

@ -12,14 +12,9 @@ source $TOP/tests/unittest.sh
echo "Testing Python 3 functions"
# Initialize variables manipulated by functions under test.
export ENABLED_PYTHON3_PACKAGES=""
export DISABLED_PYTHON3_PACKAGES=""
assert_false "should not be enabled yet" python3_enabled_for testpackage1
enable_python3_package testpackage1
assert_equal "$ENABLED_PYTHON3_PACKAGES" "testpackage1" "unexpected result"
assert_true "should be enabled" python3_enabled_for testpackage1
assert_true "should be enabled by default" python3_enabled_for testpackage1
assert_false "should not be disabled yet" python3_disabled_for testpackage2