commit f98aaef1bfb37e54d40b3bc08c607f618beb119c Author: Brian Haley Date: Thu Sep 10 14:59:02 2020 -0400 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 bfd98048cfabaa66ca8a61047b642e8bf446490c (cherry picked from commit 76b20882aa9fef3c693e45c2b504224a44e84ce8) (cherry picked from commit bd32eaa069b98612a7368e8fae3b1baa52064ab7) diff --git a/ovn_octavia_provider/driver.py b/ovn_octavia_provider/driver.py index 025da36..2d1cd47 100644 --- a/ovn_octavia_provider/driver.py +++ b/ovn_octavia_provider/driver.py @@ -1953,6 +1953,16 @@ class OvnProviderDriver(driver_base.ProviderDriver): user_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): admin_state_up = loadbalancer.admin_state_up if isinstance(admin_state_up, o_datamodels.UnsetType): @@ -2033,6 +2043,8 @@ class OvnProviderDriver(driver_base.ProviderDriver): def listener_create(self, listener): self._check_for_supported_protocols(listener.protocol) + self._check_for_allowed_cidrs(listener.allowed_cidrs) + admin_state_up = listener.admin_state_up if isinstance(admin_state_up, o_datamodels.UnsetType): admin_state_up = True @@ -2056,6 +2068,8 @@ class OvnProviderDriver(driver_base.ProviderDriver): self._ovn_helper.add_request(request) def listener_update(self, old_listener, new_listener): + self._check_for_allowed_cidrs(new_listener.allowed_cidrs) + request_info = {'id': new_listener.listener_id, 'loadbalancer_id': old_listener.loadbalancer_id, 'protocol': old_listener.protocol, diff --git a/zuul.d/base.yaml b/zuul.d/base.yaml index cdff174..46729ac 100644 --- a/zuul.d/base.yaml +++ b/zuul.d/base.yaml @@ -48,8 +48,9 @@ OVS_BRANCH: master - job: - name: ovn-octavia-provider-dsvm-base + name: ovn-octavia-provider-tempest-base parent: devstack-tempest + abstract: true timeout: 7800 required-projects: - openstack/devstack-gate @@ -99,6 +100,7 @@ l7_protocol_enabled: False l4_protocol: "TCP" session_persistence_enabled: False + not_implemented_is_error: False devstack_services: c-bak: false ceilometer-acentral: false @@ -139,14 +141,26 @@ octavia: https://opendev.org/openstack/octavia.git octavia-tempest-plugin: https://opendev.org/openstack/octavia-tempest-plugin.git ovn-octavia-provider: https://opendev.org/openstack/ovn-octavia-provider - -- 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_test_regex: "^octavia_tempest_plugin.tests.scenario.v2" 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)" tempest_concurrency: 2 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 diff --git a/zuul.d/project.yaml b/zuul.d/project.yaml index 9688ab0..8421af8 100644 --- a/zuul.d/project.yaml +++ b/zuul.d/project.yaml @@ -12,10 +12,12 @@ - openstack/neutron - ovn-octavia-provider-functional-release - ovn-octavia-provider-functional-master - - ovn-octavia-provider-v2-dsvm-scenario + - ovn-octavia-provider-tempest-release + - ovn-octavia-provider-tempest-master: + voting: false gate: fail-fast: true jobs: - ovn-octavia-provider-functional-release - ovn-octavia-provider-functional-master - - ovn-octavia-provider-v2-dsvm-scenario + - ovn-octavia-provider-tempest-release