Merge "Add global venv enable/disable knob"
This commit is contained in:
commit
c392fd3b5f
@ -170,6 +170,30 @@ Libraries from Git
|
||||
|
||||
LIBS_FROM_GIT=python-keystoneclient,oslo.config
|
||||
|
||||
Virtual Environments
|
||||
--------------------
|
||||
|
||||
| *Default: ``USE_VENV=False``*
|
||||
| Enable the use of Python virtual environments by setting ``USE_VENV``
|
||||
to ``True``. This will enable the creation of venvs for each project
|
||||
that is defined in the ``PROJECT_VENV`` array.
|
||||
|
||||
| *Default: ``PROJECT_VENV['<project>']='<project-dir>.venv'*
|
||||
| Each entry in the ``PROJECT_VENV`` array contains the directory name
|
||||
of a venv to be used for the project. The array index is the project
|
||||
name. Multiple projects can use the same venv if desired.
|
||||
|
||||
::
|
||||
|
||||
PROJECT_VENV["glance"]=${GLANCE_DIR}.venv
|
||||
|
||||
| *Default: ``ADDITIONAL_VENV_PACKAGES=""``*
|
||||
| A comma-separated list of additional packages to be installed into each
|
||||
venv. Often projects will not have certain packages listed in its
|
||||
``requirements.txt`` file because they are 'optional' requirements,
|
||||
i.e. only needed for certain configurations. By default, the enabled
|
||||
databases will have their Python bindings added when they are enabled.
|
||||
|
||||
Enable Logging
|
||||
--------------
|
||||
|
||||
|
@ -211,6 +211,8 @@ Tools
|
||||
-----
|
||||
|
||||
* `tools/build\_docs.sh <tools/build_docs.sh.html>`__
|
||||
* `tools/build\_venv.sh <tools/build_venv.sh.html>`__
|
||||
* `tools/build\_wheels.sh <tools/build_wheels.sh.html>`__
|
||||
* `tools/create-stack-user.sh <tools/create-stack-user.sh.html>`__
|
||||
* `tools/create\_userrc.sh <tools/create_userrc.sh.html>`__
|
||||
* `tools/fixup\_stuff.sh <tools/fixup_stuff.sh.html>`__
|
||||
|
@ -109,6 +109,11 @@ function install_database {
|
||||
install_database_$DATABASE_TYPE
|
||||
}
|
||||
|
||||
# Install the database Python packages
|
||||
function install_database_python {
|
||||
install_database_python_$DATABASE_TYPE
|
||||
}
|
||||
|
||||
# Configure and start the database
|
||||
function configure_database {
|
||||
configure_database_$DATABASE_TYPE
|
||||
|
@ -151,9 +151,12 @@ EOF
|
||||
else
|
||||
exit_distro_not_supported "mysql installation"
|
||||
fi
|
||||
}
|
||||
|
||||
function install_database_python_mysql {
|
||||
# Install Python client module
|
||||
pip_install MySQL-python
|
||||
ADDITIONAL_VENV_PACKAGES+=",MySQL-python"
|
||||
}
|
||||
|
||||
function database_connection_url_mysql {
|
||||
|
@ -100,9 +100,12 @@ EOF
|
||||
else
|
||||
exit_distro_not_supported "postgresql installation"
|
||||
fi
|
||||
}
|
||||
|
||||
function install_database_python_postgresql {
|
||||
# Install Python client module
|
||||
pip_install psycopg2
|
||||
ADDITIONAL_VENV_PACKAGES+=",psycopg2"
|
||||
}
|
||||
|
||||
function database_connection_url_postgresql {
|
||||
|
10
lib/stack
10
lib/stack
@ -16,13 +16,17 @@
|
||||
function stack_install_service {
|
||||
local service=$1
|
||||
if type install_${service} >/dev/null 2>&1; then
|
||||
if [[ -n ${PROJECT_VENV[$service]:-} ]]; then
|
||||
if [[ ${USE_VENV} = True && -n ${PROJECT_VENV[$service]:-} ]]; then
|
||||
rm -rf ${PROJECT_VENV[$service]}
|
||||
source $TOP_DIR/tools/build_venv.sh ${PROJECT_VENV[$service]}
|
||||
source $TOP_DIR/tools/build_venv.sh ${PROJECT_VENV[$service]} ${ADDITIONAL_VENV_PACKAGES//,/ }
|
||||
export PIP_VIRTUAL_ENV=${PROJECT_VENV[$service]:-}
|
||||
|
||||
# Install other OpenStack prereqs that might come from source repos
|
||||
install_oslo
|
||||
install_keystonemiddleware
|
||||
fi
|
||||
install_${service}
|
||||
if [[ -n ${PROJECT_VENV[$service]:-} ]]; then
|
||||
if [[ ${USE_VENV} = True && -n ${PROJECT_VENV[$service]:-} ]]; then
|
||||
unset PIP_VIRTUAL_ENV
|
||||
fi
|
||||
fi
|
||||
|
1
stack.sh
1
stack.sh
@ -713,6 +713,7 @@ install_rpc_backend
|
||||
|
||||
if is_service_enabled $DATABASE_BACKENDS; then
|
||||
install_database
|
||||
install_database_python
|
||||
fi
|
||||
|
||||
if is_service_enabled neutron; then
|
||||
|
10
stackrc
10
stackrc
@ -104,6 +104,16 @@ elif [[ -f $RC_DIR/.localrc.auto ]]; then
|
||||
source $RC_DIR/.localrc.auto
|
||||
fi
|
||||
|
||||
# Enable use of Python virtual environments. Individual project use of
|
||||
# venvs are controlled by the PROJECT_VENV array; every project with
|
||||
# an entry in the array will be installed into the named venv.
|
||||
# By default this will put each project into its own venv.
|
||||
USE_VENV=$(trueorfalse False USE_VENV)
|
||||
|
||||
# Add packages that need to be installed into a venv but are not in any
|
||||
# requirmenets files here, in a comma-separated list
|
||||
ADDITIONAL_VENV_PACKAGES=${ADITIONAL_VENV_PACKAGES:-""}
|
||||
|
||||
# Configure wheel cache location
|
||||
export WHEELHOUSE=${WHEELHOUSE:-$DEST/.wheelhouse}
|
||||
export PIP_WHEEL_DIR=${PIP_WHEEL_DIR:-$WHEELHOUSE}
|
||||
|
Loading…
Reference in New Issue
Block a user