Fix broken gate

This is a combination of a number of fixes required to
fix the broken gate.

Fix lower-constraints job for focal, bumping requirements
and fixing resultant failuers as necessary.

The devstack module for OVN has now been moved to the
devstack repository, so include it from there so the
functional jobs can run.

Set not_implemented_is_error to False.
The Octavia tempest plugin tests are being changed to
better skip tests for not implemented features. Setting
this to False will treat NotImplemented failures as
skips and not errors.

Fix tempest blacklist regex.

Raise error on listener create with 'allowed_cidrs' present.

Change-Id: I70adcfad3f4d489d94da171670c23dba51d6f2a1
This commit is contained in:
Brian Haley 2020-09-10 14:59:02 -04:00
parent fac554d1e6
commit bfd98048cf
8 changed files with 34 additions and 16 deletions

View File

@ -6,24 +6,24 @@ astroid==2.1.0
bandit==1.1.0 bandit==1.1.0
beautifulsoup4==4.6.0 beautifulsoup4==4.6.0
cachetools==2.0.0 cachetools==2.0.0
cffi==1.7.0 cffi==1.14.0
chardet==3.0.4 chardet==3.0.4
cliff==2.8.0 cliff==2.8.0
cmd2==0.8.0 cmd2==0.8.0
coverage==4.0 coverage==4.0
cryptography==2.1 cryptography==3.0
debtcollector==1.2.0 debtcollector==1.2.0
decorator==3.4.0 decorator==4.0.0
deprecation==1.0 deprecation==1.0
docutils==0.11 docutils==0.11
dogpile.cache==0.6.2 dogpile.cache==0.8.0
eventlet==0.18.2 eventlet==0.21.0
extras==1.0.0 extras==1.0.0
fasteners==0.7.0 fasteners==0.7.0
fixtures==3.0.0 fixtures==3.0.0
future==0.16.0 future==0.16.0
futurist==1.2.0 futurist==1.2.0
greenlet==0.4.10 greenlet==0.4.15
idna==2.6 idna==2.6
iso8601==0.1.11 iso8601==0.1.11
isort==4.3.21 isort==4.3.21
@ -34,11 +34,11 @@ jsonpointer==1.13
jsonschema==2.6.0 jsonschema==2.6.0
keystoneauth1==3.4.0 keystoneauth1==3.4.0
keystonemiddleware==4.17.0 keystonemiddleware==4.17.0
kombu==4.0.0 kombu==4.6.1
linecache2==1.0.0 linecache2==1.0.0
logutils==0.3.5 logutils==0.3.5
Mako==0.4.0 Mako==0.4.0
MarkupSafe==1.0 MarkupSafe==1.1.1
monotonic==0.6 monotonic==0.6
msgpack-python==0.4.0 msgpack-python==0.4.0
munch==2.1.0 munch==2.1.0
@ -58,7 +58,7 @@ oslo.config==5.2.0
oslo.context==2.19.2 oslo.context==2.19.2
oslo.i18n==3.15.3 oslo.i18n==3.15.3
oslo.log==3.36.0 oslo.log==3.36.0
oslo.messaging==5.29.0 oslo.messaging==12.4.0
oslo.middleware==3.31.0 oslo.middleware==3.31.0
oslo.policy==1.30.0 oslo.policy==1.30.0
oslo.privsep==1.23.0 oslo.privsep==1.23.0
@ -87,7 +87,7 @@ pyinotify==0.9.6
pylint==2.2.0 pylint==2.2.0
pyparsing==2.1.0 pyparsing==2.1.0
pyperclip==1.5.27 pyperclip==1.5.27
pyroute2==0.4.21 pyroute2==0.5.13
python-dateutil==2.5.3 python-dateutil==2.5.3
python-designateclient==2.7.0 python-designateclient==2.7.0
python-editor==1.0.3 python-editor==1.0.3
@ -97,7 +97,7 @@ python-neutronclient==6.7.0
python-novaclient==9.1.0 python-novaclient==9.1.0
python-subunit==1.0.0 python-subunit==1.0.0
pytz==2015.7 pytz==2015.7
PyYAML==3.12 PyYAML==3.13
reno==3.1.0 reno==3.1.0
repoze.lru==0.7 repoze.lru==0.7
requests==2.14.2 requests==2.14.2
@ -106,7 +106,7 @@ rfc3986==0.3.1
Routes==2.3.1 Routes==2.3.1
simplejson==3.5.1 simplejson==3.5.1
snowballstemmer==1.2.1 snowballstemmer==1.2.1
SQLAlchemy==1.2.0 SQLAlchemy==1.2.19
sqlalchemy-migrate==0.11.0 sqlalchemy-migrate==0.11.0
sqlparse==0.2.2 sqlparse==0.2.2
statsd==3.2.1 statsd==3.2.1

View File

@ -138,6 +138,12 @@ class OvnProviderDriver(driver_base.ProviderDriver):
def listener_create(self, listener): def listener_create(self, listener):
self._check_for_supported_protocols(listener.protocol) self._check_for_supported_protocols(listener.protocol)
# TODO(haleyb): add support for this
if not isinstance(listener.allowed_cidrs, o_datamodels.UnsetType):
msg = _('OVN provider does not support allowed_cidrs option')
raise driver_exceptions.UnsupportedOptionError(
user_fault_string=msg,
operator_fault_string=msg)
admin_state_up = listener.admin_state_up admin_state_up = listener.admin_state_up
if isinstance(admin_state_up, o_datamodels.UnsetType): if isinstance(admin_state_up, o_datamodels.UnsetType):
admin_state_up = True admin_state_up = True
@ -161,6 +167,13 @@ class OvnProviderDriver(driver_base.ProviderDriver):
self._ovn_helper.add_request(request) self._ovn_helper.add_request(request)
def listener_update(self, old_listener, new_listener): def listener_update(self, old_listener, new_listener):
# TODO(haleyb): add support for this
if not isinstance(new_listener.allowed_cidrs, o_datamodels.UnsetType):
msg = _('OVN provider does not support allowed_cidrs option')
raise driver_exceptions.UnsupportedOptionError(
user_fault_string=msg,
operator_fault_string=msg)
request_info = {'id': new_listener.listener_id, request_info = {'id': new_listener.listener_id,
'loadbalancer_id': old_listener.loadbalancer_id, 'loadbalancer_id': old_listener.loadbalancer_id,
'protocol': old_listener.protocol, 'protocol': old_listener.protocol,

View File

@ -90,6 +90,7 @@ class OvnProviderHelper(object):
@staticmethod @staticmethod
def _delete_disabled_from_status(status): def _delete_disabled_from_status(status):
# pylint: disable=multiple-statements
d_regex = ':%s$' % ovn_const.DISABLED_RESOURCE_SUFFIX d_regex = ':%s$' % ovn_const.DISABLED_RESOURCE_SUFFIX
return { return {
k: [{c: re.sub(d_regex, '', d) for c, d in i.items()} k: [{c: re.sub(d_regex, '', d) for c, d in i.items()}
@ -747,6 +748,7 @@ class OvnProviderHelper(object):
@staticmethod @staticmethod
def _get_selection_keys(lb_algorithm): def _get_selection_keys(lb_algorithm):
# pylint: disable=multiple-statements
return ovn_const.LB_SELECTION_FIELDS_MAP[lb_algorithm] return ovn_const.LB_SELECTION_FIELDS_MAP[lb_algorithm]
def check_lb_protocol(self, lb_id, listener_protocol): def check_lb_protocol(self, lb_id, listener_protocol):

View File

@ -7,11 +7,13 @@ netaddr>=0.7.18 # BSD
neutron-lib>=2.1.0 # Apache-2.0 neutron-lib>=2.1.0 # Apache-2.0
oslo.config>=5.2.0 # Apache-2.0 oslo.config>=5.2.0 # Apache-2.0
oslo.log>=3.36.0 # Apache-2.0 oslo.log>=3.36.0 # Apache-2.0
oslo.messaging>=12.4.0 # Apache-2.0
oslo.serialization>=2.28.1 # Apache-2.0 oslo.serialization>=2.28.1 # Apache-2.0
oslo.utils>=3.33.0 # Apache-2.0 oslo.utils>=3.33.0 # Apache-2.0
ovs>=2.8.0 # Apache-2.0 ovs>=2.8.0 # Apache-2.0
ovsdbapp>=0.17.0 # Apache-2.0 ovsdbapp>=0.17.0 # Apache-2.0
pbr!=2.1.0,>=2.0.0 # Apache-2.0 pbr!=2.1.0,>=2.0.0 # Apache-2.0
SQLAlchemy>=1.2.19 # MIT
tenacity>=5.0.2 # Apache-2.0 tenacity>=5.0.2 # Apache-2.0
octavia-lib>=1.3.1 # Apache-2.0 octavia-lib>=1.3.1 # Apache-2.0
python-neutronclient>=6.7.0 # Apache-2.0 python-neutronclient>=6.7.0 # Apache-2.0

View File

@ -18,7 +18,7 @@
source $DEVSTACK_PATH/functions source $DEVSTACK_PATH/functions
source $NEUTRON_DIR/devstack/lib/ovs source $NEUTRON_DIR/devstack/lib/ovs
source $NEUTRON_DIR/devstack/lib/ovn_agent source $DEVSTACK_PATH/lib/neutron_plugins/ovn_agent
source $NEUTRON_DIR/tools/configure_for_func_testing.sh source $NEUTRON_DIR/tools/configure_for_func_testing.sh
configure_host_for_func_testing configure_host_for_func_testing

View File

@ -10,7 +10,6 @@ flake8-import-order==0.12 # LGPLv3
python-subunit>=1.0.0 # Apache-2.0/BSD python-subunit>=1.0.0 # Apache-2.0/BSD
oslotest>=3.2.0 # Apache-2.0 oslotest>=3.2.0 # Apache-2.0
stestr>=1.0.0 # Apache-2.0 stestr>=1.0.0 # Apache-2.0
astroid==2.1.0 # LGPLv2.1
pylint==2.3.0 # GPLv2 pylint==2.3.0 # GPLv2
isort==4.3.21 # MIT isort==4.3.21 # MIT
octavia-lib>=1.3.1 # Apache-2.0 octavia-lib>=1.3.1 # Apache-2.0

View File

@ -1,5 +1,5 @@
[tox] [tox]
minversion = 3.1.0 minversion = 3.8.0
envlist = docs,py38,pep8 envlist = docs,py38,pep8
skipsdist = True skipsdist = True
ignore_basepython_conflict = True ignore_basepython_conflict = True

View File

@ -99,6 +99,7 @@
l7_protocol_enabled: False l7_protocol_enabled: False
l4_protocol: "TCP" l4_protocol: "TCP"
session_persistence_enabled: False session_persistence_enabled: False
not_implemented_is_error: False
devstack_services: devstack_services:
c-bak: false c-bak: false
ceilometer-acentral: false ceilometer-acentral: false
@ -146,7 +147,8 @@
vars: vars:
tempest_test_regex: ^octavia_tempest_plugin.tests.scenario.v2 tempest_test_regex: ^octavia_tempest_plugin.tests.scenario.v2
tempest_black_regex: "\ tempest_black_regex: "\
(^octavia_tempest_plugin.tests.scenario.v2.test_traffic_ops.TrafficOperationsScenarioTest.test_basic_traffic)|\ (^octavia_tempest_plugin.tests.scenario.v2.test_traffic_ops.TrafficOperationsScenarioTest.test_basic_http_traffic)|\
(^octavia_tempest_plugin.tests.scenario.v2.test_traffic_ops.TrafficOperationsScenarioTest.test_basic_tcp_traffic)|\
(^octavia_tempest_plugin.tests.scenario.v2.test_traffic_ops.TrafficOperationsScenarioTest.test_basic_udp_traffic)" (^octavia_tempest_plugin.tests.scenario.v2.test_traffic_ops.TrafficOperationsScenarioTest.test_basic_udp_traffic)"
tempest_concurrency: 2 tempest_concurrency: 2
tox_envlist: all tox_envlist: all