From 36377f63e348200cd091b702c74350062a69fff9 Mon Sep 17 00:00:00 2001 From: Doug Hellmann Date: Tue, 4 Dec 2018 11:33:03 -0500 Subject: [PATCH] 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 --- inc/python | 39 +++++++++++---------------------------- stackrc | 8 +------- tests/test_python.sh | 7 +------ 3 files changed, 13 insertions(+), 41 deletions(-) diff --git a/inc/python b/inc/python index 5fb7245623..f1df101939 100644 --- a/inc/python +++ b/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 diff --git a/stackrc b/stackrc index 8463313625..8f66ba7975 100644 --- a/stackrc +++ b/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 diff --git a/tests/test_python.sh b/tests/test_python.sh index 8652798778..1f5453c4c7 100755 --- a/tests/test_python.sh +++ b/tests/test_python.sh @@ -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