Browse code

Fix devstack python detection if python3 is missing

On platforms without python3 installed devstack fails the python
version check. This does it more gracefully.

Change-Id: I4d79a41eb2d66852ab1a1aa8bd383f8e3e89cdc0

Sean Dague authored on 2017/09/15 03:59:25
Showing 2 changed files
... ...
@@ -2080,7 +2080,10 @@ function is_provider_network {
2080 2080
 function _get_python_version {
2081 2081
     local interp=$1
2082 2082
     local version
2083
-    version=$($interp -c 'import sys; print("%s.%s" % sys.version_info[0:2])')
2083
+    # disable erroring out here, otherwise if python 3 doesn't exist we fail hard.
2084
+    if [[ -x $(which $interp) ]]; then
2085
+        version=$($interp -c 'import sys; print("%s.%s" % sys.version_info[0:2])')
2086
+    fi
2084 2087
     echo ${version}
2085 2088
 }
2086 2089
 
... ...
@@ -131,11 +131,11 @@ export DISABLED_PYTHON3_PACKAGES=""
131 131
 # version of Python 3 to this variable will install the app using that
132 132
 # version of the interpreter instead of 2.7.
133 133
 _DEFAULT_PYTHON3_VERSION="$(_get_python_version python3)"
134
-export PYTHON3_VERSION=${PYTHON3_VERSION:-${_DEFAULT_PYTHON3_VERSION}}
134
+export PYTHON3_VERSION=${PYTHON3_VERSION:-${_DEFAULT_PYTHON3_VERSION:-3.5}}
135 135
 
136 136
 # Just to be more explicit on the Python 2 version to use.
137 137
 _DEFAULT_PYTHON2_VERSION="$(_get_python_version python2)"
138
-export PYTHON2_VERSION=${PYTHON2_VERSION:-${_DEFAULT_PYTHON2_VERSION}}
138
+export PYTHON2_VERSION=${PYTHON2_VERSION:-${_DEFAULT_PYTHON2_VERSION:-2.7}}
139 139
 
140 140
 # allow local overrides of env variables, including repo config
141 141
 if [[ -f $RC_DIR/localrc ]]; then