Fix broken gate

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

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.
The allowed_cidrs value could be an empty list if the
request involves the sdk, so make the check account for that.

OVN Octavia provider driver relies now on new features
comming from OVN master. That means that would be great
to use master, at least in the check queue.

Change-Id: I70adcfad3f4d489d94da171670c23dba51d6f2a1
(cherry picked from commit bfd98048cf
(cherry picked from commit 76b20882aa)
(cherry picked from commit bd32eaa069)
This commit is contained in:
Brian Haley 2020-09-10 14:59:02 -04:00
parent 73030c5c7b
commit f98aaef1bf
3 changed files with 40 additions and 10 deletions

View File

@ -1953,6 +1953,16 @@ class OvnProviderDriver(driver_base.ProviderDriver):
user_fault_string=msg, user_fault_string=msg,
operator_fault_string=msg) operator_fault_string=msg)
def _check_for_allowed_cidrs(self, allowed_cidrs):
# TODO(haleyb): add support for this
if isinstance(allowed_cidrs, o_datamodels.UnsetType):
allowed_cidrs = []
if allowed_cidrs:
msg = _('OVN provider does not support allowed_cidrs option')
raise driver_exceptions.UnsupportedOptionError(
user_fault_string=msg,
operator_fault_string=msg)
def loadbalancer_create(self, loadbalancer): def loadbalancer_create(self, loadbalancer):
admin_state_up = loadbalancer.admin_state_up admin_state_up = loadbalancer.admin_state_up
if isinstance(admin_state_up, o_datamodels.UnsetType): if isinstance(admin_state_up, o_datamodels.UnsetType):
@ -2033,6 +2043,8 @@ 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)
self._check_for_allowed_cidrs(listener.allowed_cidrs)
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
@ -2056,6 +2068,8 @@ 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):
self._check_for_allowed_cidrs(new_listener.allowed_cidrs)
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

@ -48,8 +48,9 @@
OVS_BRANCH: master OVS_BRANCH: master
- job: - job:
name: ovn-octavia-provider-dsvm-base name: ovn-octavia-provider-tempest-base
parent: devstack-tempest parent: devstack-tempest
abstract: true
timeout: 7800 timeout: 7800
required-projects: required-projects:
- openstack/devstack-gate - openstack/devstack-gate
@ -99,6 +100,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
@ -139,14 +141,26 @@
octavia: https://opendev.org/openstack/octavia.git octavia: https://opendev.org/openstack/octavia.git
octavia-tempest-plugin: https://opendev.org/openstack/octavia-tempest-plugin.git octavia-tempest-plugin: https://opendev.org/openstack/octavia-tempest-plugin.git
ovn-octavia-provider: https://opendev.org/openstack/ovn-octavia-provider ovn-octavia-provider: https://opendev.org/openstack/ovn-octavia-provider
tempest_test_regex: "^octavia_tempest_plugin.tests.scenario.v2"
- job:
name: ovn-octavia-provider-v2-dsvm-scenario
parent: ovn-octavia-provider-dsvm-base
vars:
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
- job:
name: ovn-octavia-provider-tempest-release
parent: ovn-octavia-provider-tempest-base
vars:
devstack_localrc:
OVN_BRANCH: v20.06.0
OVS_BRANCH: v2.13.0
- job:
name: ovn-octavia-provider-tempest-master
parent: ovn-octavia-provider-tempest-base
vars:
devstack_localrc:
OVN_BRANCH: master
OVS_BRANCH: master

View File

@ -12,10 +12,12 @@
- openstack/neutron - openstack/neutron
- ovn-octavia-provider-functional-release - ovn-octavia-provider-functional-release
- ovn-octavia-provider-functional-master - ovn-octavia-provider-functional-master
- ovn-octavia-provider-v2-dsvm-scenario - ovn-octavia-provider-tempest-release
- ovn-octavia-provider-tempest-master:
voting: false
gate: gate:
fail-fast: true fail-fast: true
jobs: jobs:
- ovn-octavia-provider-functional-release - ovn-octavia-provider-functional-release
- ovn-octavia-provider-functional-master - ovn-octavia-provider-functional-master
- ovn-octavia-provider-v2-dsvm-scenario - ovn-octavia-provider-tempest-release