Clean up python3 test and split networking into a job

We want to run with python3 always with python2 being the exception.

Update the functional tests to be python3 by default with a
python2 job to check compat.

Remove python3.5 jobs, since that's covered by python3.6 and the
differences between 3.5 and 3.6 are covered by also having 2.7 in the
gate.

Similarly, make the tips jobs python 3.6 only because they are jobs that
aim to ensure interactions between openstacksdk and keystoneauth and
os-client-config and shade are correct at the unit test level. The
individual unit tests should catch actual python 2.7 issues.

Remove cover jobs because we historically haven't cared about the output
and they take up test nodes. In general it's not that big of a deal, but
we tend to be patch-heavy around here, so it feels extravagant to run a
job we don't actually care about the output of.

Split advanced networking services into a job

We're hitting timeouts like crazy- maybe we're just running low on
resources. Split octavia and designate into their own job. Turn
swift off in that job.

Skip sdk layer dns functional tests when designate is not present. We
should refactor these to deal with both cases.

Change-Id: Ica5a47cc200c8abff1d20af9883c5192fcbb95e1
This commit is contained in:
Monty Taylor 2018-09-22 06:18:26 -05:00
parent 6432c42778
commit 6befbbe76c
No known key found for this signature in database
GPG Key ID: 7BAE94BC7141A594
3 changed files with 51 additions and 61 deletions

View File

@ -1,23 +1,8 @@
- job: - job:
name: openstacksdk-tox-py27-tips name: openstacksdk-tox-py36-tips
parent: openstack-tox-py27 parent: openstack-tox-py36
description: | description: |
Run tox python 27 unittests against master of important libs Run tox python 36 unittests against master of important libs
vars:
tox_install_siblings: true
# openstacksdk in required-projects so that os-client-config
# and keystoneauth can add the job as well
required-projects:
- openstack-infra/shade
- openstack/keystoneauth
- openstack/openstacksdk
- openstack/os-client-config
- job:
name: openstacksdk-tox-py35-tips
parent: openstack-tox-py35
description: |
Run tox python 35 unittests against master of important libs
vars: vars:
tox_install_siblings: true tox_install_siblings: true
# openstacksdk in required-projects so that osc and keystoneauth # openstacksdk in required-projects so that osc and keystoneauth
@ -32,12 +17,10 @@
name: openstacksdk-tox-tips name: openstacksdk-tox-tips
check: check:
jobs: jobs:
- openstacksdk-tox-py27-tips - openstacksdk-tox-py36-tips
- openstacksdk-tox-py35-tips
gate: gate:
jobs: jobs:
- openstacksdk-tox-py27-tips - openstacksdk-tox-py36-tips
- openstacksdk-tox-py35-tips
- job: - job:
name: openstacksdk-functional-devstack-minimum name: openstacksdk-functional-devstack-minimum
@ -79,24 +62,14 @@
parent: openstacksdk-functional-devstack-minimum parent: openstacksdk-functional-devstack-minimum
description: | description: |
Base job for devstack-based functional tests Base job for devstack-based functional tests
required-projects:
- name: openstack/heat
- name: openstack/swift
vars: vars:
devstack_plugins:
neutron: https://git.openstack.org/openstack/neutron
devstack_local_conf: devstack_local_conf:
post-config: post-config:
$CINDER_CONF: $CINDER_CONF:
DEFAULT: DEFAULT:
osapi_max_limit: 6 osapi_max_limit: 6
devstack_services:
s-account: true
s-container: true
s-object: true
s-proxy: true
devstack_plugins:
heat: https://git.openstack.org/openstack/heat
tox_environment:
OPENSTACKSDK_HAS_HEAT: 1
- job: - job:
name: openstacksdk-functional-devstack-legacy name: openstacksdk-functional-devstack-legacy
@ -120,11 +93,29 @@
description: | description: |
Run openstacksdk functional tests against a master devstack Run openstacksdk functional tests against a master devstack
required-projects: required-projects:
- openstack/designate - openstack/heat
- openstack/octavia
vars: vars:
devstack_localrc: devstack_localrc:
DISABLE_AMP_IMAGE_BUILD: true DISABLE_AMP_IMAGE_BUILD: true
Q_SERVICE_PLUGIN_CLASSES: qos,trunk
devstack_plugins:
heat: https://git.openstack.org/openstack/heat
tox_environment:
OPENSTACKSDK_HAS_HEAT: 1
devstack_services:
neutron-qos: true
neutron-trunk: true
- job:
name: openstacksdk-functional-devstack-networking
parent: openstacksdk-functional-devstack
description: |
Run openstacksdk functional tests against a devstack with advanced
networking services enabled.
required-projects:
- openstack/designate
- openstack/octavia
vars:
devstack_local_conf: devstack_local_conf:
post-config: post-config:
$OCTAVIA_CONF: $OCTAVIA_CONF:
@ -138,7 +129,6 @@
cert_manager: local_cert_manager cert_manager: local_cert_manager
devstack_plugins: devstack_plugins:
designate: https://git.openstack.org/openstack/designate designate: https://git.openstack.org/openstack/designate
neutron: https://git.openstack.org/openstack/neutron
octavia: https://git.openstack.org/openstack/octavia octavia: https://git.openstack.org/openstack/octavia
devstack_services: devstack_services:
designate: true designate: true
@ -148,20 +138,26 @@
o-hm: true o-hm: true
o-hk: true o-hk: true
neutron-dns: true neutron-dns: true
neutron-qos: true s-account: false
neutron-trunk: true s-container: false
s-object: false
s-proxy: false
h-eng: false
h-api: false
h-api-cfn: false
tox_environment: tox_environment:
OPENSTACKSDK_HAS_DESIGNATE: 1 OPENSTACKSDK_HAS_DESIGNATE: 1
OPENSTACKSDK_HAS_OCTAVIA: 1 OPENSTACKSDK_HAS_SWIFT: 0
OPENSTACKSDK_HAS_HEAT: 0
- job: - job:
name: openstacksdk-functional-devstack-python3 name: openstacksdk-functional-devstack-python2
parent: openstacksdk-functional-devstack parent: openstacksdk-functional-devstack
description: | description: |
Run openstacksdk functional tests using python3 against a master devstack Run openstacksdk functional tests using python2 against a master devstack
vars: vars:
tox_environment: tox_environment:
OPENSTACKSDK_TOX_PYTHON: python3 OPENSTACKSDK_TOX_PYTHON: python2
- job: - job:
name: openstacksdk-functional-devstack-tips name: openstacksdk-functional-devstack-tips
@ -178,14 +174,14 @@
tox_install_siblings: true tox_install_siblings: true
- job: - job:
name: openstacksdk-functional-devstack-tips-python3 name: openstacksdk-functional-devstack-tips-python2
parent: openstacksdk-functional-devstack-tips parent: openstacksdk-functional-devstack-tips
description: | description: |
Run openstacksdk functional tests with tips of library dependencies using Run openstacksdk functional tests with tips of library dependencies using
python3 against a master devstack. python2 against a master devstack.
vars: vars:
tox_environment: tox_environment:
OPENSTACKSDK_TOX_PYTHON: python3 OPENSTACKSDK_TOX_PYTHON: python2
- job: - job:
name: openstacksdk-functional-devstack-magnum name: openstacksdk-functional-devstack-magnum
@ -342,19 +338,17 @@
check: check:
jobs: jobs:
- openstacksdk-functional-devstack-tips - openstacksdk-functional-devstack-tips
- openstacksdk-functional-devstack-tips-python3 - openstacksdk-functional-devstack-tips-python2
gate: gate:
jobs: jobs:
- openstacksdk-functional-devstack-tips - openstacksdk-functional-devstack-tips
- openstacksdk-functional-devstack-tips-python3 - openstacksdk-functional-devstack-tips-python2
- project: - project:
templates: templates:
- check-requirements - check-requirements
- openstack-cover-jobs
- openstack-lower-constraints-jobs - openstack-lower-constraints-jobs
- openstack-python-jobs - openstack-python-jobs
- openstack-python35-jobs
- openstack-python36-jobs - openstack-python36-jobs
- openstacksdk-functional-tips - openstacksdk-functional-tips
- openstacksdk-tox-tips - openstacksdk-tox-tips
@ -371,12 +365,13 @@
- openstacksdk-ansible-stable-2.6-functional-devstack: - openstacksdk-ansible-stable-2.6-functional-devstack:
voting: false voting: false
- openstacksdk-functional-devstack - openstacksdk-functional-devstack
- openstacksdk-functional-devstack-networking
- openstacksdk-functional-devstack-senlin - openstacksdk-functional-devstack-senlin
- openstacksdk-functional-devstack-magnum: - openstacksdk-functional-devstack-magnum:
voting: false voting: false
- openstacksdk-functional-devstack-ironic: - openstacksdk-functional-devstack-ironic:
voting: false voting: false
- openstacksdk-functional-devstack-python3 - openstacksdk-functional-devstack-python2
- osc-functional-devstack-tips: - osc-functional-devstack-tips:
voting: false voting: false
- neutron-grenade - neutron-grenade
@ -385,7 +380,8 @@
gate: gate:
jobs: jobs:
- openstacksdk-functional-devstack - openstacksdk-functional-devstack
- openstacksdk-functional-devstack-python3 - openstacksdk-functional-devstack-python2
- openstacksdk-functional-devstack-networking
- openstacksdk-functional-devstack-senlin - openstacksdk-functional-devstack-senlin
- neutron-grenade - neutron-grenade
- nodepool-functional-py35-src - nodepool-functional-py35-src

View File

@ -36,6 +36,8 @@ class TestFloatingIP(base.BaseFunctionalTest):
def setUp(self): def setUp(self):
super(TestFloatingIP, self).setUp() super(TestFloatingIP, self).setUp()
if not self.conn.has_service('dns'):
self.skipTest('dns service not supported by cloud')
self.TIMEOUT_SCALING_FACTOR = 1.5 self.TIMEOUT_SCALING_FACTOR = 1.5
self.ROT_NAME = self.getUniqueString() self.ROT_NAME = self.getUniqueString()
self.EXT_NET_NAME = self.getUniqueString() self.EXT_NET_NAME = self.getUniqueString()

10
tox.ini
View File

@ -7,6 +7,7 @@ skipsdist = True
usedevelop = True usedevelop = True
install_command = pip install {opts} {packages} install_command = pip install {opts} {packages}
passenv = OS_* OPENSTACKSDK_* passenv = OS_* OPENSTACKSDK_*
basepython = {env:OPENSTACKSDK_TOX_PYTHON:python3}
setenv = setenv =
VIRTUAL_ENV={envdir} VIRTUAL_ENV={envdir}
LANG=en_US.UTF-8 LANG=en_US.UTF-8
@ -23,12 +24,10 @@ commands = stestr run {posargs}
stestr slowest stestr slowest
[testenv:examples] [testenv:examples]
basepython = python3
commands = stestr --test-path ./openstack/tests/examples run {posargs} commands = stestr --test-path ./openstack/tests/examples run {posargs}
stestr slowest stestr slowest
[testenv:functional] [testenv:functional]
basepython = {env:OPENSTACKSDK_TOX_PYTHON:python2}
setenv = setenv =
{[testenv]setenv} {[testenv]setenv}
OS_TEST_TIMEOUT=90 OS_TEST_TIMEOUT=90
@ -36,7 +35,6 @@ commands = stestr --test-path ./openstack/tests/functional/{env:OPENSTACKSDK_TES
stestr slowest stestr slowest
[testenv:pep8] [testenv:pep8]
basepython = python3
usedevelop = False usedevelop = False
skip_install = True skip_install = True
deps = deps =
@ -51,18 +49,15 @@ commands =
flake8 flake8
[testenv:venv] [testenv:venv]
basepython = python3
commands = {posargs} commands = {posargs}
[testenv:debug] [testenv:debug]
basepython = python3
whitelist_externals = find whitelist_externals = find
commands = commands =
find . -type f -name "*.pyc" -delete find . -type f -name "*.pyc" -delete
oslo_debug_helper {posargs} oslo_debug_helper {posargs}
[testenv:cover] [testenv:cover]
basepython = python3
setenv = setenv =
{[testenv]setenv} {[testenv]setenv}
PYTHON=coverage run --source openstack --parallel-mode PYTHON=coverage run --source openstack --parallel-mode
@ -82,7 +77,6 @@ deps =
commands = {toxinidir}/extras/run-ansible-tests.sh -e {envdir} {posargs} commands = {toxinidir}/extras/run-ansible-tests.sh -e {envdir} {posargs}
[testenv:docs] [testenv:docs]
basepython = python3
deps = deps =
-c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt} -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt}
-r{toxinidir}/requirements.txt -r{toxinidir}/requirements.txt
@ -90,7 +84,6 @@ deps =
commands = sphinx-build -W -d doc/build/doctrees -b html doc/source/ doc/build/html commands = sphinx-build -W -d doc/build/doctrees -b html doc/source/ doc/build/html
[testenv:releasenotes] [testenv:releasenotes]
basepython = python3
usedevelop = False usedevelop = False
skip_install = True skip_install = True
commands = sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html commands = sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
@ -112,7 +105,6 @@ exclude=.venv,.git,.tox,dist,doc,*lib/python*,*egg,build
extensions = .rst, .yaml extensions = .rst, .yaml
[testenv:lower-constraints] [testenv:lower-constraints]
basepython = python3
deps = deps =
-c{toxinidir}/lower-constraints.txt -c{toxinidir}/lower-constraints.txt
-r{toxinidir}/test-requirements.txt -r{toxinidir}/test-requirements.txt