Update zuul jobs from python2 to python3

- removed the old and unused devstack job.
 - needed to update pylint to python3
 - needed to enable bindep to install the packages
required for installing mysqlclient

No test plan is provided, because the purpose of this
change is to determine if zuul is broken for this repo,
and then fix it.

Story: 2010531
Task: 47313

Signed-off-by: Al Bailey <al.bailey@windriver.com>
Change-Id: I6655792d692644f2c6320b0ef1d66283e17d7bb3
This commit is contained in:
Al Bailey 2023-02-07 18:28:11 +00:00
parent da832e0ad6
commit 88b1d3b5c6
4 changed files with 83 additions and 190 deletions

View File

@ -19,50 +19,12 @@
jobs: jobs:
- stx-ha-upload-git-mirror - stx-ha-upload-git-mirror
- job:
name: flock-devstack-ha
parent: flock-devstack-base-min
required-projects:
- openstack/barbican
- openstack/python-barbicanclient
- starlingx/config
- starlingx/fault
- starlingx/integ
- starlingx/metal
- starlingx/nfv
- starlingx/update
vars:
tox_envlist: functional
devstack_services:
# StarlingX services
fm-common: true
fm-api: true
sm-common: true
sm-db: true
sm-daemon: true
sm-client: true
sm-tools: true
sm-api: true
sm-eru: true
mysql: false
postgresql: true
tls-proxy: false
devstack_plugins:
barbican: https://opendev.org/openstack/barbican
config: https://opendev.org/starlingx/config
fault: https://opendev.org/starlingx/fault
ha: https://opendev.org/starlingx/ha
integ: https://opendev.org/starlingx/integ
metal: https://opendev.org/starlingx/metal
nfv: https://opendev.org/starlingx/nfv
update: https://opendev.org/starlingx/update
- job: - job:
name: ha-tox-pylint name: ha-tox-pylint
parent: tox parent: tox
description: | description: |
Run pylint test for ha in python2.7 Run pylint test for ha in python3
nodeset: ubuntu-bionic nodeset: debian-bullseye
vars: vars:
tox_envlist: pylint tox_envlist: pylint
- job: - job:

7
bindep.txt Normal file
View File

@ -0,0 +1,7 @@
# This is a cross-platform list tracking distribution packages needed for install and tests;
# see https://docs.openstack.org/infra/bindep/ for additional information.
build-essential [platform:dpkg]
python3-dev [platform:dpkg]
# default-libmysqlclient-dev is debian specific
default-libmysqlclient-dev [platform:debian]

184
pylint.rc
View File

@ -20,138 +20,60 @@ load-plugins=
# Enable the message, report, category or checker with the given id(s). You can # Enable the message, report, category or checker with the given id(s). You can
# either give multiple identifier separated by comma (,) or put this option # either give multiple identifier separated by comma (,) or put this option
# multiple time. # multiple time.
#
# Python3 checker:
#
# E1601: print-statement
# E1602: parameter-unpacking
# E1603: unpacking-in-except
# E1604: old-raise-syntax
# E1605: backtick
# E1606: long-suffix
# E1607: old-ne-operator
# E1608: old-octal-literal
# E1609: import-star-module-level
# E1610: non-ascii-bytes-literal
# E1611: invalid-unicode-literal
# W1601: apply-builtin
# W1602: basestring-builtin
# W1603: buffer-builtin
# W1604: cmp-builtin
# W1605: coerce-builtin
# W1606: execfile-builtin
# W1607: file-builtin
# W1608: long-builtin
# W1609: raw_input-builtin
# W1610: reduce-builtin
# W1611: standarderror-builtin
# W1612: unicode-builtin
# W1613: xrange-builtin
# W1614: coerce-method
# W1615: delslice-method
# W1616: getslice-method
# W1617: setslice-method
# W1618: no-absolute-import
# W1619: old-division
# W1620: dict-iter-method
# W1621: dict-view-method
# W1622: next-method-called
# W1623: metaclass-assignment
# W1624: indexing-exception
# W1625: raising-string
# W1626: reload-builtin
# W1627: oct-method
# W1628: hex-method
# W1629: nonzero-method
# W1630: cmp-method
# W1632: input-builtin
# W1633: round-builtin
# W1634: intern-builtin
# W1635: unichr-builtin
# W1636: map-builtin-not-iterating
# W1637: zip-builtin-not-iterating
# W1638: range-builtin-not-iterating
# W1639: filter-builtin-not-iterating
# W1640: using-cmp-argument
# W1641: eq-without-hash
# W1642: div-method
# W1643: idiv-method
# W1644: rdiv-method
# W1645: exception-message-attribute
# W1646: invalid-str-codec
# W1647: sys-max-int
# W1648: bad-python3-import
# W1649: deprecated-string-function
# W1650: deprecated-str-translate-call
# W1651: deprecated-itertools-function
# W1652: deprecated-types-field
# W1653: next-method-defined
# W1654: dict-items-not-iterating
# W1655: dict-keys-not-iterating
# W1656: dict-values-not-iterating
# W1657: deprecated-operator-function
# W1658: deprecated-urllib-function
# W1659: xreadlines-attribute
# W1660: deprecated-sys-function
# W1661: exception-escape
# W1662: comprehension-escape
enable=E1603,E1609,E1610,E1602,E1606,E1608,E1607,E1605,E1604,E1601,E1611,W1652,
W1651,W1649,W1657,W1660,W1658,W1659,W1623,W1622,W1620,W1621,W1645,W1641,
W1624,W1648,W1625,W1611,W1662,W1661,W1650,W1640,W1630,W1614,W1615,W1642,
W1616,W1628,W1643,W1629,W1627,W1644,W1617,W1601,W1602,W1603,W1604,W1605,
W1654,W1655,W1656,W1619,W1606,W1607,W1639,W1618,W1632,W1634,W1608,W1636,
W1653,W1646,W1638,W1609,W1610,W1626,W1633,W1647,W1635,W1612,W1613,W1637
# Disable the message, report, category or checker with the given id(s). You # Disable the message, report, category or checker with the given id(s). You
# can either give multiple identifier separated by comma (,) or put this option # can either give multiple identifier separated by comma (,) or put this option
# multiple time (only on the command line, not in the configuration file where # multiple time (only on the command line, not in the configuration file where
# it should appear only once). # it should appear only once).
# W0102 dangerous-default-value
# W0107 unnecessary-pass
# W0110 deprecated-lambda
# W0120 useless-else-on-loop
# W0201 attribute-defined-outside-init
# W0212 protected-access
# W0221 arguments-differ
# W0223 abstract-method
# W0231 super-init-not-called
# W0235 useless-super-delegation
# W0402 deprecated-module
# W0403 relative-import
# W0511 fixme
# W0603 global-statement
# W0611 unused-import
# W0612 unused-variable
# W0613 unused-argument
# W0621 redefined-outer-name
# W0622 redefined-builtin
# W0702 bare-except
# W0703 broad except warning
# W1113 keyword-arg-before-vararg
# W1201 logging-not-lazy
# W1401 anomalous-backslash-in-string
# W1618: no-absolute-import
#
# The following are errors which should be fixed
#
# method-hidden (E0202)
# access-member-before-definition (E0203)
# undefined-variable (E0602)
# invalid-all-object (E0604)
# no-name-in-module (E0611)
# raising-bad-type (E0702)
# notimplemented-raised (E0711)
# bad-super-call (E1003)
# no-member (E1101)
# not-callable (E1102)
# too-many-function-args (E1121)
# unsubscriptable-object (E1136)
disable=C, R, disable=C, R,
W0102, W0107, W0110, W0120, W0201, W0212, W0221, W0223, W0231, W0235, W0402, W0403, W0102, # dangerous-default-value
W0511, W0603, W0611, W0612, W0613, W0621, W0622, W0702, W0703, W1113, W1201, W1401, W0107, # unnecessary-pass
W1618, W0120, # useless-else-on-loop
E0202, E0203, E0602, E0604, E0611, E0702, E0711, E1003, E1101, E1102, E1121, E1136 W0143, # comparison-with-callable
W0201, # attribute-defined-outside-init
W0212, # protected-access
W0221, # arguments-differ
W0223, # abstract-method
W0231, # super-init-not-called
W0235, # useless-super-delegation
W0237, # arguments-renamed
W0402, # deprecated-module
W0511, # fixme
W0602, # global-variable-not-assigned
W0603, # global-statement
W0611, # unused-import
W0612, # unused-variable
W0613, # unused-argument
W0621, # redefined-outer-name
W0622, # redefined-builtin
W0702, # bare-except
W0703, # broad except warning
W0707, # raise-missing-from
W0719, # broad-exception-raised
W1113, # keyword-arg-before-vararg
W1201, # logging-not-lazy
W1401, # anomalous-backslash-in-string
W1509, # subprocess-popen-preexec-fn
W1514, # unspecified-encoding
W1618, # no-absolute-import
W4902, # deprecated-method
E0202, # method-hidden
E0203, # access-member-before-definition
E0601, # used-before-assignment
E0602, # undefined-variable
E0604, # invalid-all-object
E0605, # invalid-all-format
E0611, # no-name-in-module
E0702, # raising-bad-type
E0711, # notimplemented-raised
E1003, # bad-super-call
E1101, # no-member
E1102, # not-callable
E1121, # too-many-function-args
E1123, # unexpected-keyword-arg
E1124, # redundant-keyword-arg
E1135, # unsupported-membership-test
E1136 # unsubscriptable-object
[REPORTS] [REPORTS]
@ -159,11 +81,6 @@ disable=C, R,
# (visual studio) and html # (visual studio) and html
output-format=text output-format=text
# Put messages in a separate file for each module / package specified on the
# command line instead of printing them on stdout. Reports (if any) will be
# written in a file name "pylint_global.[txt|html]".
files-output=no
# Tells whether to display a full report or only the messages # Tells whether to display a full report or only the messages
reports=no reports=no
@ -214,9 +131,6 @@ generated-members=uuid
[BASIC] [BASIC]
# List of builtins function names that should not be used, separated by a comma
bad-functions=map,filter,apply,input
# Regular expression which should only match correct module names # Regular expression which should only match correct module names
module-rgx=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$ module-rgx=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$
@ -306,7 +220,7 @@ max-locals=15
max-returns=6 max-returns=6
# Maximum number of branch for function / method body # Maximum number of branch for function / method body
max-branchs=12 max-branches=12
# Maximum number of statements in function / method body # Maximum number of statements in function / method body
max-statements=50 max-statements=50

40
tox.ini
View File

@ -4,8 +4,9 @@ minversion = 2.3
skipsdist = True skipsdist = True
[testenv] [testenv]
basepython = python3
install_command = pip install \ install_command = pip install \
-c{env:UPPER_CONSTRAINTS_FILE:https://opendev.org/openstack/requirements/raw/branch/stable/stein/upper-constraints.txt} \ -c{env:UPPER_CONSTRAINTS_FILE:https://opendev.org/starlingx/root/raw/branch/master/build-tools/requirements/debian/upper-constraints.txt} \
{opts} {packages} {opts} {packages}
setenv = VIRTUAL_ENV={envdir} setenv = VIRTUAL_ENV={envdir}
OS_STDOUT_CAPTURE=1 OS_STDOUT_CAPTURE=1
@ -14,8 +15,7 @@ setenv = VIRTUAL_ENV={envdir}
deps = -r{toxinidir}/test-requirements.txt deps = -r{toxinidir}/test-requirements.txt
allowlist_externals = reno allowlist_externals = reno
[testenv:linters] [testenv:bashate]
basepython = python3
allowlist_externals = bash allowlist_externals = bash
commands = commands =
bash -c "find {toxinidir} \ bash -c "find {toxinidir} \
@ -29,14 +29,22 @@ commands =
-wholename \*/devstack/\* \ -wholename \*/devstack/\* \
\) \ \) \
-print0 | xargs -r -n 1 -0 bashate -v -e E* -i E006" -print0 | xargs -r -n 1 -0 bashate -v -e E* -i E006"
bash -c "find {toxinidir} \
\( -name middleware/io-monitor/recipes-common/io-monitor/io-monitor/io_monitor/test-tools/yaml/* -prune \) \ [testenv:yamllint]
-o \( -name .tox -prune \) \ allowlist_externals = bash
commands =
bash -c "find {toxinidir} \
\( -name .tox -prune \) \
-o -type f -name '*.yaml' \ -o -type f -name '*.yaml' \
-print0 | xargs -0 yamllint" -print0 | xargs -0 yamllint"
[testenv:linters]
allowlist_externals = bash
commands =
{[testenv:bashate]commands}
{[testenv:yamllint]commands}
[testenv:pylint] [testenv:pylint]
basepython = python2.7
deps = {[testenv]deps} deps = {[testenv]deps}
eventlet eventlet
httplib2 httplib2
@ -44,7 +52,7 @@ deps = {[testenv]deps}
jsonpatch jsonpatch
keystonemiddleware keystonemiddleware
kombu kombu
MySQL-python mysqlclient
oslo.config oslo.config
pecan pecan
prettytable prettytable
@ -99,7 +107,6 @@ enable-extensions = H203
max-line-length = 110 max-line-length = 110
[testenv:pep8] [testenv:pep8]
basepython = python3
usedevelop = False usedevelop = False
skip_install = True skip_install = True
deps = deps =
@ -109,11 +116,9 @@ commands =
flake8 flake8
[testenv:venv] [testenv:venv]
basepython = python3
commands = {posargs} commands = {posargs}
[testenv:docs] [testenv:docs]
basepython = python3
install_command = pip install -U {opts} {packages} install_command = pip install -U {opts} {packages}
deps = -r{toxinidir}/doc/requirements.txt deps = -r{toxinidir}/doc/requirements.txt
commands = commands =
@ -122,7 +127,6 @@ commands =
allowlist_externals = rm allowlist_externals = rm
[testenv:releasenotes] [testenv:releasenotes]
basepython = python3
deps = -r{toxinidir}/doc/requirements.txt deps = -r{toxinidir}/doc/requirements.txt
commands = commands =
rm -rf releasenotes/build rm -rf releasenotes/build
@ -130,7 +134,6 @@ commands =
allowlist_externals = rm allowlist_externals = rm
[testenv:newnote] [testenv:newnote]
basepython = python3
# Re-use the releasenotes venv # Re-use the releasenotes venv
install_command = pip install -U {opts} {packages} install_command = pip install -U {opts} {packages}
envdir = {toxworkdir}/releasenotes envdir = {toxworkdir}/releasenotes
@ -138,7 +141,6 @@ deps = -r{toxinidir}/doc/requirements.txt
commands = reno new {posargs} commands = reno new {posargs}
[testenv:api-ref] [testenv:api-ref]
basepython = python3
install_command = pip install -U {opts} {packages} install_command = pip install -U {opts} {packages}
deps = deps =
-r{toxinidir}/doc/requirements.txt -r{toxinidir}/doc/requirements.txt
@ -152,7 +154,15 @@ allowlist_externals = rm
skips = B411 skips = B411
[testenv:bandit] [testenv:bandit]
basepython = python3
description = Bandit code scan for *.py files under config folder description = Bandit code scan for *.py files under config folder
deps = -r{toxinidir}/test-requirements.txt deps = -r{toxinidir}/test-requirements.txt
commands = bandit --ini tox.ini -r {toxinidir}/ -x '**/.tox/**',**/.eggs/** -lll commands = bandit --ini tox.ini -r {toxinidir}/ -x '**/.tox/**',**/.eggs/** -lll
[testenv:bindep]
# Do not install any requirements. We want this to be fast and work even if
# system dependencies are missing, since it's used to tell you what system
# dependencies are missing! This also means that bindep must be installed
# separately, outside of the requirements files.
skip_install = True
deps = bindep
commands = bindep test