[stable-only] Cap stestr for python 2 and unblock gate

This is a combination of 3 commits that are all needed to unblock gate:

1. Move testing to py36

The base infra images no longer have python 3.5 available and are
all failing. We should be testing on py36 now anyway since that is
the minimum supported version for Train.

2. Stop redis-server before running tests

Just installing redis-server on Ubuntu Bionic starts the service,
which means when we try to start one via pifpaf it fails due to the
port already being in use.

This change adds a pre-run playbook that stops the redis-server
service so ours can run successfully.

3. [stable-only] Cap stestr for python 2

stestr dropped python 2 support with version 3.0.0 and tooz does not
use constraints from openstack/requirements, so test-requirements.txt
is updated to use stestr<3.0.0 in case of python 2.

Since tooz do not consume upper-constraints there is no need for
requirement check job either so it is removed, too.

Conflicts:
    tox.ini
    test-requirements.txt

NOTE(elod.illes):
  * tox.ini conflict is due to py37 is not yet added as tox target in
    Stein.
  * test-requirments.txt is not present in Stein, setup.cfg is used
    instead.

First two commit was squashed in train (original patch's change id is
I3f7f7ea9069d8c890a82f31ad14c9663e98c09dc and cherry picked from commit
8207427fffc72547387369ce7ba2696a86bf7626).

Closes-Bug: 1828610
Change-Id: I7a75be587efc2098e919f1ea34f9ffc357203dfb
(cherry picked from commit 13a6dffa32789ac91b724977ed1d73375baf0824)
This commit is contained in:
Ben Nemec 2019-05-09 20:20:13 +00:00 committed by Elod Illes
parent 6204beeb03
commit 4d24f41e47
4 changed files with 73 additions and 54 deletions

View File

@ -1,11 +1,9 @@
- project:
templates:
- check-requirements
- lib-forward-testing
- lib-forward-testing-python3
- openstack-cover-jobs
- openstack-python-jobs
- openstack-python35-jobs
- openstack-python36-jobs
- periodic-stable-jobs
- publish-openstack-docs-pti
@ -13,47 +11,47 @@
check:
jobs:
- tooz-tox-py27-etcd
- tooz-tox-py35-etcd
- tooz-tox-py36-etcd
- tooz-tox-py27-etcd3
- tooz-tox-py35-etcd3
- tooz-tox-py36-etcd3
- tooz-tox-py27-etcd3gw
- tooz-tox-py35-etcd3gw
- tooz-tox-py36-etcd3gw
- tooz-tox-py27-zookeeper
- tooz-tox-py35-zookeeper
- tooz-tox-py36-zookeeper
- tooz-tox-py27-redis
- tooz-tox-py35-redis
- tooz-tox-py36-redis
- tooz-tox-py27-sentinel
- tooz-tox-py35-sentinel
- tooz-tox-py36-sentinel
- tooz-tox-py27-memcached
- tooz-tox-py35-memcached
- tooz-tox-py36-memcached
- tooz-tox-py27-postgresql
- tooz-tox-py35-postgresql
- tooz-tox-py36-postgresql
- tooz-tox-py27-mysql
- tooz-tox-py35-mysql
- tooz-tox-py36-mysql
- tooz-tox-py27-consul
- tooz-tox-py35-consul
- tooz-tox-py36-consul
gate:
jobs:
- tooz-tox-py27-etcd
- tooz-tox-py35-etcd
- tooz-tox-py36-etcd
- tooz-tox-py27-etcd3
- tooz-tox-py35-etcd3
- tooz-tox-py36-etcd3
- tooz-tox-py27-etcd3gw
- tooz-tox-py35-etcd3gw
- tooz-tox-py36-etcd3gw
- tooz-tox-py27-zookeeper
- tooz-tox-py35-zookeeper
- tooz-tox-py36-zookeeper
- tooz-tox-py27-redis
- tooz-tox-py35-redis
- tooz-tox-py36-redis
- tooz-tox-py27-sentinel
- tooz-tox-py35-sentinel
- tooz-tox-py36-sentinel
- tooz-tox-py27-memcached
- tooz-tox-py35-memcached
- tooz-tox-py36-memcached
- tooz-tox-py27-postgresql
- tooz-tox-py35-postgresql
- tooz-tox-py36-postgresql
- tooz-tox-py27-mysql
- tooz-tox-py35-mysql
- tooz-tox-py36-mysql
- tooz-tox-py27-consul
- tooz-tox-py35-consul
- tooz-tox-py36-consul
- job:
name: tooz-tox-py27-consul
@ -118,6 +116,8 @@
Run tests using ``py27-redis`` environment.
vars:
tox_envlist: py27-redis
pre-run:
- playbooks/stop-redis.yaml
- job:
name: tooz-tox-py27-sentinel
@ -126,6 +126,8 @@
Run tests using ``py27-sentinel`` environment.
vars:
tox_envlist: py27-sentinel
pre-run:
- playbooks/stop-redis.yaml
- job:
name: tooz-tox-py27-zookeeper
@ -136,81 +138,85 @@
tox_envlist: py27-zookeeper
- job:
name: tooz-tox-py35-consul
name: tooz-tox-py36-consul
parent: openstack-tox
description: |
Run tests using ``py35-consul`` environment.
Run tests using ``py36-consul`` environment.
vars:
tox_envlist: py35-consul
tox_envlist: py36-consul
- job:
name: tooz-tox-py35-etcd
name: tooz-tox-py36-etcd
parent: openstack-tox
description: |
Run tests using ``py35-etcd`` environment.
Run tests using ``py36-etcd`` environment.
vars:
tox_envlist: py35-etcd
tox_envlist: py36-etcd
- job:
name: tooz-tox-py35-etcd3
name: tooz-tox-py36-etcd3
parent: openstack-tox
description: |
Run tests using ``py35-etcd3`` environment.
Run tests using ``py36-etcd3`` environment.
vars:
tox_envlist: py35-etcd3
tox_envlist: py36-etcd3
- job:
name: tooz-tox-py35-etcd3gw
name: tooz-tox-py36-etcd3gw
parent: openstack-tox
description: |
Run tests using ``py35-etcd3gw`` environment.
Run tests using ``py36-etcd3gw`` environment.
vars:
tox_envlist: py35-etcd3gw
tox_envlist: py36-etcd3gw
- job:
name: tooz-tox-py35-memcached
name: tooz-tox-py36-memcached
parent: openstack-tox
description: |
Run tests using ``py35-memcached`` environment.
Run tests using ``py36-memcached`` environment.
vars:
tox_envlist: py35-memcached
tox_envlist: py36-memcached
- job:
name: tooz-tox-py35-mysql
name: tooz-tox-py36-mysql
parent: openstack-tox
description: |
Run tests using ``py35-mysql`` environment.
Run tests using ``py36-mysql`` environment.
vars:
tox_envlist: py35-mysql
tox_envlist: py36-mysql
- job:
name: tooz-tox-py35-postgresql
name: tooz-tox-py36-postgresql
parent: openstack-tox
description: |
Run tests using ``py35-postgresql`` environment.
Run tests using ``py36-postgresql`` environment.
vars:
tox_envlist: py35-postgresql
tox_envlist: py36-postgresql
- job:
name: tooz-tox-py35-redis
name: tooz-tox-py36-redis
parent: openstack-tox
description: |
Run tests using ``py35-redis`` environment.
Run tests using ``py36-redis`` environment.
vars:
tox_envlist: py35-redis
tox_envlist: py36-redis
pre-run:
- playbooks/stop-redis.yaml
- job:
name: tooz-tox-py35-sentinel
name: tooz-tox-py36-sentinel
parent: openstack-tox
description: |
Run tests using ``py35-sentinel`` environment.
Run tests using ``py36-sentinel`` environment.
vars:
tox_envlist: py35-sentinel
tox_envlist: py36-sentinel
pre-run:
- playbooks/stop-redis.yaml
- job:
name: tooz-tox-py35-zookeeper
name: tooz-tox-py36-zookeeper
parent: openstack-tox
description: |
Run tests using ``py35-zookeeper`` environment.
Run tests using ``py36-zookeeper`` environment.
vars:
tox_envlist: py35-zookeeper
tox_envlist: py36-zookeeper

12
playbooks/stop-redis.yaml Normal file
View File

@ -0,0 +1,12 @@
# On Ubuntu, just installing the redis-server package starts Redis. As a
# result, when we try to start one via pifpaf it fails because the port
# is already in use.
# See https://bugs.launchpad.net/python-tooz/+bug/1828610
- hosts: all
name: Stop Redis server before running tests
tasks:
- name: Stop Redis
service:
name: redis-server
state: stopped
become: true

View File

@ -70,7 +70,8 @@ test =
fixtures>=3.0.0 # Apache-2.0/BSD
pifpaf>=0.10.0 # Apache-2.0
os-testr>=0.8.0 # Apache-2.0
stestr>=2.0.0
stestr>=2.0.0,<3.0.0;python_version<'3.0'
stestr>=2.0.0;python_version>='3.0'
doc =
sphinx>=1.6.2 # BSD
openstackdocstheme>=1.11.0 # Apache-2.0

View File

@ -1,6 +1,6 @@
[tox]
minversion = 1.8
envlist = py27,py35,py{27,35}-{zookeeper,redis,sentinel,memcached,postgresql,mysql,consul,etcd,etcd3,etcd3gw},pep8
envlist = py27,py36,py{27,36}-{zookeeper,redis,sentinel,memcached,postgresql,mysql,consul,etcd,etcd3,etcd3gw},pep8
[testenv]
# We need to install a bit more than just `test' because those drivers have