From 8bbd743e087175b7553383883914891e8904a153 Mon Sep 17 00:00:00 2001 From: elajkat Date: Wed, 4 Nov 2020 16:41:34 +0100 Subject: [PATCH] start using available_features cfg option from tempest [1] introduced a new list cfg option to tempest network-feature-enabled available_features, which can list networking features without and API extension. As a first candidate ipv6_metadata can be added to master and victoria jobs. [1] https://review.opendev.org/760916 Change-Id: Ib8ba513ad098bb47d401ba64311b92280a85e1b2 --- neutron_tempest_plugin/config.py | 12 ------------ neutron_tempest_plugin/scenario/test_metadata.py | 15 ++++++++++----- zuul.d/master_jobs.yaml | 16 +++++++++++++++- zuul.d/queens_jobs.yaml | 4 ++++ zuul.d/rocky_jobs.yaml | 2 ++ zuul.d/stein_jobs.yaml | 11 +++++++++++ zuul.d/train_jobs.yaml | 11 +++++++++++ zuul.d/ussuri_jobs.yaml | 13 +++++++++++++ zuul.d/victoria_jobs.yaml | 16 ++++++++++++++++ 9 files changed, 82 insertions(+), 18 deletions(-) diff --git a/neutron_tempest_plugin/config.py b/neutron_tempest_plugin/config.py index c0e21c18..2290d0f3 100644 --- a/neutron_tempest_plugin/config.py +++ b/neutron_tempest_plugin/config.py @@ -120,18 +120,6 @@ NeutronPluginOptions = [ 'This is required if advanced image has to be used in ' 'tests.'), - # Enable/disable metadata over IPv6 tests. This feature naturally - # does not have an API extension, but at the time of first implementation - # it works only on victoria+ deployments with dhcp- and/or l3-agents - # (which in the gate is the same as non-ovn jobs). - cfg.BoolOpt('ipv6_metadata', - default=True, - help='Enable metadata over IPv6 tests where the feature is ' - 'implemented, disable where it is not. Use this instead ' - 'of network-feature-enabled.api_extensions, since API ' - 'extensions do not make sense for a feature not ' - 'exposed on the API.'), - # Option for creating QoS policies configures as "shared". # The default is false in order to prevent undesired usage # while testing in parallel. diff --git a/neutron_tempest_plugin/scenario/test_metadata.py b/neutron_tempest_plugin/scenario/test_metadata.py index 38971839..28404094 100644 --- a/neutron_tempest_plugin/scenario/test_metadata.py +++ b/neutron_tempest_plugin/scenario/test_metadata.py @@ -16,6 +16,7 @@ import collections from neutron_lib import constants as nlib_const from oslo_log import log as logging +from tempest.common import utils from tempest.lib.common.utils import data_utils from tempest.lib import decorators import testtools @@ -44,6 +45,12 @@ class MetadataTest(base.BaseTempestTestCase): credentials = ['primary', 'admin'] force_tenant_isolation = False + @classmethod + def skip_checks(cls): + super(MetadataTest, cls).skip_checks() + if not utils.is_network_feature_enabled('ipv6_metadata'): + raise cls.skipException("Metadata over IPv6 is not enabled") + @classmethod def resource_setup(cls): super(MetadataTest, cls).resource_setup() @@ -113,11 +120,9 @@ class MetadataTest(base.BaseTempestTestCase): return interface @testtools.skipUnless( - (CONF.neutron_plugin_options.ipv6_metadata and - (CONF.neutron_plugin_options.advanced_image_ref or - CONF.neutron_plugin_options.default_image_is_advanced)), - 'Advanced image and neutron_plugin_options.ipv6_metadata=True ' - 'is required to run this test.') + CONF.neutron_plugin_options.advanced_image_ref or + CONF.neutron_plugin_options.default_image_is_advanced, + 'Advanced image is required to run this test.') @decorators.idempotent_id('e680949a-f1cc-11ea-b49a-cba39bbbe5ad') def test_metadata_routed(self): use_advanced_image = ( diff --git a/zuul.d/master_jobs.yaml b/zuul.d/master_jobs.yaml index 728eed8d..626fc99d 100644 --- a/zuul.d/master_jobs.yaml +++ b/zuul.d/master_jobs.yaml @@ -79,6 +79,8 @@ - uplink-status-propagation network_api_extensions_tempest: - dvr + network_available_features: &available_features + - ipv6_metadata tempest_test_regex: ^neutron_tempest_plugin\.api devstack_services: neutron-log: true @@ -99,6 +101,7 @@ timeout: 10000 vars: network_api_extensions: *api_extensions + network_available_features: *available_features devstack_localrc: Q_AGENT: openvswitch NETWORK_API_EXTENSIONS: "{{ network_api_extensions | join(',') }}" @@ -118,6 +121,8 @@ bridge_mappings: public:br-ex test-config: $TEMPEST_CONFIG: + network-feature-enabled: + available_features: "{{ network_available_features | join(',') }}" neutron_plugin_options: available_type_drivers: flat,vlan,local,vxlan @@ -127,6 +132,7 @@ timeout: 10000 vars: network_api_extensions: *api_extensions + network_available_features: *available_features # TODO(slaweq): remove trunks subport_connectivity test from blacklist # when bug https://bugs.launchpad.net/neutron/+bug/1838760 will be fixed tempest_black_regex: "(^neutron_tempest_plugin.scenario.test_trunk.TrunkTest.test_subport_connectivity)" @@ -151,6 +157,8 @@ firewall_driver: iptables_hybrid test-config: $TEMPEST_CONFIG: + network-feature-enabled: + available_features: "{{ network_available_features | join(',') }}" neutron_plugin_options: available_type_drivers: flat,vlan,local,vxlan @@ -163,6 +171,7 @@ pre-run: playbooks/linuxbridge-scenario-pre-run.yaml vars: network_api_extensions: *api_extensions + network_available_features: *available_features devstack_localrc: Q_AGENT: linuxbridge NETWORK_API_EXTENSIONS: "{{ network_api_extensions | join(',') }}" @@ -181,6 +190,8 @@ type_drivers: flat,vlan,local,vxlan test-config: $TEMPEST_CONFIG: + network-feature-enabled: + available_features: "{{ network_available_features | join(',') }}" neutron_plugin_options: available_type_drivers: flat,vlan,local,vxlan q_agent: linuxbridge @@ -242,9 +253,10 @@ type_drivers: local,flat,vlan,geneve test-config: $TEMPEST_CONFIG: + network-feature-enabled: + available_features: "" neutron_plugin_options: available_type_drivers: local,flat,vlan,geneve - ipv6_metadata: False is_igmp_snooping_enabled: True - job: @@ -347,6 +359,8 @@ keystone: "cors request_id catch_errors osprofiler authtoken keystonecontext extensions neutronapiapp_v2_0" test-config: $TEMPEST_CONFIG: + network-feature-enabled: + available_features: *available_features neutron_plugin_options: provider_vlans: foo, agent_availability_zone: nova diff --git a/zuul.d/queens_jobs.yaml b/zuul.d/queens_jobs.yaml index b0ee3362..682147e6 100644 --- a/zuul.d/queens_jobs.yaml +++ b/zuul.d/queens_jobs.yaml @@ -65,6 +65,8 @@ - trunk-details network_api_extensions_tempest: - dvr + network_available_features: &available_features + - devstack_localrc: USE_PYTHON3: false CIRROS_VERSION: 0.3.5 @@ -87,6 +89,7 @@ vars: branch_override: stable/queens network_api_extensions: *api_extensions + network_available_features: *available_features # TODO(slaweq): remove trunks subport_connectivity test from blacklist # when bug https://bugs.launchpad.net/neutron/+bug/1838760 will be fixed # NOTE(bcafarel): remove DNS test as queens pinned version does not have @@ -117,6 +120,7 @@ vars: branch_override: stable/queens network_api_extensions: *api_extensions + network_available_features: *available_features # NOTE(bcafarel): remove DNS test as queens pinned version does not have # fix for https://bugs.launchpad.net/neutron/+bug/1826419 tempest_black_regex: "\ diff --git a/zuul.d/rocky_jobs.yaml b/zuul.d/rocky_jobs.yaml index 6eb8c15e..ef794a1c 100644 --- a/zuul.d/rocky_jobs.yaml +++ b/zuul.d/rocky_jobs.yaml @@ -108,6 +108,8 @@ vars: &scenario_vars_rocky branch_override: stable/rocky network_api_extensions: *api_extensions + network_available_features: &available_features + - devstack_localrc: USE_PYTHON3: false NETWORK_API_EXTENSIONS: "{{ network_api_extensions | join(',') }}" diff --git a/zuul.d/stein_jobs.yaml b/zuul.d/stein_jobs.yaml index ff6ed389..043e6bcb 100644 --- a/zuul.d/stein_jobs.yaml +++ b/zuul.d/stein_jobs.yaml @@ -73,6 +73,8 @@ - uplink-status-propagation network_api_extensions_tempest: - dvr + network_available_features: &available_features + - devstack_localrc: NETWORK_API_EXTENSIONS: "{{ (network_api_extensions_common + network_api_extensions_tempest) | join(',') }}" @@ -84,11 +86,14 @@ vars: branch_override: stable/stein network_api_extensions: *api_extensions + network_available_features: *available_features devstack_localrc: NETWORK_API_EXTENSIONS: "{{ network_api_extensions | join(',') }}" devstack_local_conf: test-config: $TEMPEST_CONFIG: + network-feature-enabled: + available_features: "" neutron_plugin_options: ipv6_metadata: False @@ -100,11 +105,14 @@ vars: branch_override: stable/stein network_api_extensions: *api_extensions + network_available_features: *available_features devstack_localrc: NETWORK_API_EXTENSIONS: "{{ network_api_extensions | join(',') }}" devstack_local_conf: test-config: $TEMPEST_CONFIG: + network-feature-enabled: + available_features: "" neutron_plugin_options: ipv6_metadata: False @@ -116,11 +124,14 @@ vars: branch_override: stable/stein network_api_extensions: *api_extensions + network_available_features: *available_features devstack_localrc: NETWORK_API_EXTENSIONS: "{{ network_api_extensions | join(',') }}" devstack_local_conf: test-config: $TEMPEST_CONFIG: + network-feature-enabled: + available_features: "" neutron_plugin_options: ipv6_metadata: False diff --git a/zuul.d/train_jobs.yaml b/zuul.d/train_jobs.yaml index a9cc5be8..a0402d8d 100644 --- a/zuul.d/train_jobs.yaml +++ b/zuul.d/train_jobs.yaml @@ -78,6 +78,8 @@ - uplink-status-propagation network_api_extensions_tempest: - dvr + network_available_features: &available_features + - devstack_localrc: NETWORK_API_EXTENSIONS: "{{ (network_api_extensions_common + network_api_extensions_tempest) | join(',') }}" @@ -89,11 +91,14 @@ vars: branch_override: stable/train network_api_extensions: *api_extensions + network_available_features: *available_features devstack_localrc: NETWORK_API_EXTENSIONS: "{{ network_api_extensions | join(',') }}" devstack_local_conf: test-config: $TEMPEST_CONFIG: + network-feature-enabled: + available_features: "" neutron_plugin_options: ipv6_metadata: False @@ -105,11 +110,14 @@ vars: branch_override: stable/train network_api_extensions: *api_extensions + network_available_features: *available_features devstack_localrc: NETWORK_API_EXTENSIONS: "{{ network_api_extensions | join(',') }}" devstack_local_conf: test-config: $TEMPEST_CONFIG: + network-feature-enabled: + available_features: "" neutron_plugin_options: ipv6_metadata: False @@ -121,11 +129,14 @@ vars: branch_override: stable/train network_api_extensions: *api_extensions + network_available_features: *available_features devstack_localrc: NETWORK_API_EXTENSIONS: "{{ network_api_extensions | join(',') }}" devstack_local_conf: test-config: $TEMPEST_CONFIG: + network-feature-enabled: + available_features: "" neutron_plugin_options: ipv6_metadata: False diff --git a/zuul.d/ussuri_jobs.yaml b/zuul.d/ussuri_jobs.yaml index 135d9f5c..d04f5a0a 100644 --- a/zuul.d/ussuri_jobs.yaml +++ b/zuul.d/ussuri_jobs.yaml @@ -82,9 +82,12 @@ - uplink-status-propagation network_api_extensions_tempest: - dvr + network_available_features: &available_features + - devstack_localrc: NETWORK_API_EXTENSIONS: "{{ (network_api_extensions_common + network_api_extensions_tempest) | join(',') }}" + - job: name: neutron-tempest-plugin-scenario-openvswitch-ussuri parent: neutron-tempest-plugin-scenario-openvswitch @@ -93,14 +96,18 @@ vars: branch_override: stable/ussuri network_api_extensions: *api_extensions + network_available_features: *available_features devstack_localrc: NETWORK_API_EXTENSIONS: "{{ network_api_extensions | join(',') }}" devstack_local_conf: test-config: $TEMPEST_CONFIG: + network-feature-enabled: + available_features: "" neutron_plugin_options: ipv6_metadata: False + - job: name: neutron-tempest-plugin-scenario-openvswitch-iptables_hybrid-ussuri parent: neutron-tempest-plugin-scenario-openvswitch-iptables_hybrid @@ -109,11 +116,14 @@ vars: branch_override: stable/ussuri network_api_extensions: *api_extensions + network_available_features: *available_features devstack_localrc: NETWORK_API_EXTENSIONS: "{{ network_api_extensions | join(',') }}" devstack_local_conf: test-config: $TEMPEST_CONFIG: + network-feature-enabled: + available_features: "" neutron_plugin_options: ipv6_metadata: False @@ -125,11 +135,14 @@ vars: branch_override: stable/ussuri network_api_extensions: *api_extensions + network_available_features: *available_features devstack_localrc: NETWORK_API_EXTENSIONS: "{{ network_api_extensions | join(',') }}" devstack_local_conf: test-config: $TEMPEST_CONFIG: + network-feature-enabled: + available_features: "" neutron_plugin_options: ipv6_metadata: False diff --git a/zuul.d/victoria_jobs.yaml b/zuul.d/victoria_jobs.yaml index 0bc1e132..78956adb 100644 --- a/zuul.d/victoria_jobs.yaml +++ b/zuul.d/victoria_jobs.yaml @@ -81,6 +81,8 @@ - uplink-status-propagation network_api_extensions_tempest: - dvr + network_available_features: &available_features + - ipv6_metadata devstack_localrc: NETWORK_API_EXTENSIONS: "{{ (network_api_extensions_common + network_api_extensions_tempest) | join(',') }}" @@ -91,11 +93,14 @@ vars: branch_override: stable/victoria network_api_extensions: *api_extensions + network_available_features: *available_features devstack_localrc: NETWORK_API_EXTENSIONS: "{{ network_api_extensions | join(',') }}" devstack_local_conf: test-config: $TEMPEST_CONFIG: + network-feature-enabled: + available_features: "{{ network_available_features | join(',') }}" neutron_plugin_options: ipv6_metadata: False @@ -106,11 +111,14 @@ vars: branch_override: stable-victoria network_api_extensions: *api_extensions + network_available_features: *available_features devstack_localrc: NETWORK_API_EXTENSIONS: "{{ network_api_extensions | join(',') }}" devstack_local_conf: test-config: $TEMPEST_CONFIG: + network-feature-enabled: + available_features: "{{ network_available_features | join(',') }}" neutron_plugin_options: ipv6_metadata: False @@ -121,11 +129,14 @@ vars: branch_override: stable/victoria network_api_extensions: *api_extensions + network_available_features: *available_features devstack_localrc: NETWORK_API_EXTENSIONS: "{{ network_api_extensions | join(',') }}" devstack_local_conf: test-config: $TEMPEST_CONFIG: + network-feature-enabled: + available_features: "{{ network_available_features | join(',') }}" neutron_plugin_options: ipv6_metadata: False @@ -138,6 +149,11 @@ network_api_extensions: *api_extensions devstack_localrc: NETWORK_API_EXTENSIONS: "{{ network_api_extensions | join(',') }}" + devstack_local_conf: + test-config: + $TEMPEST_CONFIG: + network-feature-enabled: + available_features: "" - job: name: neutron-tempest-plugin-dvr-multinode-scenario-victoria