setup project for pypi releases
The intent of this patch is to update the vmware-nsx-tempest-plugin project so that it's capable of being published to PYPI. To do so the doc requirements are separated from test-requirements, tox.ini is updated in a few places and .gitignore file is included for good measure. Also see https://review.openstack.org/#/c/584498/ Change-Id: If02713fd427613433f554272c9962e0ebb95b1d6
This commit is contained in:
parent
437f3509b2
commit
31e981d236
31
.gitignore
vendored
Normal file
31
.gitignore
vendored
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
AUTHORS
|
||||||
|
build/*
|
||||||
|
build-stamp
|
||||||
|
ChangeLog
|
||||||
|
cover/
|
||||||
|
covhtml/
|
||||||
|
dist/
|
||||||
|
doc/build
|
||||||
|
etc/*.sample
|
||||||
|
*.DS_Store
|
||||||
|
*.pyc
|
||||||
|
vmware_nsx_tempest_plugin.egg-info/
|
||||||
|
pbr*.egg/
|
||||||
|
run_tests.err.log
|
||||||
|
run_tests.log
|
||||||
|
setuptools*.egg/
|
||||||
|
subunit.log
|
||||||
|
*.mo
|
||||||
|
*.sw?
|
||||||
|
*~
|
||||||
|
/.*
|
||||||
|
!/.coveragerc
|
||||||
|
!/.gitignore
|
||||||
|
!/.gitreview
|
||||||
|
!/.mailmap
|
||||||
|
!/.pylintrc
|
||||||
|
!/.testr.conf
|
||||||
|
!/.zuul.yaml
|
||||||
|
|
||||||
|
# Files created by releasenotes build
|
||||||
|
releasenotes/build
|
4
doc/requirements.txt
Normal file
4
doc/requirements.txt
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
sphinx!=1.6.6,!=1.6.7,>=1.6.2 # BSD
|
||||||
|
openstackdocstheme>=1.18.1 # Apache-2.0
|
||||||
|
reno>=2.5.0 # Apache-2.0
|
||||||
|
mock>=2.0.0 # BSD
|
@ -4,12 +4,11 @@
|
|||||||
|
|
||||||
hacking<0.13,>=0.12.0 # Apache-2.0
|
hacking<0.13,>=0.12.0 # Apache-2.0
|
||||||
|
|
||||||
|
bandit>=1.1.0 # Apache-2.0
|
||||||
coverage!=4.4,>=4.0 # Apache-2.0
|
coverage!=4.4,>=4.0 # Apache-2.0
|
||||||
python-subunit>=1.0.0 # Apache-2.0/BSD
|
python-subunit>=1.0.0 # Apache-2.0/BSD
|
||||||
sphinx!=1.6.6,!=1.6.7,>=1.6.2 # BSD
|
|
||||||
oslotest>=3.2.0 # Apache-2.0
|
oslotest>=3.2.0 # Apache-2.0
|
||||||
testtools>=2.2.0 # MIT
|
testtools>=2.2.0 # MIT
|
||||||
openstackdocstheme>=1.18.1 # Apache-2.0
|
|
||||||
# releasenotes
|
# releasenotes
|
||||||
reno>=2.5.0 # Apache-2.0
|
reno>=2.5.0 # Apache-2.0
|
||||||
tempest>=17.1.0 # Apache-2.0
|
tempest>=17.1.0 # Apache-2.0
|
||||||
|
57
tox.ini
57
tox.ini
@ -3,20 +3,25 @@ minversion = 2.0
|
|||||||
envlist = py35,py27,pep8,docs
|
envlist = py35,py27,pep8,docs
|
||||||
skipsdist = True
|
skipsdist = True
|
||||||
|
|
||||||
|
|
||||||
[testenv]
|
[testenv]
|
||||||
usedevelop = True
|
usedevelop = True
|
||||||
install_command = pip install -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt} {opts} {packages}
|
install_command = pip install {opts} {packages}
|
||||||
setenv =
|
setenv =
|
||||||
VIRTUAL_ENV={envdir}
|
PYTHONWARNINGS=default::DeprecationWarning
|
||||||
PYTHONWARNINGS=default::DeprecationWarning
|
OS_LOG_CAPTURE={env:OS_LOG_CAPTURE:true}
|
||||||
deps = -r{toxinidir}/test-requirements.txt
|
OS_STDOUT_CAPTURE={env:OS_STDOUT_CAPTURE:true}
|
||||||
-r{toxinidir}/requirements.txt
|
OS_STDERR_CAPTURE={env:OS_STDERR_CAPTURE:true}
|
||||||
|
deps =
|
||||||
|
-c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt}
|
||||||
|
-r{toxinidir}/requirements.txt
|
||||||
|
-r{toxinidir}/test-requirements.txt
|
||||||
whitelist_externals = sh
|
whitelist_externals = sh
|
||||||
rm
|
rm
|
||||||
find
|
find
|
||||||
commands =
|
commands =
|
||||||
find . -type f -name "*.pyc" -delete
|
find . -type f -name "*.pyc" -delete
|
||||||
stestr run --slowest {posargs}
|
stestr run --slowest {posargs}
|
||||||
passenv = http_proxy
|
passenv = http_proxy
|
||||||
HTTP_PROXY
|
HTTP_PROXY
|
||||||
https_proxy
|
https_proxy
|
||||||
@ -27,9 +32,13 @@ passenv = http_proxy
|
|||||||
OS_LOG_CAPTURE
|
OS_LOG_CAPTURE
|
||||||
OS_STDERR_CAPTURE
|
OS_STDERR_CAPTURE
|
||||||
OS_STDOUT_CAPTURE
|
OS_STDOUT_CAPTURE
|
||||||
|
TRACE_FAILONLY
|
||||||
|
|
||||||
[testenv:pep8]
|
[testenv:pep8]
|
||||||
commands = flake8 {posargs}
|
basepython = python3
|
||||||
|
commands =
|
||||||
|
flake8
|
||||||
|
{[testenv:bandit]commands}
|
||||||
|
|
||||||
[testenv:py27]
|
[testenv:py27]
|
||||||
setenv = OS_FAIL_ON_MISSING_DEPS=1
|
setenv = OS_FAIL_ON_MISSING_DEPS=1
|
||||||
@ -38,14 +47,31 @@ setenv = OS_FAIL_ON_MISSING_DEPS=1
|
|||||||
commands = {posargs}
|
commands = {posargs}
|
||||||
|
|
||||||
[testenv:cover]
|
[testenv:cover]
|
||||||
commands = python setup.py test --coverage --testr-args='{posargs}'
|
basepython = python3
|
||||||
|
setenv =
|
||||||
|
{[testenv]setenv}
|
||||||
|
PYTHON=coverage run --source vmware_nsx_tempest --parallel-mode
|
||||||
|
commands =
|
||||||
|
stestr run --no-subunit-trace {posargs}
|
||||||
|
coverage combine
|
||||||
|
coverage html -d cover
|
||||||
|
coverage xml -o cover/coverage.xml
|
||||||
|
|
||||||
[testenv:docs]
|
[testenv:docs]
|
||||||
commands = python setup.py build_sphinx
|
basepython = python3
|
||||||
|
deps =
|
||||||
|
-c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt}
|
||||||
|
-r{toxinidir}/requirements.txt
|
||||||
|
-r{toxinidir}/doc/requirements.txt
|
||||||
|
commands = sphinx-build -W -b html doc/source doc/build/html
|
||||||
|
|
||||||
[testenv:releasenotes]
|
[testenv:releasenotes]
|
||||||
commands =
|
basepython = python3
|
||||||
sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
|
deps =
|
||||||
|
-c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt}
|
||||||
|
-r{toxinidir}/requirements.txt
|
||||||
|
-r{toxinidir}/doc/requirements.txt
|
||||||
|
commands = sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
|
||||||
|
|
||||||
[testenv:debug]
|
[testenv:debug]
|
||||||
commands = oslo_debug_helper {posargs}
|
commands = oslo_debug_helper {posargs}
|
||||||
@ -58,3 +84,10 @@ ignore = E125,E126,E128,E129,E265,H305,H307,H404,H405,H904,N530,N531
|
|||||||
builtins = _
|
builtins = _
|
||||||
exclude=.venv,.git,.tox,dist,doc,*lib/python*,*egg,build,.ropeproject
|
exclude=.venv,.git,.tox,dist,doc,*lib/python*,*egg,build,.ropeproject
|
||||||
import-order-style = pep8
|
import-order-style = pep8
|
||||||
|
|
||||||
|
[testenv:bandit]
|
||||||
|
# B108 hardcoded_tmp_directory - remove when fixed
|
||||||
|
# B109 password_config_option_not_marked_secret
|
||||||
|
# B602 subprocess_popen_with_shell_equals_true - removed when fixed
|
||||||
|
# B605 start_process_with_a_shell - remove when fixed
|
||||||
|
commands = bandit -r vmware_nsx_tempest -n 5 -s B108,B109,B602,B605 -ll
|
||||||
|
@ -291,10 +291,12 @@ class IperfManager(TrafficManager):
|
|||||||
|
|
||||||
if self.traffic == 'udp':
|
if self.traffic == 'udp':
|
||||||
cmd = ('iperf -p 49162 -c %s -b %sM -t 1 -u | grep %%'
|
cmd = ('iperf -p 49162 -c %s -b %sM -t 1 -u | grep %%'
|
||||||
% (unicode(destination_ip), unicode(traffic_send_rate)))
|
% (unicode(destination_ip), # noqa
|
||||||
|
unicode(traffic_send_rate))) # noqa
|
||||||
else:
|
else:
|
||||||
cmd = ('iperf -p 49162 -c %s -b %sM -t 1 '
|
cmd = ('iperf -p 49162 -c %s -b %sM -t 1 '
|
||||||
% (unicode(destination_ip), unicode(traffic_send_rate)))
|
% (unicode(destination_ip), # noqa
|
||||||
|
unicode(traffic_send_rate))) # noqa
|
||||||
output = ssh_source.exec_command(cmd)
|
output = ssh_source.exec_command(cmd)
|
||||||
if output is None or float(output.split()[7]) < 0:
|
if output is None or float(output.split()[7]) < 0:
|
||||||
LOG.error('Incorrect IPERF output %s' % output)
|
LOG.error('Incorrect IPERF output %s' % output)
|
||||||
@ -310,7 +312,7 @@ class IperfManager(TrafficManager):
|
|||||||
if 'iperf -p 49162 -s' in line:
|
if 'iperf -p 49162 -s' in line:
|
||||||
LOG.info("Killing iperf process")
|
LOG.info("Killing iperf process")
|
||||||
iperf_process_id = line.split()[1]
|
iperf_process_id = line.split()[1]
|
||||||
cmd = ('kill %s' % (unicode(iperf_process_id)))
|
cmd = ('kill %s' % (unicode(iperf_process_id))) # noqa
|
||||||
ssh_source.exec_command(cmd)
|
ssh_source.exec_command(cmd)
|
||||||
|
|
||||||
def kill_tcpdump_process(self, ssh_source):
|
def kill_tcpdump_process(self, ssh_source):
|
||||||
@ -321,7 +323,7 @@ class IperfManager(TrafficManager):
|
|||||||
if 'tcpdump -ni eth0 -w' in line:
|
if 'tcpdump -ni eth0 -w' in line:
|
||||||
LOG.info("Killing TCPDUMP process")
|
LOG.info("Killing TCPDUMP process")
|
||||||
tcpdump_process_id = line.split()[1]
|
tcpdump_process_id = line.split()[1]
|
||||||
cmd = ('kill %s' % (unicode(tcpdump_process_id)))
|
cmd = ('kill %s' % (unicode(tcpdump_process_id))) # noqa
|
||||||
ssh_source.exec_command(cmd)
|
ssh_source.exec_command(cmd)
|
||||||
|
|
||||||
def use_iperf_send_traffic(
|
def use_iperf_send_traffic(
|
||||||
|
@ -108,14 +108,15 @@ class L2GatewayTest(base.BaseAdminNetworkTest):
|
|||||||
MSG_DIFF % ('name', _res_new['name'], _name))
|
MSG_DIFF % ('name', _res_new['name'], _name))
|
||||||
# w/wo vlan provided, need to check it is assigned/not-assigned
|
# w/wo vlan provided, need to check it is assigned/not-assigned
|
||||||
_seg_list = self.get_segmentation_id(_res_new, 0, 0)
|
_seg_list = self.get_segmentation_id(_res_new, 0, 0)
|
||||||
self.assertEqual(0, cmp(_vlan_id_list, _seg_list),
|
self.assertItemsEqual(_vlan_id_list, _seg_list,
|
||||||
MSG_DIFF % ('vlan', _seg_list, _vlan_id_list))
|
MSG_DIFF % ('vlan', _seg_list, _vlan_id_list))
|
||||||
_res_show = self.l2gw_client.show_l2_gateway(
|
_res_show = self.l2gw_client.show_l2_gateway(
|
||||||
_res_new['id'])[L2GW_RID]
|
_res_new['id'])[L2GW_RID]
|
||||||
_if_created = _res_new['devices'][0]['interfaces']
|
_if_created = _res_new['devices'][0]['interfaces']
|
||||||
_if_shown = _res_show['devices'][0]['interfaces']
|
_if_shown = _res_show['devices'][0]['interfaces']
|
||||||
self.assertEqual(0, cmp(_if_created, _if_shown),
|
self.assertItemsEqual(_if_created, _if_shown,
|
||||||
MSG_DIFF % ('interfaces', _if_created, _if_shown))
|
MSG_DIFF % ('interfaces',
|
||||||
|
_if_created, _if_shown))
|
||||||
_name2 = _name + "-day2"
|
_name2 = _name + "-day2"
|
||||||
_res_upd = self.l2gw_client.update_l2_gateway(
|
_res_upd = self.l2gw_client.update_l2_gateway(
|
||||||
_res_new['id'], name=_name2)[L2GW_RID]
|
_res_new['id'], name=_name2)[L2GW_RID]
|
||||||
|
@ -241,8 +241,8 @@ class L2GatewayConnectionTest(base.BaseAdminNetworkTest):
|
|||||||
(_gw, _seg_list) = self.create_l2gw_switch(_name, _devices)
|
(_gw, _seg_list) = self.create_l2gw_switch(_name, _devices)
|
||||||
(_res_new, _seg_id_list) = self.create_l2gw_connection(_gw)
|
(_res_new, _seg_id_list) = self.create_l2gw_connection(_gw)
|
||||||
_seg_id_list = _res_new.get('segmentation_id')
|
_seg_id_list = _res_new.get('segmentation_id')
|
||||||
self.assertEqaul(0, cmp(_vlan_id_list, _seg_id_list),
|
self.assertItemsEqual(_vlan_id_list, _seg_id_list,
|
||||||
MSG_DIFF % ('vlan', _vlan_id_list, _seg_id_list))
|
MSG_DIFF % ('vlan', _vlan_id_list, _seg_id_list))
|
||||||
self.do_suld_l2gw_connection(_res_new)
|
self.do_suld_l2gw_connection(_res_new)
|
||||||
self.addCleanup(self.l2gw_cleanup)
|
self.addCleanup(self.l2gw_cleanup)
|
||||||
|
|
||||||
|
@ -263,7 +263,7 @@ class TopoDeployScenarioManager(manager.NetworkScenarioTest):
|
|||||||
flavor = flavor or CONF.compute.flavor_ref
|
flavor = flavor or CONF.compute.flavor_ref
|
||||||
servers_client = servers_client or self.servers_client
|
servers_client = servers_client or self.servers_client
|
||||||
create_kwargs = create_kwargs or {}
|
create_kwargs = create_kwargs or {}
|
||||||
if type(tenant_id) in (str, unicode):
|
if type(tenant_id) in (str, unicode): # noqa
|
||||||
if servers_client.tenant_id != tenant_id:
|
if servers_client.tenant_id != tenant_id:
|
||||||
create_kwargs['tenant_id'] = tenant_id
|
create_kwargs['tenant_id'] = tenant_id
|
||||||
|
|
||||||
@ -465,7 +465,7 @@ class TopoDeployScenarioManager(manager.NetworkScenarioTest):
|
|||||||
PING_INSESSION = 'ping-progress-in-session'
|
PING_INSESSION = 'ping-progress-in-session'
|
||||||
PING_DONE = 'ping-progress-completed'
|
PING_DONE = 'ping-progress-completed'
|
||||||
PING_TIMEOUT = 'ping-progress-timeout'
|
PING_TIMEOUT = 'ping-progress-timeout'
|
||||||
if msg and type(msg) in (str, unicode):
|
if msg and type(msg) in (str, unicode): # noqa
|
||||||
xmsg = ("waitfor_host_connected ip=%(ip)s! %(msg)s" %
|
xmsg = ("waitfor_host_connected ip=%(ip)s! %(msg)s" %
|
||||||
{'ip': host_ip, 'msg': msg})
|
{'ip': host_ip, 'msg': msg})
|
||||||
LOG.debug(xmsg)
|
LOG.debug(xmsg)
|
||||||
@ -677,8 +677,9 @@ def check_hosts_connectivity(host, dest_list, ignore_helper=None,
|
|||||||
n_not_reachable = 0
|
n_not_reachable = 0
|
||||||
for dest in dest_list:
|
for dest in dest_list:
|
||||||
# caller can say to ignore dest ipaddr
|
# caller can say to ignore dest ipaddr
|
||||||
if ('helper' in dest and type(ignore_helper) in (str, unicode) and
|
if ('helper' in dest and
|
||||||
re.search(ignore_helper, dest['helper'], re.I)):
|
type(ignore_helper) in (str, unicode) and # noqa
|
||||||
|
re.search(ignore_helper, dest['helper'], re.I)): # noqa
|
||||||
dest['reachable'] = None
|
dest['reachable'] = None
|
||||||
continue
|
continue
|
||||||
dest['reachable'] = is_reachable(ssh_client, dest['ipaddr'],
|
dest['reachable'] = is_reachable(ssh_client, dest['ipaddr'],
|
||||||
|
Loading…
Reference in New Issue
Block a user