Drop python 2.7 support and testing

OpenStack is dropping the py2.7 support in ussuri cycle.

Ironic is ready with python 3 and ok to drop the
python 2.7 support.

Complete discussion & schedule can be found in
- http://lists.openstack.org/pipermail/openstack-discuss/2019-October/010142.html
- https://etherpad.openstack.org/p/drop-python2-support

Ussuri Communtiy-wide goal - https://review.opendev.org/#/c/691178/

Change-Id: I3cc36d79ffabf31607d503dada9e7512c639647c
This commit is contained in:
Iury Gregory Melo Ferreira 2019-11-20 15:52:10 +01:00
parent 516f04caf7
commit b869b46c63
8 changed files with 10 additions and 59 deletions

View File

@ -793,10 +793,7 @@ function install_virtualbmc {
git_clone_by_name "virtualbmc"
setup_dev_lib "virtualbmc"
else
# pyghmi is still not compatible with python3
# hence we need to install virtualbmc in python2
# environment else IPMI calls will fail at the gate.
USE_PYTHON3=False pip_install_gr "virtualbmc"
pip_install_gr "virtualbmc"
fi
local cmd

View File

@ -2,7 +2,6 @@ mock>=3.0.0 # BSD
openstackdocstheme>=1.20.0 # Apache-2.0
os-api-ref>=1.4.0 # Apache-2.0
reno>=2.5.0 # Apache-2.0
sphinx!=1.6.6,!=1.6.7,>=1.6.2,<2.0.0;python_version=='2.7' # BSD
sphinx!=1.6.6,!=1.6.7,!=2.1.0,>=1.6.2;python_version>='3.4' # BSD
sphinxcontrib-apidoc>=0.2.0 # BSD
sphinxcontrib-pecanwsme>=0.10.0 # Apache-2.0

View File

@ -15,18 +15,12 @@ The description of each jobs that runs in the CI when you submit a patch for
* - Job name
- Description
* - ironic-tox-unit-with-driver-libs
- Runs Ironic unit tests with the driver dependencies installed under
Python2
* - ironic-tox-unit-with-driver-libs-python3
- Runs Ironic unit tests with the driver dependencies installed under
Python3
* - ironic-standalone
- Deploys Ironic in standalone mode and runs tempest tests that match
the regex `ironic_standalone`.
* - ironic-tempest-functional-python2
- Deploys Ironic in standalone mode and runs tempest functional tests
that matches the regex `ironic_tempest_plugin.tests.api` under Python2
* - ironic-tempest-functional-python3
- Deploys Ironic in standalone mode and runs tempest functional tests
that matches the regex `ironic_tempest_plugin.tests.api` under Python3

View File

@ -0,0 +1,6 @@
---
upgrade:
- |
Python 2.7 support has been dropped. Last release of Ironic
to support Python 2.7 is OpenStack Train. The minimum version of Python now
supported by Ironic is Python 3.6.

View File

@ -13,8 +13,6 @@ classifier =
License :: OSI Approved :: Apache Software License
Operating System :: POSIX :: Linux
Programming Language :: Python
Programming Language :: Python :: 2
Programming Language :: Python :: 2.7
Programming Language :: Python :: 3
Programming Language :: Python :: 3.6
Programming Language :: Python :: 3.7

22
tox.ini
View File

@ -1,11 +1,12 @@
[tox]
minversion = 2.0
skipsdist = True
envlist = py3,py27,pep8
envlist = py3,pep8
[testenv]
usedevelop = True
install_command = pip install -U {opts} {packages}
basepython = python3
setenv = VIRTUAL_ENV={envdir}
PYTHONDONTWRITEBYTECODE = 1
LANGUAGE=en_US
@ -20,24 +21,16 @@ commands =
stestr run {posargs}
passenv = http_proxy HTTP_PROXY https_proxy HTTPS_PROXY no_proxy NO_PROXY
[testenv:unit-with-driver-libs]
basepython = python2
deps = {[testenv]deps}
-r{toxinidir}/driver-requirements.txt
[testenv:unit-with-driver-libs-python3]
basepython = python3
deps = {[testenv]deps}
-r{toxinidir}/driver-requirements.txt
[testenv:genstates]
basepython = python3
deps = {[testenv]deps}
pydot2
commands = {toxinidir}/tools/states_to_dot.py -f {toxinidir}/doc/source/images/states.svg --format svg
[testenv:pep8]
basepython = python3
whitelist_externals = bash
commands =
bash tools/flake8wrap.sh {posargs}
@ -50,7 +43,6 @@ commands =
{toxinidir}/tools/check-releasenotes.py
[testenv:cover]
basepython = python3
setenv = VIRTUAL_ENV={envdir}
LANGUAGE=en_US
PYTHON=coverage run --source ironic --omit='*tests*' --parallel-mode
@ -62,25 +54,21 @@ commands =
coverage html -d ./cover --omit='*tests*'
[testenv:genconfig]
basepython = python3
sitepackages = False
envdir = {toxworkdir}/venv
commands =
oslo-config-generator --config-file=tools/config/ironic-config-generator.conf
[testenv:genpolicy]
basepython = python3
sitepackages = False
envdir = {toxworkdir}/venv
commands =
oslopolicy-sample-generator --config-file=tools/policy/ironic-policy-generator.conf
[testenv:debug]
basepython = python3
commands = oslo_debug_helper -t ironic/tests/unit {posargs}
[testenv:docs]
basepython = python3
deps =
-c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
-r{toxinidir}/requirements.txt
@ -89,7 +77,6 @@ deps =
commands = sphinx-build -b html -W doc/source doc/build/html
[testenv:pdf-docs]
basepython = python3
whitelist_externals = make
deps = {[testenv:docs]deps}
commands =
@ -98,7 +85,6 @@ commands =
[testenv:api-ref]
basepython = python3
deps =
-c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
-r{toxinidir}/requirements.txt
@ -109,7 +95,6 @@ commands =
sphinx-build -W -b html -d api-ref/build/doctrees api-ref/source api-ref/build/html
[testenv:releasenotes]
basepython = python3
deps =
-c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
-r{toxinidir}/requirements.txt
@ -118,7 +103,6 @@ commands =
sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
[testenv:venv]
basepython = python3
setenv = PYTHONHASHSEED=0
deps =
-c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
@ -150,14 +134,12 @@ local-check-factory = ironic.hacking.checks.factory
import_exceptions = testtools.matchers, ironic.common.i18n
[testenv:lower-constraints]
basepython = python3
deps =
-c{toxinidir}/lower-constraints.txt
-r{toxinidir}/test-requirements.txt
-r{toxinidir}/requirements.txt
[testenv:bandit]
basepython = python3
deps = -r{toxinidir}/test-requirements.txt
commands = bandit -r ironic -x tests -n5 -ll -c tools/bandit.yml

View File

@ -53,7 +53,6 @@
Q_AGENT: openvswitch
Q_ML2_TENANT_NETWORK_TYPE: vxlan
USE_PYTHON3: True
devstack_plugins:
ironic: https://opendev.org/openstack/ironic
zuul_copy_output:
@ -318,18 +317,10 @@
neutron-metadata-agent: False
neutron-metering: False
- job:
name: ironic-tempest-functional-python2
description: ironic-tempest-functional-python2
parent: ironic-tempest-functional-python3
vars:
devstack_localrc:
USE_PYTHON3: False
- job:
name: ironic-tempest-ipa-wholedisk-direct-tinyipa-multinode
description: ironic-tempest-ipa-wholedisk-direct-tinyipa-multinode
parent: tempest-multinode-full
parent: tempest-multinode-full-py3
pre-run: playbooks/ci-workarounds/pre.yaml
timeout: 10800
required-projects:
@ -408,7 +399,6 @@
# ephemeral partition on such nodes
LIBVIRT_STORAGE_POOL_PATH: /opt/libvirt/images
USE_PYTHON3: True
devstack_plugins:
ironic: https://opendev.org/openstack/ironic
networking-generic-switch: https://opendev.org/openstack/networking-generic-switch
@ -474,7 +464,6 @@
Q_ML2_TENANT_NETWORK_TYPE: vlan
VIRT_DRIVER: ironic
PUBLIC_BRIDGE: br-infra
USE_PYTHON3: True
devstack_services:
c-api: False
c-bak: False
@ -485,14 +474,6 @@
q-agt: True
n-cpu: True
- job:
name: ironic-tox-unit-with-driver-libs
parent: tox
description: |
Run unit tests with driver dependencies installed.
vars:
tox_envlist: unit-with-driver-libs
- job:
name: ironic-tox-unit-with-driver-libs-python3
parent: tox
@ -518,7 +499,6 @@
parent: ironic-base
vars:
devstack_localrc:
USE_PYTHON3: True
IRONIC_ENABLED_HARDWARE_TYPES: ipmi
IRONIC_ENABLED_BOOT_INTERFACES: pxe
IRONIC_VM_SPECS_RAM: 512

View File

@ -3,17 +3,14 @@
- check-requirements
- openstack-cover-jobs
- openstack-lower-constraints-jobs
- openstack-python-jobs
- openstack-python3-ussuri-jobs
- periodic-stable-jobs
- publish-openstack-docs-pti
- release-notes-jobs-python3
check:
jobs:
- ironic-tox-unit-with-driver-libs
- ironic-tox-unit-with-driver-libs-python3
- ironic-standalone
- ironic-tempest-functional-python2
- ironic-tempest-functional-python3
- ironic-grenade-dsvm
# Temporary disable voting because of end of cycle CI instability.
@ -47,10 +44,8 @@
gate:
queue: ironic
jobs:
- ironic-tox-unit-with-driver-libs
- ironic-tox-unit-with-driver-libs-python3
- ironic-standalone
- ironic-tempest-functional-python2
- ironic-tempest-functional-python3
- ironic-grenade-dsvm
# removing from voting due to end of cycle gate instability.