| #!/bin/bash |
| # |
| # lib/stack |
| # |
| # These functions are code snippets pulled out of ``stack.sh`` for easier |
| # re-use by Grenade. They can assume the same environment is available |
| # as in the lower part of ``stack.sh``, namely a valid stackrc has been sourced |
| # as well as all of the ``lib/*`` files for the services have been sourced. |
| # |
| # For clarity, all functions declared here that came from ``stack.sh`` |
| # shall be named with the prefix ``stack_``. |
| |
| |
| # Functions |
| # --------- |
| |
| # Generic service install handles venv creation if configured for service |
| # stack_install_service service |
| function stack_install_service { |
| local service=$1 |
| if type install_${service} >/dev/null 2>&1; then |
| # FIXME(dhellmann): Needs to be python3-aware at some point. |
| if [[ ${USE_VENV} = True && -n ${PROJECT_VENV[$service]:-} ]]; then |
| rm -rf ${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 [[ ${USE_VENV} = True && -n ${PROJECT_VENV[$service]:-} ]]; then |
| unset PIP_VIRTUAL_ENV |
| fi |
| else |
| echo "No function declared with name 'install_${service}'." |
| exit 1 |
| fi |
| } |