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

View File

@ -36,6 +36,8 @@ class TestFloatingIP(base.BaseFunctionalTest):
def setUp(self):
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.ROT_NAME = self.getUniqueString()
self.EXT_NET_NAME = self.getUniqueString()

10
tox.ini
View File

@ -7,6 +7,7 @@ skipsdist = True
usedevelop = True
install_command = pip install {opts} {packages}
passenv = OS_* OPENSTACKSDK_*
basepython = {env:OPENSTACKSDK_TOX_PYTHON:python3}
setenv =
VIRTUAL_ENV={envdir}
LANG=en_US.UTF-8
@ -23,12 +24,10 @@ commands = stestr run {posargs}
stestr slowest
[testenv:examples]
basepython = python3
commands = stestr --test-path ./openstack/tests/examples run {posargs}
stestr slowest
[testenv:functional]
basepython = {env:OPENSTACKSDK_TOX_PYTHON:python2}
setenv =
{[testenv]setenv}
OS_TEST_TIMEOUT=90
@ -36,7 +35,6 @@ commands = stestr --test-path ./openstack/tests/functional/{env:OPENSTACKSDK_TES
stestr slowest
[testenv:pep8]
basepython = python3
usedevelop = False
skip_install = True
deps =
@ -51,18 +49,15 @@ commands =
flake8
[testenv:venv]
basepython = python3
commands = {posargs}
[testenv:debug]
basepython = python3
whitelist_externals = find
commands =
find . -type f -name "*.pyc" -delete
oslo_debug_helper {posargs}
[testenv:cover]
basepython = python3
setenv =
{[testenv]setenv}
PYTHON=coverage run --source openstack --parallel-mode
@ -82,7 +77,6 @@ deps =
commands = {toxinidir}/extras/run-ansible-tests.sh -e {envdir} {posargs}
[testenv:docs]
basepython = python3
deps =
-c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.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
[testenv:releasenotes]
basepython = python3
usedevelop = False
skip_install = True
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
[testenv:lower-constraints]
basepython = python3
deps =
-c{toxinidir}/lower-constraints.txt
-r{toxinidir}/test-requirements.txt