Merge "Hide ssh_proxy_jump_password from debug log"
diff --git a/neutron_tempest_plugin/api/admin/test_networks.py b/neutron_tempest_plugin/api/admin/test_networks.py
index 17a8990..a67afa3 100644
--- a/neutron_tempest_plugin/api/admin/test_networks.py
+++ b/neutron_tempest_plugin/api/admin/test_networks.py
@@ -86,3 +86,55 @@
network = self.admin_client.show_network(
network['id'])['network']
self.assertEqual('vxlan', network['provider:network_type'])
+
+ @decorators.idempotent_id('bbb9a2be-c9a7-4693-ac8e-d51b5371b68d')
+ def test_list_network_filter_provider_attributes(self):
+ if not config.CONF.neutron_plugin_options.provider_vlans:
+ raise self.skipException("No provider VLAN networks available")
+ project_id = self.client.project_id
+ physnet_name = config.CONF.neutron_plugin_options.provider_vlans[0]
+ # Check project networks pre-created.
+ body = self.client.list_networks(project_id=project_id)['networks']
+ num_networks_precreated = len(body)
+
+ networks = []
+ num_networks = 5
+ for _ in range(num_networks):
+ networks.append(self.create_network(
+ provider_network_type='vlan',
+ provider_physical_network=physnet_name,
+ project_id=project_id))
+
+ # Check new project networks created.
+ body = self.client.list_networks(project_id=project_id)['networks']
+ self.assertEqual(num_networks + num_networks_precreated, len(body))
+
+ vlan_ids = [net['provider:segmentation_id'] for net in networks]
+
+ # List networks with limit (from 1 to num_networks).
+ # Each filter (except from the 'provider:segmentation_id'), uses the
+ # value directly and in a list.
+ for idx in range(1, num_networks + 1):
+ # Filter by 'provider:network_type'
+ kwargs = {'provider:network_type': 'vlan',
+ 'project_id': project_id, 'limit': idx}
+ body = self.client.list_networks(**kwargs)['networks']
+ self.assertEqual(idx, len(body))
+ kwargs['provider:network_type'] = ['vlan']
+ body = self.client.list_networks(**kwargs)['networks']
+ self.assertEqual(idx, len(body))
+
+ # Filter by 'provider:physical_network'.
+ kwargs = {'provider:physical_network': physnet_name,
+ 'project_id': project_id, 'limit': idx}
+ body = self.client.list_networks(**kwargs)['networks']
+ self.assertEqual(idx, len(body))
+ kwargs['provider:physical_network'] = [physnet_name]
+ body = self.client.list_networks(**kwargs)['networks']
+ self.assertEqual(idx, len(body))
+
+ # Filter by 'provider:segmentation_id'
+ kwargs = {'provider:segmentation_id': vlan_ids,
+ 'project_id': project_id, 'limit': idx}
+ body = self.client.list_networks(**kwargs)['networks']
+ self.assertEqual(idx, len(body))
diff --git a/neutron_tempest_plugin/api/test_routers.py b/neutron_tempest_plugin/api/test_routers.py
index 1470a7b..0012ffe 100644
--- a/neutron_tempest_plugin/api/test_routers.py
+++ b/neutron_tempest_plugin/api/test_routers.py
@@ -506,9 +506,17 @@
remove_gateways[0])
external_gateways[1] = remove_gateways[0]
- res_update_gws = self.admin_client.router_update_external_gateways(
- router['id'],
- external_gateways)
+ try:
+ res_update_gws = self.admin_client.router_update_external_gateways(
+ router['id'],
+ external_gateways)
+ except lib_exc.Conflict as exc:
+ if 'IpAddressAlreadyAllocated' in str(exc):
+ self.skipTest(
+ 'The IP address of the removed gateway port is already '
+ 'used by other test, thus this exception is dismissed and '
+ 'the rest of the test skipped')
+ raise exc
self.assertEqual(len(res_update_gws['router']['external_gateways']), 2)
for n in range(0, 2):
diff --git a/neutron_tempest_plugin/bgpvpn/base.py b/neutron_tempest_plugin/bgpvpn/base.py
index b436a5d..aeecbfc 100644
--- a/neutron_tempest_plugin/bgpvpn/base.py
+++ b/neutron_tempest_plugin/bgpvpn/base.py
@@ -72,13 +72,8 @@
@classmethod
def skip_checks(cls):
super(BaseBgpvpnTest, cls).skip_checks()
- msg = None
if not utils.is_extension_enabled('bgpvpn', 'network'):
msg = "Bgpvpn extension not enabled."
- elif not CONF.bgpvpn.run_bgpvpn_tests:
- msg = ("Running of bgpvpn related tests is disabled in "
- "plugin configuration.")
- if msg:
raise cls.skipException(msg)
def create_bgpvpn(self, client, **kwargs):
diff --git a/neutron_tempest_plugin/common/ip.py b/neutron_tempest_plugin/common/ip.py
index 5335219..e87219b 100644
--- a/neutron_tempest_plugin/common/ip.py
+++ b/neutron_tempest_plugin/common/ip.py
@@ -159,21 +159,22 @@
# ip addr del 192.168.1.1/24 dev em1
return self.execute('address', 'del', address, 'dev', device)
- def add_route(self, address, device, gateway=None):
+ def add_route(self, address, device, gateway=None, ip_version=4):
if gateway:
- # ip route add 192.168.1.0/24 via 192.168.22.1 dev em1
return self.execute(
'route', 'add', address, 'via', gateway, 'dev', device)
else:
- # ip route add 192.168.1.0/24 dev em1
- return self.execute('route', 'add', address, 'dev', device)
+ return self.execute(
+ f'-{ip_version}', 'route', 'add', address, 'dev', device)
- def delete_route(self, address, device):
- # ip route del 192.168.1.0/24 dev em1
- return self.execute('route', 'del', address, 'dev', device)
+ def delete_route(self, address, device, ip_version=4):
+ return self.execute(
+ f'-{ip_version}', 'route', 'del', address, 'dev', device)
- def list_routes(self, *args):
- output = self.execute('route', 'show', *args)
+ def list_routes(self, *args, device=None, ip_version=4):
+ if not args and device:
+ args = ("dev", device)
+ output = self.execute(f'-{ip_version}', 'route', 'show', *args)
return list(parse_routes(output))
def get_nic_name_by_mac(self, mac_address):
diff --git a/neutron_tempest_plugin/config.py b/neutron_tempest_plugin/config.py
index 3d052b3..880d3a6 100644
--- a/neutron_tempest_plugin/config.py
+++ b/neutron_tempest_plugin/config.py
@@ -159,22 +159,11 @@
default=False,
help='Schedule BGP speakers to agents explicitly.'),
]
+neutron_group = cfg.OptGroup(name="neutron_plugin_options",
+ title="Neutron Plugin Options")
-# TODO(amuller): Redo configuration options registration as part of the planned
-# transition to the Tempest plugin architecture
-for opt in NeutronPluginOptions:
- CONF.register_opt(opt, 'neutron_plugin_options')
BgpvpnGroup = [
- # TODO(tkajinam): This has been required since the plugin tests was merged
- # into neutron-tempest-plugin in Train. Remove this after 2025.1 release.
- cfg.BoolOpt('run_bgpvpn_tests',
- default=True,
- help=("If it is set to False bgpvpn api and scenario tests "
- "will be skipped"),
- deprecated_for_removal=True,
- deprecated_reason='Tests are skipped according to '
- 'the available extensions.'),
cfg.IntOpt('min_asn',
default=100,
help=("Minimum number for the range of "
@@ -192,48 +181,17 @@
help=("Maximum number for the range of "
"assigned number for distinguishers.")),
]
-
bgpvpn_group = cfg.OptGroup(name="bgpvpn", title=("Networking-Bgpvpn Service "
"Options"))
-CONF.register_group(bgpvpn_group)
-CONF.register_opts(BgpvpnGroup, group="bgpvpn")
FwaasGroup = [
- # TODO(tkajinam): This has been required since the plugin tests was merged
- # into neutron-tempest-plugin in Train. Remove this after 2025.1 release.
- cfg.BoolOpt('run_fwaas_tests',
- default=True,
- help=("If it is set to False fwaas api and scenario tests "
- "will be skipped"),
- deprecated_for_removal=True,
- deprecated_reason='Tests are skipped according to '
- 'the available extensions.'),
cfg.StrOpt('driver',
default=None,
choices=['openvswitch', 'ovn'],
help='Driver used by the FWaaS plugin.'),
]
-
fwaas_group = cfg.OptGroup(
name="fwaas", title=("Neutron-fwaas Service Options"))
-CONF.register_group(fwaas_group)
-CONF.register_opts(FwaasGroup, group="fwaas")
-
-SfcGroup = [
- # TODO(tkajinam): This has been required since the plugin tests was merged
- # into neutron-tempest-plugin in Train. Remove this after 2025.1 release.
- cfg.BoolOpt('run_sfc_tests',
- default=True,
- help=("If it is set to False SFC api and scenario tests "
- "will be skipped"),
- deprecated_for_removal=True,
- deprecated_reason='Tests are skipped according to '
- 'the available extensions.'),
-]
-
-sfc_group = cfg.OptGroup(name="sfc", title=("Networking-sfc Service Options"))
-CONF.register_group(sfc_group)
-CONF.register_opts(SfcGroup, group="sfc")
TaasGroup = [
@@ -250,8 +208,6 @@
]
taas_group = cfg.OptGroup(name='taas',
title='TaaS Tempest Options')
-CONF.register_group(taas_group)
-CONF.register_opts(TaasGroup, group="taas")
DynamicRoutingGroup = [
@@ -260,12 +216,9 @@
help=('Base image used to build the image for connectivity '
'check')),
]
-
dynamic_routing_group = cfg.OptGroup(
name="dynamic_routing",
title=("Neutron-Dynamic-Routing Service Options"))
-CONF.register_group(dynamic_routing_group)
-CONF.register_opts(DynamicRoutingGroup, group="dynamic_routing")
# DNS Integration with an External Service
@@ -277,5 +230,3 @@
]
dns_feature_group = cfg.OptGroup(
name='designate_feature_enabled', title='Enabled Designate Features')
-CONF.register_group(dns_feature_group)
-CONF.register_opts(DnsFeatureGroup, group="designate_feature_enabled")
diff --git a/neutron_tempest_plugin/fwaas/api/fwaas_v2_base.py b/neutron_tempest_plugin/fwaas/api/fwaas_v2_base.py
index f4f63ec..e54c643 100644
--- a/neutron_tempest_plugin/fwaas/api/fwaas_v2_base.py
+++ b/neutron_tempest_plugin/fwaas/api/fwaas_v2_base.py
@@ -21,13 +21,4 @@
class BaseFWaaSTest(fwaas_v2_client.FWaaSClientMixin, base.BaseNetworkTest):
-
- @classmethod
- def skip_checks(cls):
- super(BaseFWaaSTest, cls).skip_checks()
- msg = None
- if not CONF.fwaas.run_fwaas_tests:
- msg = ("Running of fwaas related tests is disabled in "
- "plugin configuration.")
- if msg:
- raise cls.skipException(msg)
+ pass
diff --git a/neutron_tempest_plugin/fwaas/scenario/fwaas_v2_manager.py b/neutron_tempest_plugin/fwaas/scenario/fwaas_v2_manager.py
index 9cc0a6a..371a186 100644
--- a/neutron_tempest_plugin/fwaas/scenario/fwaas_v2_manager.py
+++ b/neutron_tempest_plugin/fwaas/scenario/fwaas_v2_manager.py
@@ -31,16 +31,6 @@
credentials = ['primary']
- @classmethod
- def skip_checks(cls):
- super(ScenarioTest, cls).skip_checks()
- msg = None
- if not CONF.fwaas.run_fwaas_tests:
- msg = ("Running of fwaas related tests is disabled in "
- "plugin configuration.")
- if msg:
- raise cls.skipException(msg)
-
class NetworkScenarioTest(ScenarioTest):
"""Base class for network scenario tests.
diff --git a/neutron_tempest_plugin/plugin.py b/neutron_tempest_plugin/plugin.py
index fc41bdd..029fdab 100644
--- a/neutron_tempest_plugin/plugin.py
+++ b/neutron_tempest_plugin/plugin.py
@@ -16,8 +16,11 @@
import os
+from tempest import config
from tempest.test_discover import plugins
+from neutron_tempest_plugin import config as neutron_config
+
class NeutronTempestPlugin(plugins.TempestPlugin):
def load_tests(self):
@@ -28,7 +31,31 @@
return full_test_dir, base_path
def register_opts(self, conf):
- pass
+ config.register_opt_group(conf, neutron_config.neutron_group,
+ neutron_config.NeutronPluginOptions)
+ config.register_opt_group(conf, neutron_config.bgpvpn_group,
+ neutron_config.BgpvpnGroup)
+ config.register_opt_group(conf, neutron_config.fwaas_group,
+ neutron_config.FwaasGroup)
+ config.register_opt_group(conf, neutron_config.taas_group,
+ neutron_config.TaasGroup)
+ config.register_opt_group(conf, neutron_config.dynamic_routing_group,
+ neutron_config.DynamicRoutingGroup)
+ config.register_opt_group(conf, neutron_config.dns_feature_group,
+ neutron_config.DnsFeatureGroup)
def get_opt_lists(self):
- pass
+ return [
+ (neutron_config.neutron_group.name,
+ neutron_config.NeutronPluginOptions),
+ (neutron_config.bgpvpn_group.name,
+ neutron_config.BgpvpnGroup),
+ (neutron_config.fwaas_group.name,
+ neutron_config.FwaasGroup),
+ (neutron_config.taas_group.name,
+ neutron_config.TaasGroup),
+ (neutron_config.dynamic_routing_group.name,
+ neutron_config.DynamicRoutingGroup),
+ (neutron_config.dns_feature_group.name,
+ neutron_config.DnsFeatureGroup)
+ ]
diff --git a/neutron_tempest_plugin/scenario/test_vlan_transparency.py b/neutron_tempest_plugin/scenario/test_vlan_transparency.py
index 85648bc..11ff510 100644
--- a/neutron_tempest_plugin/scenario/test_vlan_transparency.py
+++ b/neutron_tempest_plugin/scenario/test_vlan_transparency.py
@@ -123,8 +123,8 @@
self, port_security=True, use_allowed_address_pairs=False):
self._ensure_ethtype()
vlan_tag = data_utils.rand_int_id(start=MIN_VLAN_ID, end=MAX_VLAN_ID)
- vlan_ipmask_template = '192.168.%d.{ip_last_byte}/24' % (vlan_tag %
- 256)
+ vtag = vlan_tag % 256
+ vlan_ipmask_template = '192.%d.%d.{ip_last_byte}/24' % (vtag, vtag)
vms = []
vlan_ipmasks = []
floating_ips = []
diff --git a/neutron_tempest_plugin/sfc/tests/api/base.py b/neutron_tempest_plugin/sfc/tests/api/base.py
index 606aed6..329bed8 100644
--- a/neutron_tempest_plugin/sfc/tests/api/base.py
+++ b/neutron_tempest_plugin/sfc/tests/api/base.py
@@ -34,16 +34,6 @@
):
@classmethod
- def skip_checks(cls):
- super(BaseFlowClassifierTest, cls).skip_checks()
- msg = None
- if not CONF.sfc.run_sfc_tests:
- msg = ("Running of SFC related tests is disabled in "
- "plugin configuration.")
- if msg:
- raise cls.skipException(msg)
-
- @classmethod
def resource_setup(cls):
super(BaseFlowClassifierTest, cls).resource_setup()
if not utils.is_extension_enabled('flow_classifier', 'network'):
diff --git a/neutron_tempest_plugin/sfc/tests/scenario/base.py b/neutron_tempest_plugin/sfc/tests/scenario/base.py
index 44b5cd2..5945aef 100644
--- a/neutron_tempest_plugin/sfc/tests/scenario/base.py
+++ b/neutron_tempest_plugin/sfc/tests/scenario/base.py
@@ -31,16 +31,6 @@
manager.NetworkScenarioTest
):
- @classmethod
- def skip_checks(cls):
- super(SfcScenarioTest, cls).skip_checks()
- msg = None
- if not CONF.sfc.run_sfc_tests:
- msg = ("Running of SFC related tests is disabled in "
- "plugin configuration.")
- if msg:
- raise cls.skipException(msg)
-
def _check_connectivity(
self, source_ip, destination_ip, routes=None,
username=None, private_key=None
diff --git a/releasenotes/notes/remove-run-tests-opts-152c092bee1dc81d.yaml b/releasenotes/notes/remove-run-tests-opts-152c092bee1dc81d.yaml
new file mode 100644
index 0000000..bd3fb45
--- /dev/null
+++ b/releasenotes/notes/remove-run-tests-opts-152c092bee1dc81d.yaml
@@ -0,0 +1,8 @@
+---
+upgrade:
+ - |
+ The following options have been removed.
+
+ - ``[bgpvpn] run_bgpvpn_tests``
+ - ``[fwaas] run_fwaas_tests``
+ - ``[sfc] run_sfc_tests``
diff --git a/tools/customize_ubuntu_image b/tools/customize_ubuntu_image
index 34b22fe..438d97e 100755
--- a/tools/customize_ubuntu_image
+++ b/tools/customize_ubuntu_image
@@ -69,14 +69,19 @@
bind_dir "/sys" "${mount_dir}/sys"
if [ -f /etc/apt/sources.list ]; then
mirror=$(grep -oP 'https?://\K[^/ ]+' /etc/apt/sources.list|head -1)
- if [ -f ${mount_dir}/etc/apt/sources.list ]; then
- source ${mount_dir}/etc/os-release
- sudo tee ${mount_dir}/etc/apt/sources.list <<EOF
- deb [ trusted=yes ] https://${mirror}/ubuntu ${UBUNTU_CODENAME} main universe
- deb [ trusted=yes ] https://${mirror}/ubuntu ${UBUNTU_CODENAME}-updates main universe
- deb [ trusted=yes ] https://${mirror}/ubuntu ${UBUNTU_CODENAME}-backports main universe
- deb [ trusted=yes ] https://${mirror}/ubuntu ${UBUNTU_CODENAME}-security main universe
+ if [ -n "${mirror}" ]; then
+ if sudo test -f ${mount_dir}/etc/apt/sources.list.d/ubuntu.sources; then
+ sudo sed -Ei "s|(http[s]?://)([^/]+)|\1${mirror}|g" ${mount_dir}/etc/apt/sources.list.d/ubuntu.sources
+ sudo sed -i "/URIs:/a Trusted: yes" ${mount_dir}/etc/apt/sources.list.d/ubuntu.sources
+ elif sudo test -f ${mount_dir}/etc/apt/sources.list; then
+ source <(sudo cat ${mount_dir}/etc/os-release)
+ sudo tee ${mount_dir}/etc/apt/sources.list <<EOF
+ deb [ trusted=yes ] https://${mirror}/ubuntu ${UBUNTU_CODENAME} main universe
+ deb [ trusted=yes ] https://${mirror}/ubuntu ${UBUNTU_CODENAME}-updates main universe
+ deb [ trusted=yes ] https://${mirror}/ubuntu ${UBUNTU_CODENAME}-backports main universe
+ deb [ trusted=yes ] https://${mirror}/ubuntu ${UBUNTU_CODENAME}-security main universe
EOF
+ fi
fi
fi
diff --git a/zuul.d/2023_1_jobs.yaml b/zuul.d/2023_1_jobs.yaml
index d69054c..93a82cf 100644
--- a/zuul.d/2023_1_jobs.yaml
+++ b/zuul.d/2023_1_jobs.yaml
@@ -2,7 +2,11 @@
name: neutron-tempest-plugin-openvswitch-2023-1
parent: neutron-tempest-plugin-openvswitch
nodeset: neutron-nested-virt-ubuntu-jammy
- override-checkout: stable/2023.1
+ required-projects: &required-projects-2023-1
+ - openstack/neutron
+ - name: openstack/neutron-tempest-plugin
+ override-checkout: 2023.1-last
+ - openstack/tempest
vars:
network_api_extensions_openvswitch:
- dhcp_agent_scheduler
@@ -107,7 +111,7 @@
name: neutron-tempest-plugin-openvswitch-iptables_hybrid-2023-1
parent: neutron-tempest-plugin-openvswitch-iptables_hybrid
nodeset: neutron-nested-virt-ubuntu-jammy
- override-checkout: stable/2023.1
+ required-projects: *required-projects-2023-1
vars:
network_api_extensions_common: *api_extensions
network_api_extensions_openvswitch:
@@ -146,7 +150,7 @@
name: neutron-tempest-plugin-openvswitch-enforce-scope-new-defaults-2023-1
parent: neutron-tempest-plugin-openvswitch-2023-1
nodeset: neutron-nested-virt-ubuntu-jammy
- override-checkout: stable/2023.1
+ required-projects: *required-projects-2023-1
vars:
devstack_localrc:
# Enabeling the scope and new defaults for services.
@@ -164,7 +168,7 @@
name: neutron-tempest-plugin-linuxbridge-2023-1
parent: neutron-tempest-plugin-linuxbridge
nodeset: neutron-nested-virt-ubuntu-jammy
- override-checkout: stable/2023.1
+ required-projects: *required-projects-2023-1
vars:
network_api_extensions_common: *api_extensions
network_api_extensions_linuxbridge:
@@ -207,7 +211,7 @@
name: neutron-tempest-plugin-ovn-2023-1
parent: neutron-tempest-plugin-ovn
nodeset: neutron-nested-virt-ubuntu-jammy
- override-checkout: stable/2023.1
+ required-projects: *required-projects-2023-1
vars:
network_api_extensions_ovn:
- vlan-transparent
@@ -218,9 +222,13 @@
(^tempest.api.compute.servers.test_multiple_create)"
# NOTE(liushy): This branch of Neutron does not support
# the address_group feature for the OVN driver.
+ # NOTE(ralonsoh): The advance image used "ubuntu-22.04-minimal" has a reported issue (LP#2110520)
+ # with the IGMP report messages. Because of that and because ML2/OVN has "igmp_snooping_enable"
+ # set, the receiver VM cannot subscribe to the IGMP group nor receive any IGMP message.
tempest_exclude_regex: "\
(^neutron_tempest_plugin.scenario.test_security_groups.StatefulNetworkSecGroupTest.test_remote_group_and_remote_address_group)|\
- (^neutron_tempest_plugin.scenario.test_security_groups.StatelessNetworkSecGroupIPv4Test.test_remote_group_and_remote_address_group)"
+ (^neutron_tempest_plugin.scenario.test_security_groups.StatelessNetworkSecGroupIPv4Test.test_remote_group_and_remote_address_group)|\
+ (^neutron_tempest_plugin.scenario.test_multicast.MulticastTestIPv4.test_multicast_between_vms_on_same_network)"
devstack_localrc:
NETWORK_API_EXTENSIONS: "{{ (network_api_extensions_common + network_api_extensions_ovn) | join(',') }}"
NEUTRON_DEPLOY_MOD_WSGI: false
@@ -241,7 +249,7 @@
name: neutron-tempest-plugin-dvr-multinode-scenario-2023-1
parent: neutron-tempest-plugin-dvr-multinode-scenario
nodeset: openstack-two-node-jammy
- override-checkout: stable/2023.1
+ required-projects: *required-projects-2023-1
vars:
network_api_extensions_common: *api_extensions
network_api_extensions_dvr:
@@ -255,7 +263,7 @@
name: neutron-tempest-plugin-designate-scenario-2023-1
parent: neutron-tempest-plugin-designate-scenario
nodeset: neutron-nested-virt-ubuntu-jammy
- override-checkout: stable/2023.1
+ required-projects: *required-projects-2023-1
vars:
network_api_extensions_common: *api_extensions
devstack_localrc:
@@ -265,7 +273,7 @@
name: neutron-tempest-plugin-sfc-2023-1
parent: neutron-tempest-plugin-sfc
nodeset: openstack-single-node-jammy
- override-checkout: stable/2023.1
+ required-projects: *required-projects-2023-1
vars:
devstack_localrc:
NEUTRON_DEPLOY_MOD_WSGI: false
@@ -274,7 +282,7 @@
name: neutron-tempest-plugin-bgpvpn-bagpipe-2023-1
parent: neutron-tempest-plugin-bgpvpn-bagpipe
nodeset: openstack-single-node-jammy
- override-checkout: stable/2023.1
+ required-projects: *required-projects-2023-1
vars:
devstack_localrc:
NEUTRON_DEPLOY_MOD_WSGI: false
@@ -283,7 +291,7 @@
name: neutron-tempest-plugin-dynamic-routing-2023-1
parent: neutron-tempest-plugin-dynamic-routing
nodeset: openstack-single-node-jammy
- override-checkout: stable/2023.1
+ required-projects: *required-projects-2023-1
vars:
devstack_localrc:
NEUTRON_DEPLOY_MOD_WSGI: false
@@ -298,7 +306,7 @@
name: neutron-tempest-plugin-fwaas-2023-1
parent: neutron-tempest-plugin-fwaas-openvswitch
nodeset: openstack-single-node-jammy
- override-checkout: stable/2023.1
+ required-projects: *required-projects-2023-1
vars:
devstack_localrc:
NEUTRON_DEPLOY_MOD_WSGI: false
@@ -307,7 +315,7 @@
name: neutron-tempest-plugin-vpnaas-2023-1
parent: neutron-tempest-plugin-vpnaas
nodeset: openstack-single-node-jammy
- override-checkout: stable/2023.1
+ required-projects: *required-projects-2023-1
vars:
devstack_localrc:
NEUTRON_DEPLOY_MOD_WSGI: false
@@ -316,7 +324,7 @@
name: neutron-tempest-plugin-tap-as-a-service-2023-1
parent: neutron-tempest-plugin-tap-as-a-service
nodeset: openstack-single-node-jammy
- override-checkout: stable/2023.1
+ required-projects: *required-projects-2023-1
vars:
devstack_localrc:
NEUTRON_DEPLOY_MOD_WSGI: false