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:
parent
a88a22969c
commit
36377f63e3
39
inc/python
39
inc/python
@ -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
|
||||
|
8
stackrc
8
stackrc
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user