From 6befbbe76cc9afedcefb032de9d67b26ce04cd0d Mon Sep 17 00:00:00 2001 From: Monty Taylor Date: Sat, 22 Sep 2018 06:18:26 -0500 Subject: [PATCH] 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 --- .zuul.yaml | 100 +++++++++--------- .../functional/network/v2/test_floating_ip.py | 2 + tox.ini | 10 +- 3 files changed, 51 insertions(+), 61 deletions(-) diff --git a/.zuul.yaml b/.zuul.yaml index 9b0739afd..779e97f80 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -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 diff --git a/openstack/tests/functional/network/v2/test_floating_ip.py b/openstack/tests/functional/network/v2/test_floating_ip.py index 1a7d19273..69e6e9ed1 100644 --- a/openstack/tests/functional/network/v2/test_floating_ip.py +++ b/openstack/tests/functional/network/v2/test_floating_ip.py @@ -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() diff --git a/tox.ini b/tox.ini index af3f6ba9f..2ed269a94 100644 --- a/tox.ini +++ b/tox.ini @@ -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