tacker/tox.ini
Ayumu Ueha 8dee0c8e7e Fix broken jobs in V1 API gates
This patch fixes the following issues:

1. Change the QueuePool settings to use the values recommended.

   The following error occurred in sol-vnflcm and sol-kubernetes job:
   ```
   tacker.wsgi sqlalchemy.exc.TimeoutError:
     QueuePool limit of size 10 overflow 20 reached,
     connection timed out, timeout 10.00
   ```

   Change to remove the process of overriding the default value of
   oslo.db config. In Neutron, the process of overriding the default
   value of oslo.db has already been removed [1].

   However, errors still occur when using the recommended value, so
   temporarily set `max_pool_size` to unlimited in FT.

2. Fix issue of `Show subscription (V1 API)`.

   A previous patch [2] included `sqlalchemy.row.LegacyRow` for
   backwards compatibility with oslo.db, which caused the error
   "Show subscription (V1 API)" to fail by upgrading SQLAlchemy.
   Fix it to work correctly by removing `row.LegacyRow`.

3. Fix to upload image successfully in FT.

   There was a process to get the image from the glance and upload the
   copy image, but it was not working properly.
   Changed the argument to glance so that it uploads correctly.

4. Increase wait time Terminate after Heal in sol-vnflcm job.

   A 409 error occurred at the time of Terminate because the process
   was to wait a fixed number of seconds after Heal before Terminate.
   The current 20 seconds may not be enough, so increase it to 60
   seconds. This will be fixed to check if OpOcc is COMPLETED status
   in future work.

5. Split test jobs for sol-vnflcm.

   Split test jobs for sol-vnflcm because it takes longer to run and,
   it is executed using the full limit time.

[1] https://review.opendev.org/c/openstack/neutron/+/456419
[2] https://review.opendev.org/c/openstack/tacker/+/910720

Closes-Bug: #2066047
Change-Id: If1cd835c8875fa844f9eac5bff5ba85103ad91aa
2024-09-06 01:12:59 +00:00

295 lines
8.7 KiB
INI

[tox]
envlist = py310,py39,py38,py36,pep8,docs
minversion = 4.11.0
ignore_basepython_conflict = True
[testenv]
basepython = python3
setenv = VIRTUAL_ENV={envdir}
OS_LOG_CAPTURE={env:OS_LOG_CAPTURE:true}
OS_STDOUT_CAPTURE={env:OS_STDOUT_CAPTURE:true}
OS_STDERR_CAPTURE={env:OS_STDERR_CAPTURE:true}
passenv =
TOX_CONSTRAINTS_FILE
OS_DEBUG
usedevelop = True
allowlist_externals = rm
deps =
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
-r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
commands =
stestr run --slowest --concurrency 1 {posargs}
[testenv:functional]
setenv = {[testenv]setenv}
commands =
stestr --test-path=./tacker/tests/functional run --slowest {posargs}
[testenv:dsvm-functional]
setenv = {[testenv]setenv}
commands =
stestr --test-path=./tacker/tests/functional run --slowest --concurrency 2 {posargs}
[testenv:dsvm-functional-sol-legacy-nfvo]
setenv = {[testenv]setenv}
commands =
stestr --test-path=./tacker/tests/functional/sol/legacy_nfvo run --slowest --concurrency 1 {posargs}
[testenv:dsvm-functional-sol-vnflcm]
setenv = {[testenv]setenv}
commands =
stestr --test-path=./tacker/tests/functional/sol/vnflcm run --slowest --concurrency 1 {posargs}
[testenv:dsvm-functional-sol-vnflcm-userdata]
setenv = {[testenv]setenv}
commands =
stestr --test-path=./tacker/tests/functional/sol/vnflcm_userdata run --slowest --concurrency 1 {posargs}
[testenv:dsvm-functional-sol-vnfpkgm]
setenv = {[testenv]setenv}
commands =
stestr --test-path=./tacker/tests/functional/sol/vnfpkgm run --slowest --concurrency 1 {posargs}
[testenv:dsvm-functional-sol-separated-nfvo]
setenv = {[testenv]setenv}
commands =
stestr --test-path=./tacker/tests/functional/sol_separated_nfvo run --slowest --concurrency 1 {posargs}
[testenv:dsvm-functional-sol-separated-nfvo-v2]
setenv = {[testenv]setenv}
commands =
stestr --test-path=./tacker/tests/functional/sol_separated_nfvo_v2 run --slowest --concurrency 1 {posargs}
[testenv:dsvm-functional-sol-kubernetes]
setenv = {[testenv]setenv}
commands =
stestr --test-path=./tacker/tests/functional/sol_kubernetes run --slowest --concurrency 2 {posargs}
[testenv:dsvm-functional-sol-v2-basic]
setenv = {[testenv]setenv}
commands =
stestr --test-path=./tacker/tests/functional/sol_v2/basic run --slowest --concurrency 1 {posargs}
[testenv:dsvm-functional-sol-v2-vnflcm]
setenv = {[testenv]setenv}
commands =
stestr --test-path=./tacker/tests/functional/sol_v2/vnflcm run --slowest --concurrency 1 {posargs}
[testenv:dsvm-functional-sol-v2-notification]
setenv = {[testenv]setenv}
commands =
stestr --test-path=./tacker/tests/functional/sol_v2/notification run --slowest --concurrency 1 {posargs}
[testenv:dsvm-functional-sol-v2-prometheus]
setenv = {[testenv]setenv}
commands =
stestr --test-path=./tacker/tests/functional/sol_v2/prometheus run --slowest --concurrency 1 {posargs}
[testenv:dsvm-functional-sol-v2-ubuntu-focal]
setenv = {[testenv]setenv}
commands =
stestr --test-path=./tacker/tests/functional/sol_v2 run --slowest --concurrency 1 {posargs}
[testenv:dsvm-functional-sol-v2-individual-vnfc-mgmt]
setenv = {[testenv]setenv}
commands =
stestr --test-path=./tacker/tests/functional/sol_v2_individual_vnfc_mgmt run --slowest --concurrency 1 {posargs}
[testenv:dsvm-functional-sol-kubernetes-v2]
setenv = {[testenv]setenv}
commands =
stestr --test-path=./tacker/tests/functional/sol_kubernetes_v2 run --slowest --concurrency 1 {posargs}
[testenv:dsvm-functional-sol_kubernetes_oidc_auth]
setenv = {[testenv]setenv}
commands =
stestr --test-path=./tacker/tests/functional/sol_kubernetes_oidc_auth run --slowest --concurrency 1 {posargs}
[testenv:dsvm-functional-sol-multi-tenant]
setenv = {[testenv]setenv}
commands =
stestr --test-path=./tacker/tests/functional/sol_multi_tenant run --slowest --concurrency 1 {posargs}
[testenv:dsvm-functional-sol-kubernetes-multi-tenant]
setenv = {[testenv]setenv}
commands =
stestr --test-path=./tacker/tests/functional/sol_kubernetes_multi_tenant run --slowest --concurrency 1 {posargs}
[testenv:dsvm-functional-sol-v2-az-retry]
setenv = {[testenv]setenv}
commands =
stestr --test-path=./tacker/tests/functional/sol_v2_az_retry run --slowest --concurrency 1 {posargs}
[testenv:dsvm-functional-enhanced-policy-sol]
setenv = {[testenv]setenv}
commands =
stestr --test-path=./tacker/tests/functional/sol_enhanced_policy/sol run --slowest --concurrency 1 {posargs}
[testenv:dsvm-functional-enhanced-policy-sol-kubernetes]
setenv = {[testenv]setenv}
commands =
stestr --test-path=./tacker/tests/functional/sol_enhanced_policy/sol_kubernetes run --slowest --concurrency 1 {posargs}
[testenv:dsvm-functional-sol-https-v2]
setenv = {[testenv]setenv}
commands =
stestr --test-path=./tacker/tests/functional/sol_https_v2 run --slowest --concurrency 1 {posargs}
[testenv:dsvm-functional-sol-encrypt-cred-barbican]
setenv = {[testenv]setenv}
commands =
stestr --test-path=./tacker/tests/functional/sol_encrypt_cred_v2 run --slowest --concurrency 1 {posargs}
[testenv:dsvm-functional-sol-encrypt-cred-local]
setenv = {[testenv]setenv}
# Temporarily change directory permissions to read the contents of the fernet
# key file from the test code.
commands_pre =
sudo su stack -c 'chmod 755 /etc/tacker/crypt/fernet_keys'
commands =
stestr --test-path=./tacker/tests/functional/sol_encrypt_cred_v2 run --slowest --concurrency 1 {posargs}
commands_post =
sudo su stack -c 'chmod 700 /etc/tacker/crypt/fernet_keys'
allowlist_externals =
sudo
[testenv:dsvm-functional-sol-terraform-v2]
setenv = {[testenv]setenv}
commands =
stestr --test-path=./tacker/tests/functional/sol_terraform_v2 run --slowest --concurrency 1 {posargs}
[testenv:dsvm-compliance-sol-api]
passenv =
{[testenv]passenv}
*_PROXY
commands_pre =
git clone https://forge.etsi.org/rep/nfv/api-tests.git
git -C api-tests checkout 2.6.1-fix-plu
pip install -U -r{envdir}/api-tests/requirements.txt
commands =
stestr --test-path={toxinidir}/tacker/tests/compliance --top-dir={toxinidir} run --slowest --concurrency 1 {posargs}
commands_post =
rm -rf api-tests
allowlist_externals =
git
rm
changedir = {envdir}
[testenv:debug]
commands = oslo_debug_helper {posargs}
[testenv:debug-py36]
basepython = python3.6
commands = oslo_debug_helper {posargs}
[testenv:debug-py39]
basepython = python3.9
commands = oslo_debug_helper {posargs}
[testenv:pep8]
deps = -r{toxinidir}/doc/requirements.txt
-r{toxinidir}/test-requirements.txt
commands =
flake8
doc8 -e .rst doc/source/ CONTRIBUTING.rst HACKING.rst README.rst TESTING.rst
tacker-db-manage check_migration
allowlist_externals = bash
[testenv:docs]
allowlist_externals =
sphinx-build
deps =
-r{toxinidir}/doc/requirements.txt
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
commands =
sphinx-build -W -b html doc/source doc/build/html
oslopolicy-sample-generator --config-file=etc/tacker-policy-generator.conf
[testenv:api-ref]
deps = {[testenv:docs]deps}
commands =
rm -rf api-ref/build
sphinx-build -W -b html -d api-ref/build/doctrees api-ref/source api-ref/build/html
allowlist_externals = rm
[testenv:releasenotes]
deps = {[testenv:docs]deps}
commands =
sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
[testenv:cover]
setenv =
PYTHON=coverage run --source tacker --parallel-mode
commands =
stestr run {posargs}
coverage combine
coverage html -d cover
coverage xml -o cover/coverage.xml
[testenv:venv]
commands = {posargs}
[flake8]
# E128 continuation line under-indented for visual indent
# N320 log messages does not translate
# W503 line break before binary operator
# W504 line break after binary operator
ignore = E128,N320,W503,W504
show-source = true
builtins = _
exclude = .venv,.git,.tox,dist,doc,*lib/python*,*egg,build,tools,.ropeproject
[hacking]
import_exceptions = tacker._i18n
[flake8:local-plugins]
extension =
N320 = checks:validate_log_translations
T301 = checks:no_log_warn
paths = ./tacker/hacking
[testenv:config-gen]
commands =
oslo-config-generator --config-file=etc/config-generator.conf
[testenv:genpolicy]
commands =
oslopolicy-sample-generator --config-file=etc/tacker-policy-generator.conf
[testenv:bindep]
# Do not install any requirements. We want this to be fast and work even if
# system dependencies are missing, since it's used to tell you what system
# dependencies are missing! This also means that bindep must be installed
# separately, outside of the requirements files, and develop mode disabled
# explicitly to avoid unnecessarily installing the checked-out repo too (this
# further relies on "tox.skipsdist = True" above).
deps = bindep
commands = bindep test