
During upgrade testing, move Keystone containers behind an HAProxy load balancer and run a benchmarking tool to make continuous requests against the keystone API, providing summary output at the end of the play. This should help ensure the upgrade process between releases remains without downtime. To avoid service interruptions because of files being replaced during installations: - set the 'keystone_venv_tag' var so that it changes between releases - perform the 'Create WSGI symlinks' task only after the files being linked to exist Benchmarking scripts were provided by: https://github.com/lbragstad/keystone-performance-upgrade Co-Authored-By: Lance Bragstad <lbragstad@gmail.com> Change-Id: I462e6496f125c7e263bbab188e86c45e1f4f7f1e
159 lines
3.6 KiB
INI
159 lines
3.6 KiB
INI
[tox]
|
|
minversion = 2.0
|
|
skipsdist = True
|
|
envlist = docs,linters,functional
|
|
|
|
|
|
[testenv]
|
|
usedevelop = True
|
|
install_command =
|
|
pip install -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt} {opts} {packages}
|
|
deps =
|
|
-r{toxinidir}/test-requirements.txt
|
|
commands =
|
|
/usr/bin/find . -type f -name "*.pyc" -delete
|
|
passenv =
|
|
HOME
|
|
http_proxy
|
|
HTTP_PROXY
|
|
https_proxy
|
|
HTTPS_PROXY
|
|
no_proxy
|
|
NO_PROXY
|
|
whitelist_externals =
|
|
bash
|
|
setenv =
|
|
PYTHONUNBUFFERED=1
|
|
ROLE_NAME=os_keystone
|
|
TEST_IDEMPOTENCE=false
|
|
VIRTUAL_ENV={envdir}
|
|
WORKING_DIR={toxinidir}
|
|
|
|
|
|
[testenv:docs]
|
|
commands=
|
|
bash -c "rm -rf doc/build"
|
|
doc8 doc
|
|
python setup.py build_sphinx
|
|
|
|
|
|
[doc8]
|
|
# Settings for doc8:
|
|
extensions = .rst
|
|
|
|
|
|
[testenv:releasenotes]
|
|
commands =
|
|
sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
|
|
|
|
|
|
# environment used by the -infra templated docs job
|
|
[testenv:venv]
|
|
commands =
|
|
{posargs}
|
|
|
|
|
|
[testenv:tests_clone]
|
|
commands =
|
|
bash -c "if [ ! -d "{toxinidir}/tests/common" ]; then \
|
|
git clone https://git.openstack.org/openstack/openstack-ansible-tests {toxinidir}/tests/common; \
|
|
fi"
|
|
|
|
|
|
[testenv:pep8]
|
|
commands =
|
|
{[testenv:tests_clone]commands}
|
|
bash -c "{toxinidir}/tests/common/test-pep8.sh"
|
|
|
|
|
|
[flake8]
|
|
# Ignores the following rules due to how ansible modules work in general
|
|
# F403 'from ansible.module_utils.basic import *' used;
|
|
# unable to detect undefined names
|
|
ignore=F403
|
|
|
|
|
|
[testenv:bashate]
|
|
commands =
|
|
{[testenv:tests_clone]commands}
|
|
bash -c "{toxinidir}/tests/common/test-bashate.sh"
|
|
|
|
|
|
[testenv:ansible]
|
|
deps =
|
|
{[testenv]deps}
|
|
-rhttps://git.openstack.org/cgit/openstack/openstack-ansible-tests/plain/test-ansible-deps.txt
|
|
|
|
|
|
[testenv:ansible-syntax]
|
|
deps =
|
|
{[testenv:ansible]deps}
|
|
commands =
|
|
{[testenv:tests_clone]commands}
|
|
bash -c "{toxinidir}/tests/common/test-ansible-syntax.sh"
|
|
|
|
|
|
[testenv:ansible-lint]
|
|
deps =
|
|
{[testenv:ansible]deps}
|
|
commands =
|
|
{[testenv:tests_clone]commands}
|
|
bash -c "{toxinidir}/tests/common/test-ansible-lint.sh"
|
|
|
|
|
|
[testenv:functional]
|
|
deps =
|
|
{[testenv:ansible]deps}
|
|
commands =
|
|
{[testenv:tests_clone]commands}
|
|
bash -c "{toxinidir}/tests/common/test-ansible-functional.sh"
|
|
|
|
|
|
[testenv:upgrade]
|
|
deps =
|
|
{[testenv:ansible]deps}
|
|
setenv =
|
|
{[testenv]setenv}
|
|
TEST_PLAYBOOK={toxinidir}/tests/test-upgrade.yml
|
|
ANSIBLE_PARAMETERS=-e keystone_upgrade=True
|
|
commands =
|
|
{[testenv:tests_clone]commands}
|
|
bash -c "if [ ! -d "{toxinidir}/tests/common/previous" ]; then \
|
|
git clone -b stable/ocata https://git.openstack.org/openstack/openstack-ansible-tests \
|
|
{toxinidir}/tests/common/previous; \
|
|
fi"
|
|
bash -c "{toxinidir}/tests/common/test-ansible-functional.sh"
|
|
|
|
|
|
[testenv:uw_apache]
|
|
deps =
|
|
{[testenv:ansible]deps}
|
|
setenv =
|
|
{[testenv]setenv}
|
|
ANSIBLE_PARAMETERS=-vvv -e keystone_mod_wsgi_enabled=False
|
|
commands =
|
|
{[testenv:tests_clone]commands}
|
|
bash -c "{toxinidir}/tests/common/test-ansible-functional.sh"
|
|
|
|
|
|
[testenv:uw_nginx]
|
|
deps =
|
|
{[testenv:ansible]deps}
|
|
setenv =
|
|
{[testenv]setenv}
|
|
ANSIBLE_PARAMETERS=-vvv -e keystone_apache_enabled=False -e keystone_mod_wsgi_enabled=False
|
|
commands =
|
|
{[testenv:tests_clone]commands}
|
|
bash -c "{toxinidir}/tests/common/test-ansible-functional.sh"
|
|
|
|
|
|
[testenv:linters]
|
|
deps =
|
|
{[testenv:ansible]deps}
|
|
commands =
|
|
{[testenv:pep8]commands}
|
|
{[testenv:bashate]commands}
|
|
{[testenv:ansible-lint]commands}
|
|
{[testenv:ansible-syntax]commands}
|
|
{[testenv:docs]commands}
|