Make master working again
Changes: - Use privsep execution. - Streamline tox.ini and setup.cfg - Remove lower-constraints job Depends-On: https://review.opendev.org/c/openstack/neutron/+/764015 Change-Id: I0017028ff35fe1f375d67e15e9f03f6917f8ccff
This commit is contained in:
parent
b0dac613bb
commit
51b36d9c9c
|
@ -1,10 +1,9 @@
|
||||||
- project:
|
- project:
|
||||||
templates:
|
templates:
|
||||||
- openstack-lower-constraints-jobs
|
|
||||||
- openstack-cover-jobs-neutron
|
- openstack-cover-jobs-neutron
|
||||||
- build-openstack-docs-pti
|
- build-openstack-docs-pti
|
||||||
- check-requirements
|
- check-requirements
|
||||||
- openstack-python3-ussuri-jobs-neutron
|
- openstack-python3-wallaby-jobs-neutron
|
||||||
- tap-as-a-service-tempest-plugin-jobs
|
- tap-as-a-service-tempest-plugin-jobs
|
||||||
check:
|
check:
|
||||||
jobs:
|
jobs:
|
||||||
|
|
|
@ -1,199 +0,0 @@
|
||||||
alabaster==0.7.10
|
|
||||||
alembic==1.4.2
|
|
||||||
amqp==2.6.1
|
|
||||||
appdirs==1.4.4
|
|
||||||
asn1crypto==0.23.0
|
|
||||||
Babel==2.8.0
|
|
||||||
beautifulsoup4==4.9.1
|
|
||||||
blockdiag==1.5.3
|
|
||||||
cachetools==4.1.1
|
|
||||||
cffi==1.14.2
|
|
||||||
cliff==3.4.0
|
|
||||||
cmd2==1.3.8
|
|
||||||
contextlib2==0.4.0
|
|
||||||
coverage==5.2.1
|
|
||||||
cryptography==3.1
|
|
||||||
debtcollector==1.2.0
|
|
||||||
decorator==4.4.2
|
|
||||||
deprecation==1.0
|
|
||||||
Django==2.2
|
|
||||||
django-appconf==1.0.2
|
|
||||||
django-babel==0.6.2
|
|
||||||
django-compressor==2.0
|
|
||||||
django-pyscss==2.0.2
|
|
||||||
docutils==0.11
|
|
||||||
dogpile.cache==1.0.2
|
|
||||||
eventlet==0.26.1
|
|
||||||
exabgp==4.0.4
|
|
||||||
extras==1.0.0
|
|
||||||
fasteners==0.14.1
|
|
||||||
fixtures==3.0.0
|
|
||||||
funcparserlib==0.3.6
|
|
||||||
future==0.18.2
|
|
||||||
futurist==2.3.0
|
|
||||||
greenlet==0.4.16
|
|
||||||
horizon==17.1.0
|
|
||||||
httplib2==0.18.1
|
|
||||||
idna==2.10
|
|
||||||
imagesize==0.7.1
|
|
||||||
iso8601==0.1.12
|
|
||||||
isort==4.3.21
|
|
||||||
Jinja2==2.11.2
|
|
||||||
jmespath==0.10.0
|
|
||||||
jsonpatch==1.26
|
|
||||||
jsonpointer==2.0
|
|
||||||
jsonschema==3.2.0
|
|
||||||
keystoneauth1==4.2.1
|
|
||||||
keystonemiddleware==9.1.0
|
|
||||||
kombu==5.0.1
|
|
||||||
linecache2==1.0.0
|
|
||||||
logilab-common==1.4.1
|
|
||||||
logutils==0.3.5
|
|
||||||
Mako==1.1.3
|
|
||||||
MarkupSafe==1.1.1
|
|
||||||
mock==3.0.0
|
|
||||||
monotonic==1.5
|
|
||||||
mox3==0.20.0
|
|
||||||
msgpack-python==0.4.0
|
|
||||||
munch==2.5.0
|
|
||||||
netaddr==0.8.0
|
|
||||||
netifaces==0.10.9
|
|
||||||
neutron==16.0.0.0b1
|
|
||||||
neutron-lib==2.6.0
|
|
||||||
openstacksdk==0.49.0
|
|
||||||
os-client-config==2.1.0
|
|
||||||
os-ken==1.2.0
|
|
||||||
os-service-types==1.7.0
|
|
||||||
os-testr==1.0.0
|
|
||||||
os-traits==2.4.0
|
|
||||||
os-xenapi==0.3.4
|
|
||||||
os-vif==1.15.1
|
|
||||||
osc-lib==2.2.1
|
|
||||||
oslo.cache==2.6.1
|
|
||||||
oslo.concurrency==4.3.0
|
|
||||||
oslo.config==8.3.2
|
|
||||||
oslo.context==3.1.1
|
|
||||||
oslo.db==8.4.0
|
|
||||||
oslo.i18n==5.0.1
|
|
||||||
oslo.log==4.4.0
|
|
||||||
oslo.messaging==12.5.0
|
|
||||||
oslo.middleware==4.1.1
|
|
||||||
oslo.policy==3.5.0
|
|
||||||
oslo.privsep==2.4.0
|
|
||||||
oslo.reports==2.2.0
|
|
||||||
oslo.rootwrap==6.2.0
|
|
||||||
oslo.serialization==4.0.1
|
|
||||||
oslo.service==2.4.0
|
|
||||||
oslo.upgradecheck==1.1.1
|
|
||||||
oslo.utils==4.6.0
|
|
||||||
oslo.versionedobjects==2.3.0
|
|
||||||
oslotest==4.4.1
|
|
||||||
osprofiler==3.4.0
|
|
||||||
ovs==2.13.0
|
|
||||||
ovsdbapp==1.5.0
|
|
||||||
packaging==20.4
|
|
||||||
paramiko==2.7.2
|
|
||||||
Paste==3.4.3
|
|
||||||
PasteDeploy==2.1.0
|
|
||||||
pbr==5.5.0
|
|
||||||
pecan==1.3.3
|
|
||||||
pika==0.10.0
|
|
||||||
pika-pool==0.1.3
|
|
||||||
Pillow==2.4.0
|
|
||||||
Pint==0.5
|
|
||||||
positional==1.2.1
|
|
||||||
prettytable==0.7.2
|
|
||||||
psutil==5.7.2
|
|
||||||
psycopg2==2.8.5
|
|
||||||
pycadf==3.1.1
|
|
||||||
pycodestyle==2.5.0
|
|
||||||
pycparser==2.20
|
|
||||||
pyflakes==2.1.1
|
|
||||||
pyinotify==0.9.6
|
|
||||||
pylint==2.2.0
|
|
||||||
PyMySQL==0.10.0
|
|
||||||
pyOpenSSL==19.1.0
|
|
||||||
pyparsing==2.4.7
|
|
||||||
pyperclip==1.8.0
|
|
||||||
pyroute2==0.5.14
|
|
||||||
pyScss==1.3.7
|
|
||||||
pytest==5.3.5
|
|
||||||
python-cinderclient==5.0.0
|
|
||||||
python-dateutil==2.5.3
|
|
||||||
python-designateclient==4.1.0
|
|
||||||
python-editor==1.0.4
|
|
||||||
python-glanceclient==2.8.0
|
|
||||||
python-keystoneclient==4.1.1
|
|
||||||
python-mimeparse==1.6.0
|
|
||||||
python-neutronclient==7.2.1
|
|
||||||
python-novaclient==17.2.1
|
|
||||||
python-subunit==1.4.0
|
|
||||||
python-swiftclient==3.2.0
|
|
||||||
pytz==2020.1
|
|
||||||
PyYAML==5.3.1
|
|
||||||
rcssmin==1.0.6
|
|
||||||
repoze.lru==0.7
|
|
||||||
requests==2.23.0
|
|
||||||
requestsexceptions==1.4.0
|
|
||||||
rfc3986==1.4.0
|
|
||||||
rjsmin==1.0.12
|
|
||||||
Routes==2.4.1
|
|
||||||
ryu==4.24
|
|
||||||
semantic-version==2.3.1
|
|
||||||
seqdiag==0.9.5
|
|
||||||
simplejson==3.17.2
|
|
||||||
snowballstemmer==1.2.1
|
|
||||||
Sphinx==2.0.0
|
|
||||||
SQLAlchemy==1.3.19
|
|
||||||
sqlalchemy-migrate==0.13.0
|
|
||||||
sqlparse==0.3.1
|
|
||||||
statsd==3.3.0
|
|
||||||
stestr==3.0.1
|
|
||||||
stevedore==3.2.2
|
|
||||||
tempest==17.1.0
|
|
||||||
Tempita==0.5.2
|
|
||||||
tenacity==6.2.0
|
|
||||||
testrepository==0.0.18
|
|
||||||
testresources==2.0.1
|
|
||||||
testscenarios==0.5.0
|
|
||||||
testtools==2.4.0
|
|
||||||
tinyrpc==1.0.4
|
|
||||||
tooz==2.7.1
|
|
||||||
traceback2==1.4.0
|
|
||||||
urllib3==1.25.10
|
|
||||||
vine==1.3.0
|
|
||||||
waitress==1.4.4
|
|
||||||
warlock==1.2.0
|
|
||||||
webcolors==1.7
|
|
||||||
WebOb==1.8.6
|
|
||||||
websocket-client==0.40.0
|
|
||||||
WebTest==2.0.35
|
|
||||||
wrapt==1.12.1
|
|
||||||
XStatic==1.0.0
|
|
||||||
XStatic-Angular==1.5.8.0
|
|
||||||
XStatic-Angular-Bootstrap==2.2.0.0
|
|
||||||
XStatic-Angular-FileUpload==12.0.4.0
|
|
||||||
XStatic-Angular-Gettext==2.3.8.0
|
|
||||||
XStatic-Angular-lrdragndrop==1.0.2.2
|
|
||||||
XStatic-Angular-Schema-Form==0.8.13.0
|
|
||||||
XStatic-Bootstrap-Datepicker==1.3.1.0
|
|
||||||
XStatic-Bootstrap-SCSS==3.3.7.1
|
|
||||||
XStatic-bootswatch==3.3.7.0
|
|
||||||
XStatic-D3==3.5.17.0
|
|
||||||
XStatic-Font-Awesome==4.7.0.0
|
|
||||||
XStatic-Hogan==2.0.0.2
|
|
||||||
XStatic-Jasmine==2.4.1.1
|
|
||||||
XStatic-jQuery==1.8.2.1
|
|
||||||
XStatic-JQuery-Migrate==1.2.1.1
|
|
||||||
XStatic-jquery-ui==1.10.4.1
|
|
||||||
XStatic-JQuery.quicksearch==2.0.3.1
|
|
||||||
XStatic-JQuery.TableSorter==2.14.5.1
|
|
||||||
XStatic-JSEncrypt==2.3.1.1
|
|
||||||
XStatic-mdi==1.4.57.0
|
|
||||||
XStatic-objectpath==1.2.1.0
|
|
||||||
XStatic-Rickshaw==1.5.0.0
|
|
||||||
XStatic-roboto-fontface==0.5.0.0
|
|
||||||
XStatic-smart-table==1.4.13.2
|
|
||||||
XStatic-Spin==1.2.5.2
|
|
||||||
XStatic-term.js==0.0.7.0
|
|
||||||
XStatic-tv4==1.2.7.0
|
|
|
@ -265,7 +265,7 @@ class OvsTaasDriver(taas_base.TaasAgentDriver):
|
||||||
ovs_port_name = ovs_port.port_name
|
ovs_port_name = ovs_port.port_name
|
||||||
linux_br_name = ovs_port_name.replace('qvo', 'qbr')
|
linux_br_name = ovs_port_name.replace('qvo', 'qbr')
|
||||||
utils.execute(['brctl', 'setageing', linux_br_name, 0],
|
utils.execute(['brctl', 'setageing', linux_br_name, 0],
|
||||||
run_as_root=True)
|
run_as_root=True, privsep_exec=True)
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
@ -425,7 +425,7 @@ class OvsTaasDriver(taas_base.TaasAgentDriver):
|
||||||
def _create_tunnel_flood_flow_action(self):
|
def _create_tunnel_flood_flow_action(self):
|
||||||
|
|
||||||
args = ["ovs-vsctl", "list-ports", "br-tun"]
|
args = ["ovs-vsctl", "list-ports", "br-tun"]
|
||||||
res = utils.execute(args, run_as_root=True)
|
res = utils.execute(args, run_as_root=True, privsep_exec=True)
|
||||||
|
|
||||||
port_name_list = res.splitlines()
|
port_name_list = res.splitlines()
|
||||||
|
|
||||||
|
|
|
@ -88,7 +88,8 @@ class SriovNicUtils(object):
|
||||||
try:
|
try:
|
||||||
LOG.info("TaaS executing sysfs_command %(command)s",
|
LOG.info("TaaS executing sysfs_command %(command)s",
|
||||||
{'command': commit_cmd})
|
{'command': commit_cmd})
|
||||||
utils.execute(commit_cmd, run_as_root=True)
|
utils.execute(commit_cmd, run_as_root=True,
|
||||||
|
privsep_exec=True)
|
||||||
except (OSError, RuntimeError, IndexError, ValueError) as e:
|
except (OSError, RuntimeError, IndexError, ValueError) as e:
|
||||||
LOG.error("Exception while executing Sysfs command "
|
LOG.error("Exception while executing Sysfs command "
|
||||||
"Exception: %s", e)
|
"Exception: %s", e)
|
||||||
|
@ -105,7 +106,8 @@ class SriovNicUtils(object):
|
||||||
try:
|
try:
|
||||||
LOG.info("TaaS executing sysfs_command %(command)s",
|
LOG.info("TaaS executing sysfs_command %(command)s",
|
||||||
{'command': commit_cmd})
|
{'command': commit_cmd})
|
||||||
utils.execute(commit_cmd, run_as_root=True)
|
utils.execute(commit_cmd, run_as_root=True,
|
||||||
|
privsep_exec=True)
|
||||||
except (OSError, RuntimeError, IndexError, ValueError) as e:
|
except (OSError, RuntimeError, IndexError, ValueError) as e:
|
||||||
LOG.error("Exception while executing Sysfs command "
|
LOG.error("Exception while executing Sysfs command "
|
||||||
"Exception: %s", e)
|
"Exception: %s", e)
|
||||||
|
@ -125,7 +127,8 @@ class SriovNicUtils(object):
|
||||||
try:
|
try:
|
||||||
LOG.info("TaaS executing sysfs_command %(command)s",
|
LOG.info("TaaS executing sysfs_command %(command)s",
|
||||||
{'command': commit_cmd})
|
{'command': commit_cmd})
|
||||||
utils.execute(commit_cmd, run_as_root=True)
|
utils.execute(commit_cmd, run_as_root=True,
|
||||||
|
privsep_exec=True)
|
||||||
except (OSError, RuntimeError, IndexError, ValueError) as e:
|
except (OSError, RuntimeError, IndexError, ValueError) as e:
|
||||||
LOG.error("Exception while executing Sysfs command "
|
LOG.error("Exception while executing Sysfs command "
|
||||||
"Exception: %s", e)
|
"Exception: %s", e)
|
||||||
|
|
|
@ -200,7 +200,7 @@ class TestSriovNicUtils(base.TaasTestCase):
|
||||||
egress_cmd = ['i40e_sysfs_command', 'p2p1', '18',
|
egress_cmd = ['i40e_sysfs_command', 'p2p1', '18',
|
||||||
'egress_mirror', 'add', '9']
|
'egress_mirror', 'add', '9']
|
||||||
mock_neutron_utils.execute.assert_called_once_with(
|
mock_neutron_utils.execute.assert_called_once_with(
|
||||||
egress_cmd, run_as_root=True)
|
egress_cmd, run_as_root=True, privsep_exec=True)
|
||||||
|
|
||||||
@mock.patch.object(sriov_nic_utils, 'utils')
|
@mock.patch.object(sriov_nic_utils, 'utils')
|
||||||
@mock.patch.object(sriov_nic_utils, 'os')
|
@mock.patch.object(sriov_nic_utils, 'os')
|
||||||
|
@ -212,7 +212,7 @@ class TestSriovNicUtils(base.TaasTestCase):
|
||||||
ingress_cmd = ['i40e_sysfs_command', 'p2p1', '18',
|
ingress_cmd = ['i40e_sysfs_command', 'p2p1', '18',
|
||||||
'ingress_mirror', 'add', '9']
|
'ingress_mirror', 'add', '9']
|
||||||
mock_neutron_utils.execute.assert_called_once_with(
|
mock_neutron_utils.execute.assert_called_once_with(
|
||||||
ingress_cmd, run_as_root=True)
|
ingress_cmd, run_as_root=True, privsep_exec=True)
|
||||||
|
|
||||||
@mock.patch.object(sriov_nic_utils, 'utils')
|
@mock.patch.object(sriov_nic_utils, 'utils')
|
||||||
@mock.patch.object(sriov_nic_utils, 'os')
|
@mock.patch.object(sriov_nic_utils, 'os')
|
||||||
|
@ -233,7 +233,7 @@ class TestSriovNicUtils(base.TaasTestCase):
|
||||||
egress_cmd = ['i40e_sysfs_command', 'p2p1', '18',
|
egress_cmd = ['i40e_sysfs_command', 'p2p1', '18',
|
||||||
'egress_mirror', 'rem', '9']
|
'egress_mirror', 'rem', '9']
|
||||||
mock_neutron_utils.execute.assert_called_once_with(
|
mock_neutron_utils.execute.assert_called_once_with(
|
||||||
egress_cmd, run_as_root=True)
|
egress_cmd, run_as_root=True, privsep_exec=True)
|
||||||
|
|
||||||
@mock.patch.object(sriov_nic_utils, 'utils')
|
@mock.patch.object(sriov_nic_utils, 'utils')
|
||||||
@mock.patch.object(sriov_nic_utils, 'os')
|
@mock.patch.object(sriov_nic_utils, 'os')
|
||||||
|
@ -245,7 +245,7 @@ class TestSriovNicUtils(base.TaasTestCase):
|
||||||
ingress_cmd = ['i40e_sysfs_command', 'p2p1', '18',
|
ingress_cmd = ['i40e_sysfs_command', 'p2p1', '18',
|
||||||
'ingress_mirror', 'rem', '9']
|
'ingress_mirror', 'rem', '9']
|
||||||
mock_neutron_utils.execute.assert_called_once_with(
|
mock_neutron_utils.execute.assert_called_once_with(
|
||||||
ingress_cmd, run_as_root=True)
|
ingress_cmd, run_as_root=True, privsep_exec=True)
|
||||||
|
|
||||||
@mock.patch.object(sriov_nic_utils, 'utils')
|
@mock.patch.object(sriov_nic_utils, 'utils')
|
||||||
@mock.patch.object(sriov_nic_utils, 'os')
|
@mock.patch.object(sriov_nic_utils, 'os')
|
||||||
|
@ -266,4 +266,4 @@ class TestSriovNicUtils(base.TaasTestCase):
|
||||||
'rem', {'pf_device': 'p2p1', 'vf_index': '9'}, {'vf_index': '18'},
|
'rem', {'pf_device': 'p2p1', 'vf_index': '9'}, {'vf_index': '18'},
|
||||||
"4,11-13", False, "FAKE")
|
"4,11-13", False, "FAKE")
|
||||||
mock_neutron_utils.execute.assert_called_once_with(
|
mock_neutron_utils.execute.assert_called_once_with(
|
||||||
cmd, run_as_root=True)
|
cmd, run_as_root=True, privsep_exec=True)
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
|
|
||||||
pbr>=5.5.0 # Apache-2.0
|
pbr>=5.5.0 # Apache-2.0
|
||||||
Babel>=2.8.0 # BSD
|
Babel>=2.8.0 # BSD
|
||||||
neutron>=16.0.0 # Apache-2.0
|
neutron>=16.0.0.0b1 # Apache-2.0
|
||||||
neutron-lib>=2.6.0 # Apache-2.0
|
neutron-lib>=2.6.0 # Apache-2.0
|
||||||
|
|
||||||
# Opt-in for neutron-lib consumption patches
|
# Opt-in for neutron-lib consumption patches
|
||||||
|
|
|
@ -17,6 +17,7 @@ classifier =
|
||||||
Programming Language :: Python :: 3.5
|
Programming Language :: Python :: 3.5
|
||||||
Programming Language :: Python :: 3.6
|
Programming Language :: Python :: 3.6
|
||||||
Programming Language :: Python :: 3.7
|
Programming Language :: Python :: 3.7
|
||||||
|
Programming Language :: Python :: 3.8
|
||||||
|
|
||||||
[files]
|
[files]
|
||||||
packages =
|
packages =
|
||||||
|
|
17
tox.ini
17
tox.ini
|
@ -1,12 +1,16 @@
|
||||||
[tox]
|
[tox]
|
||||||
envlist = docs,py35,py27,pep8
|
envlist = docs,py38,pep8
|
||||||
minversion = 1.8
|
minversion = 2.3.2
|
||||||
skipsdist = True
|
skipsdist = True
|
||||||
ignore_basepython_conflict = True
|
ignore_basepython_conflict = True
|
||||||
|
|
||||||
[testenv]
|
[testenv]
|
||||||
basepython = python3
|
basepython = python3
|
||||||
setenv = VIRTUAL_ENV={envdir}
|
setenv = VIRTUAL_ENV={envdir}
|
||||||
|
LANG=en_US.UTF-8
|
||||||
|
LANGUAGE=en_US:en
|
||||||
|
LC_ALL=C
|
||||||
|
EDITOR=vi
|
||||||
PYTHONWARNINGS=default::DeprecationWarning
|
PYTHONWARNINGS=default::DeprecationWarning
|
||||||
usedevelop = True
|
usedevelop = True
|
||||||
install_command = pip install {opts} {packages}
|
install_command = pip install {opts} {packages}
|
||||||
|
@ -22,9 +26,6 @@ whitelist_externals = find
|
||||||
[tox:jenkins]
|
[tox:jenkins]
|
||||||
sitepackages = True
|
sitepackages = True
|
||||||
|
|
||||||
[testenv:py27]
|
|
||||||
setenv = OS_FAIL_ON_MISSING_DEPS=1
|
|
||||||
|
|
||||||
[testenv:pep8]
|
[testenv:pep8]
|
||||||
commands =
|
commands =
|
||||||
flake8
|
flake8
|
||||||
|
@ -81,12 +82,6 @@ extension =
|
||||||
[hacking]
|
[hacking]
|
||||||
import_exceptions = neutron_taas._i18n
|
import_exceptions = neutron_taas._i18n
|
||||||
|
|
||||||
[testenv:lower-constraints]
|
|
||||||
deps =
|
|
||||||
-c{toxinidir}/lower-constraints.txt
|
|
||||||
-r{toxinidir}/test-requirements.txt
|
|
||||||
-r{toxinidir}/requirements.txt
|
|
||||||
|
|
||||||
[testenv:dev]
|
[testenv:dev]
|
||||||
# run locally (not in the gate) using editable mode
|
# run locally (not in the gate) using editable mode
|
||||||
# https://pip.pypa.io/en/stable/reference/pip_install/#editable-installs
|
# https://pip.pypa.io/en/stable/reference/pip_install/#editable-installs
|
||||||
|
|
Loading…
Reference in New Issue