Merge "dr: Add option to customize base image"
diff --git a/neutron_tempest_plugin/api/admin/test_tag.py b/neutron_tempest_plugin/api/admin/test_tag.py
index eae7977..31b2b96 100644
--- a/neutron_tempest_plugin/api/admin/test_tag.py
+++ b/neutron_tempest_plugin/api/admin/test_tag.py
@@ -26,53 +26,55 @@
super(TagTestJSON, cls).resource_setup()
cls.res_id = cls._create_resource()
- def _get_and_compare_tags(self, tags):
- res_body = self.client.get_tags(self.resource, self.res_id)
+ def _get_and_compare_tags(self, tags, client):
+ res_body = client.get_tags(self.resource, self.res_id)
self.assertCountEqual(tags, res_body['tags'])
- def _test_tag_operations(self):
+ def _test_tag_operations(self, client=None):
+ client = client or self.client
# create and get tags
tags = ['red', 'blue']
- res_body = self.client.update_tags(self.resource, self.res_id, tags)
+ res_body = client.update_tags(self.resource, self.res_id, tags)
self.assertCountEqual(tags, res_body['tags'])
- self._get_and_compare_tags(tags)
+ self._get_and_compare_tags(tags, client)
# add a tag
- self.client.update_tag(self.resource, self.res_id, 'green')
- self._get_and_compare_tags(['red', 'blue', 'green'])
+ client.update_tag(self.resource, self.res_id, 'green')
+ self._get_and_compare_tags(['red', 'blue', 'green'], client)
# update tag exist
- self.client.update_tag(self.resource, self.res_id, 'red')
- self._get_and_compare_tags(['red', 'blue', 'green'])
+ client.update_tag(self.resource, self.res_id, 'red')
+ self._get_and_compare_tags(['red', 'blue', 'green'], client)
# add a tag with a dot
- self.client.update_tag(self.resource, self.res_id, 'black.or.white')
- self._get_and_compare_tags(['red', 'blue', 'green', 'black.or.white'])
+ client.update_tag(self.resource, self.res_id, 'black.or.white')
+ self._get_and_compare_tags(['red', 'blue', 'green', 'black.or.white'],
+ client)
# replace tags
tags = ['red', 'yellow', 'purple']
- res_body = self.client.update_tags(self.resource, self.res_id, tags)
+ res_body = client.update_tags(self.resource, self.res_id, tags)
self.assertCountEqual(tags, res_body['tags'])
- self._get_and_compare_tags(tags)
+ self._get_and_compare_tags(tags, client)
# get tag
- self.client.get_tag(self.resource, self.res_id, 'red')
+ client.get_tag(self.resource, self.res_id, 'red')
# get tag not exist
- self.assertRaises(lib_exc.NotFound, self.client.get_tag,
+ self.assertRaises(lib_exc.NotFound, client.get_tag,
self.resource, self.res_id, 'green')
# delete tag
- self.client.delete_tag(self.resource, self.res_id, 'red')
- self._get_and_compare_tags(['yellow', 'purple'])
+ client.delete_tag(self.resource, self.res_id, 'red')
+ self._get_and_compare_tags(['yellow', 'purple'], client)
# delete tag not exist
- self.assertRaises(lib_exc.NotFound, self.client.delete_tag,
+ self.assertRaises(lib_exc.NotFound, client.delete_tag,
self.resource, self.res_id, 'green')
# delete tags
- self.client.delete_tags(self.resource, self.res_id)
- self._get_and_compare_tags([])
+ client.delete_tags(self.resource, self.res_id)
+ self._get_and_compare_tags([], client)
class TagNetworkTestJSON(TagTestJSON):
@@ -198,7 +200,7 @@
@decorators.idempotent_id('e9bac15e-c8bc-4317-8295-4bf1d8d522b8')
@utils.requires_ext(extension="standard-attr-tag", service="network")
def test_qos_policy_tags(self):
- self._test_tag_operations()
+ self._test_tag_operations(client=self.admin_client)
class TagTrunkTestJSON(TagTestJSON):
@@ -225,16 +227,20 @@
@classmethod
def resource_setup(cls):
super(TagFilterTestJSON, cls).resource_setup()
+ try:
+ client = cls.tag_client
+ except AttributeError:
+ client = cls.client
cls.res_ids = []
for i in range(5):
cls.res_ids.append(cls._create_resource())
- cls.client.update_tags(cls.resource, cls.res_ids[0], ['red'])
- cls.client.update_tags(cls.resource, cls.res_ids[1], ['red', 'blue'])
- cls.client.update_tags(cls.resource, cls.res_ids[2],
- ['red', 'blue', 'green'])
- cls.client.update_tags(cls.resource, cls.res_ids[3], ['green'])
+ client.update_tags(cls.resource, cls.res_ids[0], ['red'])
+ client.update_tags(cls.resource, cls.res_ids[1], ['red', 'blue'])
+ client.update_tags(cls.resource, cls.res_ids[2],
+ ['red', 'blue', 'green'])
+ client.update_tags(cls.resource, cls.res_ids[3], ['green'])
# 5th resource: no tags
@classmethod
@@ -441,6 +447,11 @@
res = self.client.list_qos_policies(**filters)
return res[self.resource]
+ @classmethod
+ def resource_setup(cls):
+ cls.tag_client = cls.admin_client
+ super().resource_setup()
+
@decorators.attr(type='smoke')
@decorators.idempotent_id('c2f9a6ae-2529-4cb9-a44b-b16f8ba27832')
@utils.requires_ext(extension="standard-attr-tag", service="network")
diff --git a/neutron_tempest_plugin/api/base.py b/neutron_tempest_plugin/api/base.py
index e17cf5e..4bcc6d2 100644
--- a/neutron_tempest_plugin/api/base.py
+++ b/neutron_tempest_plugin/api/base.py
@@ -595,15 +595,11 @@
# Generate subnet CIDRs starting from configured values
ip_version = ip_version or cls._ip_version
if ip_version == const.IP_VERSION_4:
- mask_bits = mask_bits or config.safe_get_config_value(
- 'network', 'project_network_mask_bits')
- cidr = netaddr.IPNetwork(config.safe_get_config_value(
- 'network', 'project_network_cidr'))
+ mask_bits = mask_bits or CONF.network.project_network_mask_bits
+ cidr = netaddr.IPNetwork(CONF.network.project_network_cidr)
elif ip_version == const.IP_VERSION_6:
- mask_bits = config.safe_get_config_value(
- 'network', 'project_network_v6_mask_bits')
- cidr = netaddr.IPNetwork(config.safe_get_config_value(
- 'network', 'project_network_v6_cidr'))
+ mask_bits = CONF.network.project_network_v6_mask_bits
+ cidr = netaddr.IPNetwork(CONF.network.project_network_v6_cidr)
else:
raise ValueError('Invalid IP version: {!r}'.format(ip_version))
diff --git a/neutron_tempest_plugin/api/test_routers.py b/neutron_tempest_plugin/api/test_routers.py
index 7758b1a..1430b81 100644
--- a/neutron_tempest_plugin/api/test_routers.py
+++ b/neutron_tempest_plugin/api/test_routers.py
@@ -38,9 +38,9 @@
def resource_setup(cls):
super(RoutersTest, cls).resource_setup()
cls.tenant_cidr = (
- config.safe_get_config_value('network', 'project_network_cidr')
+ CONF.network.project_network_cidr
if cls._ip_version == 4 else
- config.safe_get_config_value('network', 'project_network_v6_cidr'))
+ CONF.network.project_network_v6_cidr)
@decorators.idempotent_id('c72c1c0c-2193-4aca-eeee-b1442640eeee')
@tutils.requires_ext(extension="standard-attr-description",
diff --git a/neutron_tempest_plugin/api/test_security_groups.py b/neutron_tempest_plugin/api/test_security_groups.py
index 6992399..37cd80b 100644
--- a/neutron_tempest_plugin/api/test_security_groups.py
+++ b/neutron_tempest_plugin/api/test_security_groups.py
@@ -386,7 +386,7 @@
self.admin_client.update_quotas(project_id,
**{'security_group_rule': val,
'force': True})
- LOG.info('Trying to update security group rule quota {} '.format(val))
+ LOG.info('Trying to update security group rule quota %r', val)
def _get_sg_rules_quota(self):
project_id = self.client.project_id
diff --git a/neutron_tempest_plugin/common/utils.py b/neutron_tempest_plugin/common/utils.py
index 6bc290b..62191bf 100644
--- a/neutron_tempest_plugin/common/utils.py
+++ b/neutron_tempest_plugin/common/utils.py
@@ -194,29 +194,29 @@
sleep=self.test_sleep)
try:
LOG.info("Checking connectivity between server and client -"
- " attempt {}".format(self.test_attempt))
+ " attempt %d", self.test_attempt)
self.server_ssh.exec_command(
'grep {} output.txt'.format(self.test_str))
self.client_ssh.exec_command(
'grep {} output.txt'.format(self.test_str))
if not self.should_pass:
- LOG.warning("attempt {} succeed while it should fail".format(
- self.test_attempt))
+ LOG.warning("attempt %d succeed while it should fail",
+ self.test_attempt)
return False
else:
if not self.connection_started:
self.connection_started = True
- LOG.info("attempt {} succeed as it expected".format(
- self.test_attempt))
+ LOG.info("attempt %d succeed as it expected",
+ self.test_attempt)
return True
except exceptions.SSHExecCommandFailed:
if self.should_pass:
- LOG.warning("attempt {} failed while it should pass".format(
- self.test_attempt))
+ LOG.warning("attempt %d failed while it should pass",
+ self.test_attempt)
return False
else:
- LOG.info("attempt {} failed as it expected".format(
- self.test_attempt))
+ LOG.info("attempt %d failed as it expected",
+ self.test_attempt)
return True
finally:
self.test_attempt += 1
diff --git a/neutron_tempest_plugin/config.py b/neutron_tempest_plugin/config.py
index 2a818bd..7c4c0dd 100644
--- a/neutron_tempest_plugin/config.py
+++ b/neutron_tempest_plugin/config.py
@@ -274,19 +274,3 @@
name='designate_feature_enabled', title='Enabled Designate Features')
CONF.register_group(dns_feature_group)
CONF.register_opts(DnsFeatureGroup, group="designate_feature_enabled")
-
-config_opts_translator = {
- 'project_network_cidr': 'tenant_network_cidr',
- 'project_network_v6_cidr': 'tenant_network_v6_cidr',
- 'project_network_mask_bits': 'tenant_network_mask_bits',
- 'project_network_v6_mask_bits': 'tenant_network_v6_mask_bits'}
-
-
-def safe_get_config_value(group, name):
- """Safely get Oslo config opts from Tempest, using old and new names."""
- conf_group = getattr(CONF, group)
-
- try:
- return getattr(conf_group, name)
- except cfg.NoSuchOptError:
- return getattr(conf_group, config_opts_translator[name])
diff --git a/neutron_tempest_plugin/fwaas/scenario/test_fwaas_v2.py b/neutron_tempest_plugin/fwaas/scenario/test_fwaas_v2.py
index 9896073..8468671 100644
--- a/neutron_tempest_plugin/fwaas/scenario/test_fwaas_v2.py
+++ b/neutron_tempest_plugin/fwaas/scenario/test_fwaas_v2.py
@@ -89,9 +89,9 @@
(ssh_source, remote_ip, should_connect),
msg)
except Exception:
- LOG.exception("Unable to access {dest} via ssh to "
- "floating-ip {src}".format(dest=remote_ip,
- src=floating_ip))
+ LOG.exception("Unable to access %s via ssh to "
+ "floating-ip %s",
+ remote_ip, floating_ip)
raise
def _check_remote_connectivity(self, source, dest, should_succeed=True,
diff --git a/neutron_tempest_plugin/neutron_dynamic_routing/api/test_bgp_speaker_extensions.py b/neutron_tempest_plugin/neutron_dynamic_routing/api/test_bgp_speaker_extensions.py
index 5cdd524..1d089f6 100644
--- a/neutron_tempest_plugin/neutron_dynamic_routing/api/test_bgp_speaker_extensions.py
+++ b/neutron_tempest_plugin/neutron_dynamic_routing/api/test_bgp_speaker_extensions.py
@@ -177,7 +177,7 @@
bgp_speaker = self.get_bgp_speaker(bgp_speaker_id)
bgp_peers_list = bgp_speaker['peers']
self.assertEqual(1, len(bgp_peers_list))
- self.assertTrue(bgp_peer_id in bgp_peers_list)
+ self.assertIn(bgp_peer_id, bgp_peers_list)
@decorators.idempotent_id('f9737708-1d79-440b-8350-779f97d882ee')
def test_remove_bgp_peer(self):
@@ -188,7 +188,7 @@
self.add_bgp_peer(bgp_speaker_id, bgp_peer_id)
bgp_speaker = self.get_bgp_speaker(bgp_speaker_id)
bgp_peers_list = bgp_speaker['peers']
- self.assertTrue(bgp_peer_id in bgp_peers_list)
+ self.assertIn(bgp_peer_id, bgp_peers_list)
bgp_speaker = self.remove_bgp_peer(bgp_speaker_id, bgp_peer_id)
bgp_speaker = self.get_bgp_speaker(bgp_speaker_id)
@@ -206,7 +206,7 @@
bgp_speaker = self.get_bgp_speaker(bgp_speaker_id)
network_list = bgp_speaker['networks']
self.assertEqual(1, len(network_list))
- self.assertTrue(self.ext_net_id in network_list)
+ self.assertIn(self.ext_net_id, network_list)
@decorators.idempotent_id('6cfc7137-0d99-4a3d-826c-9d1a3a1767b0')
def test_remove_gateway_network(self):
@@ -218,7 +218,7 @@
bgp_speaker = self.get_bgp_speaker(bgp_speaker_id)
networks = bgp_speaker['networks']
- self.assertTrue(self.ext_net_id in networks)
+ self.assertIn(self.ext_net_id, networks)
self.bgp_adm_client.remove_bgp_gateway_network(bgp_speaker_id,
self.ext_net_id)
bgp_speaker = self.get_bgp_speaker(bgp_speaker_id)
diff --git a/neutron_tempest_plugin/scenario/test_mtu.py b/neutron_tempest_plugin/scenario/test_mtu.py
index 99c5130..29ccb01 100644
--- a/neutron_tempest_plugin/scenario/test_mtu.py
+++ b/neutron_tempest_plugin/scenario/test_mtu.py
@@ -227,37 +227,37 @@
@decorators.idempotent_id('bc470200-d8f4-4f07-b294-1b4cbaaa35b9')
def test_connectivity_min_max_mtu(self):
server_ssh_client, _, _, fip2 = self._create_setup()
- log_msg = ("Ping with {mtu_size} MTU of 2 networks. Fragmentation is "
- "{fragmentation_state}. Expected result: ping "
- "{ping_status}")
+ log_msg = ("Ping with %(mtu_size)s MTU of 2 networks. "
+ "Fragmentation is %(fragmentation_state)s. "
+ "Expected result: ping %(ping_status)s")
# ping with min mtu of 2 networks succeeds even when
# fragmentation is disabled
- LOG.debug(log_msg.format(mtu_size='minimal',
- fragmentation_state='disabled', ping_status='succeeded'))
+ LOG.debug(log_msg, mtu_size='minimal',
+ fragmentation_state='disabled', ping_status='succeeded')
self.check_remote_connectivity(
server_ssh_client, fip2['fixed_ip_address'],
mtu=self.networks[0]['mtu'], fragmentation=False)
# ping with the size above min mtu of 2 networks
# fails when fragmentation is disabled
- LOG.debug(log_msg.format(mtu_size='size above minimal',
- fragmentation_state='disabled', ping_status='failed'))
+ LOG.debug(log_msg, mtu_size='size above minimal',
+ fragmentation_state='disabled', ping_status='failed')
self.check_remote_connectivity(
server_ssh_client, fip2['fixed_ip_address'], should_succeed=False,
mtu=self.networks[0]['mtu'] + 2, fragmentation=False)
# ping with max mtu of 2 networks succeeds when
# fragmentation is enabled
- LOG.debug(log_msg.format(mtu_size='maximal',
- fragmentation_state='enabled', ping_status='succeeded'))
+ LOG.debug(log_msg, mtu_size='maximal',
+ fragmentation_state='enabled', ping_status='succeeded')
self.check_remote_connectivity(
server_ssh_client, fip2['fixed_ip_address'],
mtu=self.networks[1]['mtu'])
# ping with max mtu of 2 networks fails when fragmentation is disabled
- LOG.debug(log_msg.format(mtu_size='maximal',
- fragmentation_state='disabled', ping_status='failed'))
+ LOG.debug(log_msg, mtu_size='maximal',
+ fragmentation_state='disabled', ping_status='failed')
self.check_remote_connectivity(
server_ssh_client, fip2['fixed_ip_address'], should_succeed=False,
mtu=self.networks[1]['mtu'], fragmentation=False)
diff --git a/neutron_tempest_plugin/scenario/test_ports.py b/neutron_tempest_plugin/scenario/test_ports.py
index c661d39..56cedde 100644
--- a/neutron_tempest_plugin/scenario/test_ports.py
+++ b/neutron_tempest_plugin/scenario/test_ports.py
@@ -107,8 +107,8 @@
if port is not None:
break
except Exception as e:
- LOG.warning('Failed to create Port, using Fixed_IP:{}, '
- 'the Error was:{}'.format(ip, e))
+ LOG.warning('Failed to create Port, using Fixed_IP:%s, '
+ 'the Error was:%s', ip, e)
fip, server = self._create_instance_with_port(port)
self.check_connectivity(fip[0]['floating_ip_address'],
CONF.validation.image_ssh_user,
diff --git a/neutron_tempest_plugin/tap_as_a_service/scenario/test_traffic_impact.py b/neutron_tempest_plugin/tap_as_a_service/scenario/test_traffic_impact.py
index e70eb03..904335d 100644
--- a/neutron_tempest_plugin/tap_as_a_service/scenario/test_traffic_impact.py
+++ b/neutron_tempest_plugin/tap_as_a_service/scenario/test_traffic_impact.py
@@ -14,16 +14,15 @@
# under the License.
from contextlib import contextmanager
-from oslo_log import log
-import testtools
+from oslo_log import log
from tempest.common import utils
from tempest import config
from tempest.lib.common.utils import data_utils
from tempest.lib.common.utils.linux import remote_client
from tempest.lib.common.utils import test_utils
-
from tempest.lib import decorators
+import testtools
from neutron_tempest_plugin.tap_as_a_service.scenario import manager
@@ -151,7 +150,7 @@
# Ensure tcpdump is up and running
psax = self.monitor_client.exec_command("ps -ax")
- self.assertTrue("tcpdump" in psax)
+ self.assertIn("tcpdump", psax)
# Run traffic from left_vm to right_vm
LOG.debug('Check ICMP traffic: ping %s ', right_ip)
diff --git a/roles/docker-setup/tasks/main.yml b/roles/docker-setup/tasks/main.yml
index 19d8bfb..1b0e2d7 100644
--- a/roles/docker-setup/tasks/main.yml
+++ b/roles/docker-setup/tasks/main.yml
@@ -4,6 +4,14 @@
name: docker.io
state: present
+- name: Install docker-buildx (only for Ubuntu and Debian)
+ become: yes
+ package:
+ name: docker-buildx
+ state: present
+ when:
+ - (ansible_facts['distribution'] | lower) in ['ubuntu', 'debian']
+
- name: Copy 52_docker_for_tempest to /etc/sudoers.d
copy:
src: 52_docker_for_tempest
diff --git a/test-requirements.txt b/test-requirements.txt
index 0151f21..ebde755 100644
--- a/test-requirements.txt
+++ b/test-requirements.txt
@@ -1,7 +1,7 @@
-hacking>=3.2.0,<3.3.0 # Apache-2.0
+hacking>=6.1.0,<6.2.0 # Apache-2.0
coverage>=4.4.1 # Apache-2.0
-flake8-import-order==0.12 # LGPLv3
+flake8-import-order>=0.18.0,<0.19.0 # LGPLv3
python-subunit>=1.0.0 # Apache-2.0/BSD
oslotest>=3.2.0 # Apache-2.0
stestr>=1.0.0 # Apache-2.0
diff --git a/tox.ini b/tox.ini
index 2f7da5c..c8add2c 100644
--- a/tox.ini
+++ b/tox.ini
@@ -62,9 +62,10 @@
# E126 continuation line over-indented for hanging indent
# E128 continuation line under-indented for visual indent
# E129 visually indented line with same indent as next logical line
+# I202 Additional newline in a group of imports.
# N530 direct neutron imports not allowed
# W504 line break after binary operator
-ignore = E126,E128,E129,N530,W504
+ignore = E126,E128,E129,I202,N530,W504
# H106: Don't put vim configuration in source files
# H203: Use assertIs(Not)None to check for None
# H204: Use assert(Not)Equal to check for equality
diff --git a/zuul.d/2023_1_jobs.yaml b/zuul.d/2023_1_jobs.yaml
index f038076..26b1efb 100644
--- a/zuul.d/2023_1_jobs.yaml
+++ b/zuul.d/2023_1_jobs.yaml
@@ -1,6 +1,7 @@
- job:
name: neutron-tempest-plugin-openvswitch-2023-1
parent: neutron-tempest-plugin-openvswitch
+ nodeset: neutron-nested-virt-ubuntu-jammy
override-checkout: stable/2023.1
vars:
network_api_extensions_openvswitch:
@@ -105,6 +106,7 @@
- job:
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
vars:
network_api_extensions_common: *api_extensions
@@ -143,6 +145,7 @@
- job:
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
vars:
devstack_localrc:
@@ -160,6 +163,7 @@
- job:
name: neutron-tempest-plugin-linuxbridge-2023-1
parent: neutron-tempest-plugin-linuxbridge
+ nodeset: neutron-nested-virt-ubuntu-jammy
override-checkout: stable/2023.1
vars:
network_api_extensions_common: *api_extensions
@@ -201,6 +205,7 @@
- job:
name: neutron-tempest-plugin-ovn-2023-1
parent: neutron-tempest-plugin-ovn
+ nodeset: neutron-nested-virt-ubuntu-jammy
override-checkout: stable/2023.1
vars:
network_api_extensions_ovn:
@@ -229,6 +234,7 @@
- job:
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
vars:
network_api_extensions_common: *api_extensions
@@ -242,6 +248,7 @@
- job:
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
vars:
network_api_extensions_common: *api_extensions
@@ -251,6 +258,7 @@
- job:
name: neutron-tempest-plugin-sfc-2023-1
parent: neutron-tempest-plugin-sfc
+ nodeset: openstack-single-node-jammy
override-checkout: stable/2023.1
vars:
devstack_localrc:
@@ -259,6 +267,7 @@
- job:
name: neutron-tempest-plugin-bgpvpn-bagpipe-2023-1
parent: neutron-tempest-plugin-bgpvpn-bagpipe
+ nodeset: openstack-single-node-jammy
override-checkout: stable/2023.1
vars:
devstack_localrc:
@@ -267,11 +276,13 @@
- job:
name: neutron-tempest-plugin-dynamic-routing-2023-1
parent: neutron-tempest-plugin-dynamic-routing
+ nodeset: openstack-single-node-jammy
override-checkout: stable/2023.1
- job:
name: neutron-tempest-plugin-fwaas-2023-1
parent: neutron-tempest-plugin-fwaas
+ nodeset: openstack-single-node-jammy
override-checkout: stable/2023.1
vars:
devstack_localrc:
@@ -280,6 +291,7 @@
- job:
name: neutron-tempest-plugin-vpnaas-2023-1
parent: neutron-tempest-plugin-vpnaas
+ nodeset: openstack-single-node-jammy
override-checkout: stable/2023.1
vars:
devstack_localrc:
@@ -288,6 +300,7 @@
- job:
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
vars:
devstack_localrc:
diff --git a/zuul.d/2023_2_jobs.yaml b/zuul.d/2023_2_jobs.yaml
index 63a63fa..b45ebb6 100644
--- a/zuul.d/2023_2_jobs.yaml
+++ b/zuul.d/2023_2_jobs.yaml
@@ -1,6 +1,7 @@
- job:
name: neutron-tempest-plugin-openvswitch-2023-2
parent: neutron-tempest-plugin-openvswitch
+ nodeset: neutron-nested-virt-ubuntu-jammy
override-checkout: stable/2023.2
vars:
network_api_extensions_openvswitch: &api_extensions_openvswitch
@@ -105,6 +106,7 @@
- job:
name: neutron-tempest-plugin-openvswitch-iptables_hybrid-2023-2
parent: neutron-tempest-plugin-openvswitch-iptables_hybrid
+ nodeset: neutron-nested-virt-ubuntu-jammy
override-checkout: stable/2023.2
vars:
network_api_extensions_common: *api_extensions
@@ -138,6 +140,7 @@
- job:
name: neutron-tempest-plugin-openvswitch-enforce-scope-new-defaults-2023-2
parent: neutron-tempest-plugin-openvswitch-2023-2
+ nodeset: neutron-nested-virt-ubuntu-jammy
override-checkout: stable/2023.2
vars:
devstack_localrc:
@@ -155,6 +158,7 @@
- job:
name: neutron-tempest-plugin-linuxbridge-2023-2
parent: neutron-tempest-plugin-linuxbridge
+ nodeset: neutron-nested-virt-ubuntu-jammy
override-checkout: stable/2023.2
vars:
network_api_extensions_common: *api_extensions
@@ -196,6 +200,7 @@
- job:
name: neutron-tempest-plugin-ovn-2023-2
parent: neutron-tempest-plugin-ovn
+ nodeset: neutron-nested-virt-ubuntu-jammy
override-checkout: stable/2023.2
vars:
network_api_extensions_ovn:
@@ -224,6 +229,7 @@
- job:
name: neutron-tempest-plugin-dvr-multinode-scenario-2023-2
parent: neutron-tempest-plugin-dvr-multinode-scenario
+ nodeset: openstack-two-node-jammy
override-checkout: stable/2023.2
vars:
network_api_extensions_common: *api_extensions
@@ -237,6 +243,7 @@
- job:
name: neutron-tempest-plugin-designate-scenario-2023-2
parent: neutron-tempest-plugin-designate-scenario
+ nodeset: neutron-nested-virt-ubuntu-jammy
override-checkout: stable/2023.2
vars:
network_api_extensions_common: *api_extensions
@@ -246,6 +253,7 @@
- job:
name: neutron-tempest-plugin-sfc-2023-2
parent: neutron-tempest-plugin-sfc
+ nodeset: openstack-single-node-jammy
override-checkout: stable/2023.2
vars:
devstack_localrc:
@@ -254,6 +262,7 @@
- job:
name: neutron-tempest-plugin-bgpvpn-bagpipe-2023-2
parent: neutron-tempest-plugin-bgpvpn-bagpipe
+ nodeset: openstack-single-node-jammy
override-checkout: stable/2023.2
vars:
devstack_localrc:
@@ -262,11 +271,13 @@
- job:
name: neutron-tempest-plugin-dynamic-routing-2023-2
parent: neutron-tempest-plugin-dynamic-routing
+ nodeset: openstack-single-node-jammy
override-checkout: stable/2023.2
- job:
name: neutron-tempest-plugin-fwaas-2023-2
parent: neutron-tempest-plugin-fwaas
+ nodeset: openstack-single-node-jammy
override-checkout: stable/2023.2
vars:
devstack_localrc:
@@ -275,6 +286,7 @@
- job:
name: neutron-tempest-plugin-vpnaas-2023-2
parent: neutron-tempest-plugin-vpnaas
+ nodeset: openstack-single-node-jammy
override-checkout: stable/2023.2
vars:
devstack_localrc:
@@ -283,6 +295,7 @@
- job:
name: neutron-tempest-plugin-tap-as-a-service-2023-2
parent: neutron-tempest-plugin-tap-as-a-service
+ nodeset: openstack-single-node-jammy
override-checkout: stable/2023.2
vars:
devstack_localrc:
diff --git a/zuul.d/2024_1_jobs.yaml b/zuul.d/2024_1_jobs.yaml
index c426be6..40dafc8 100644
--- a/zuul.d/2024_1_jobs.yaml
+++ b/zuul.d/2024_1_jobs.yaml
@@ -1,6 +1,7 @@
- job:
name: neutron-tempest-plugin-openvswitch-2024-1
parent: neutron-tempest-plugin-openvswitch
+ nodeset: neutron-nested-virt-ubuntu-jammy
override-checkout: stable/2024.1
vars:
network_api_extensions_openvswitch: &api_extensions_openvswitch
@@ -107,6 +108,7 @@
- job:
name: neutron-tempest-plugin-openvswitch-iptables_hybrid-2024-1
parent: neutron-tempest-plugin-openvswitch-iptables_hybrid
+ nodeset: neutron-nested-virt-ubuntu-jammy
override-checkout: stable/2024.1
vars:
network_api_extensions_common: *api_extensions
@@ -140,6 +142,7 @@
- job:
name: neutron-tempest-plugin-openvswitch-enforce-scope-new-defaults-2024-1
parent: neutron-tempest-plugin-openvswitch-2024-1
+ nodeset: neutron-nested-virt-ubuntu-jammy
override-checkout: stable/2024.1
vars:
devstack_localrc:
@@ -157,6 +160,7 @@
- job:
name: neutron-tempest-plugin-linuxbridge-2024-1
parent: neutron-tempest-plugin-linuxbridge
+ nodeset: neutron-nested-virt-ubuntu-jammy
override-checkout: stable/2024.1
vars:
network_api_extensions_common: *api_extensions
@@ -198,6 +202,7 @@
- job:
name: neutron-tempest-plugin-ovn-2024-1
parent: neutron-tempest-plugin-ovn
+ nodeset: neutron-nested-virt-ubuntu-jammy
override-checkout: stable/2024.1
vars:
network_api_extensions_ovn:
@@ -223,6 +228,7 @@
- job:
name: neutron-tempest-plugin-dvr-multinode-scenario-2024-1
parent: neutron-tempest-plugin-dvr-multinode-scenario
+ nodeset: openstack-two-node-jammy
override-checkout: stable/2024.1
vars:
network_api_extensions_common: *api_extensions
@@ -236,6 +242,7 @@
- job:
name: neutron-tempest-plugin-designate-scenario-2024-1
parent: neutron-tempest-plugin-designate-scenario
+ nodeset: neutron-nested-virt-ubuntu-jammy
override-checkout: stable/2024.1
vars:
network_api_extensions_common: *api_extensions
@@ -245,6 +252,7 @@
- job:
name: neutron-tempest-plugin-sfc-2024-1
parent: neutron-tempest-plugin-sfc
+ nodeset: openstack-single-node-jammy
override-checkout: stable/2024.1
vars:
devstack_localrc:
@@ -253,6 +261,7 @@
- job:
name: neutron-tempest-plugin-bgpvpn-bagpipe-2024-1
parent: neutron-tempest-plugin-bgpvpn-bagpipe
+ nodeset: openstack-single-node-jammy
override-checkout: stable/2024.1
vars:
devstack_localrc:
@@ -261,11 +270,13 @@
- job:
name: neutron-tempest-plugin-dynamic-routing-2024-1
parent: neutron-tempest-plugin-dynamic-routing
+ nodeset: openstack-single-node-jammy
override-checkout: stable/2024.1
- job:
name: neutron-tempest-plugin-fwaas-2024-1
parent: neutron-tempest-plugin-fwaas
+ nodeset: openstack-single-node-jammy
override-checkout: stable/2024.1
vars:
devstack_localrc:
@@ -274,6 +285,7 @@
- job:
name: neutron-tempest-plugin-vpnaas-2024-1
parent: neutron-tempest-plugin-vpnaas
+ nodeset: openstack-single-node-jammy
override-checkout: stable/2024.1
vars:
devstack_localrc:
@@ -282,6 +294,7 @@
- job:
name: neutron-tempest-plugin-tap-as-a-service-2024-1
parent: neutron-tempest-plugin-tap-as-a-service
+ nodeset: openstack-single-node-jammy
override-checkout: stable/2024.1
vars:
devstack_localrc:
diff --git a/zuul.d/2024_2_jobs.yaml b/zuul.d/2024_2_jobs.yaml
index bb77ca2..2002142 100644
--- a/zuul.d/2024_2_jobs.yaml
+++ b/zuul.d/2024_2_jobs.yaml
@@ -1,6 +1,7 @@
- job:
name: neutron-tempest-plugin-openvswitch-2024-2
parent: neutron-tempest-plugin-openvswitch
+ nodeset: neutron-nested-virt-ubuntu-jammy
override-checkout: stable/2024.2
vars:
network_api_extensions_openvswitch: &api_extensions_openvswitch
@@ -107,6 +108,7 @@
- job:
name: neutron-tempest-plugin-openvswitch-iptables_hybrid-2024-2
parent: neutron-tempest-plugin-openvswitch-iptables_hybrid
+ nodeset: neutron-nested-virt-ubuntu-jammy
override-checkout: stable/2024.2
vars:
network_api_extensions_common: *api_extensions
@@ -139,6 +141,7 @@
- job:
name: neutron-tempest-plugin-openvswitch-enforce-scope-new-defaults-2024-1
parent: neutron-tempest-plugin-openvswitch-2024-1
+ nodeset: neutron-nested-virt-ubuntu-jammy
override-checkout: stable/2024.1
vars:
devstack_localrc:
@@ -156,6 +159,7 @@
- job:
name: neutron-tempest-plugin-linuxbridge-2024-2
parent: neutron-tempest-plugin-linuxbridge
+ nodeset: neutron-nested-virt-ubuntu-jammy
override-checkout: stable/2024.2
vars:
network_api_extensions_common: *api_extensions
@@ -197,6 +201,7 @@
- job:
name: neutron-tempest-plugin-ovn-2024-2
parent: neutron-tempest-plugin-ovn
+ nodeset: neutron-nested-virt-ubuntu-jammy
override-checkout: stable/2024.2
vars:
network_api_extensions_ovn:
@@ -226,6 +231,7 @@
- job:
name: neutron-tempest-plugin-dvr-multinode-scenario-2024-2
parent: neutron-tempest-plugin-dvr-multinode-scenario
+ nodeset: openstack-two-node-jammy
override-checkout: stable/2024.2
vars:
network_api_extensions_common: *api_extensions
@@ -238,6 +244,7 @@
- job:
name: neutron-tempest-plugin-designate-scenario-2024-2
parent: neutron-tempest-plugin-designate-scenario
+ nodeset: neutron-nested-virt-ubuntu-jammy
override-checkout: stable/2024.2
vars:
network_api_extensions_common: *api_extensions
@@ -247,29 +254,35 @@
- job:
name: neutron-tempest-plugin-sfc-2024-2
parent: neutron-tempest-plugin-sfc
+ nodeset: openstack-single-node-jammy
override-checkout: stable/2024.2
- job:
name: neutron-tempest-plugin-bgpvpn-bagpipe-2024-2
parent: neutron-tempest-plugin-bgpvpn-bagpipe
+ nodeset: openstack-single-node-jammy
override-checkout: stable/2024.2
- job:
name: neutron-tempest-plugin-dynamic-routing-2024-2
parent: neutron-tempest-plugin-dynamic-routing
+ nodeset: openstack-single-node-jammy
override-checkout: stable/2024.2
- job:
name: neutron-tempest-plugin-fwaas-2024-2
parent: neutron-tempest-plugin-fwaas
+ nodeset: openstack-single-node-jammy
override-checkout: stable/2024.2
- job:
name: neutron-tempest-plugin-vpnaas-2024-2
parent: neutron-tempest-plugin-vpnaas
+ nodeset: openstack-single-node-jammy
override-checkout: stable/2024.2
- job:
name: neutron-tempest-plugin-tap-as-a-service-2024-2
parent: neutron-tempest-plugin-tap-as-a-service
+ nodeset: openstack-single-node-jammy
override-checkout: stable/2024.2
diff --git a/zuul.d/base-nested-switch.yaml b/zuul.d/base-nested-switch.yaml
index f8fa799..fa5217c 100644
--- a/zuul.d/base-nested-switch.yaml
+++ b/zuul.d/base-nested-switch.yaml
@@ -18,16 +18,26 @@
nodes:
- controller
-# Base nested switch job for 2023.1 and later
+- nodeset:
+ name: neutron-nested-virt-ubuntu-noble
+ nodes:
+ - name: controller
+ label: nested-virt-ubuntu-noble
+ groups:
+ - name: tempest
+ nodes:
+ - controller
+
+# Base nested switch job for 2025.1 and later
- job:
name: neutron-tempest-plugin-base-nested-switch
parent: neutron-tempest-plugin-base
abstract: true
branches:
- regex: ^(unmaintained|stable/(victoria|wallaby|xena|yoga|zed)).*$
+ regex: ^(unmaintained|stable/(victoria|wallaby|xena|yoga|zed|2023|2024)).*$
negate: true
# Comment nodeset and vars to switch back to non nested nodes
- nodeset: neutron-nested-virt-ubuntu-jammy
+ nodeset: neutron-nested-virt-ubuntu-noble
vars: &nested_virt_vars
devstack_localrc:
LIBVIRT_TYPE: kvm
@@ -39,6 +49,16 @@
DEFAULT_IMAGE_NAME: cirros-0.5.3-x86_64-disk
DEFAULT_IMAGE_FILE_NAME: cirros-0.5.3-x86_64-disk.img
+# Base nested switch job for 2023.1 till 2024.2
+- job:
+ name: neutron-tempest-plugin-base-nested-switch
+ parent: neutron-tempest-plugin-base
+ abstract: true
+ branches: ^(unmaintained|stable)/(2023|2024).*$
+ # Comment nodeset and vars to switch back to non nested nodes
+ nodeset: neutron-nested-virt-ubuntu-jammy
+ vars: *nested_virt_vars
+
# Base nested switch job for yoga and zed
- job:
name: neutron-tempest-plugin-base-nested-switch
diff --git a/zuul.d/master_jobs.yaml b/zuul.d/master_jobs.yaml
index 01dada3..885e370 100644
--- a/zuul.d/master_jobs.yaml
+++ b/zuul.d/master_jobs.yaml
@@ -27,9 +27,9 @@
NETWORK_API_EXTENSIONS: "{{ (network_api_extensions_common + network_api_extensions_tempest) | join(',') }}"
PHYSICAL_NETWORK: public
IMAGE_URLS: https://cloud-images.ubuntu.com/minimal/releases/focal/release/ubuntu-20.04-minimal-cloudimg-amd64.img
- CIRROS_VERSION: 0.6.2
- DEFAULT_IMAGE_NAME: cirros-0.6.2-x86_64-uec
- DEFAULT_IMAGE_FILE_NAME: cirros-0.6.2-x86_64-uec.tar.gz
+ CIRROS_VERSION: 0.6.3
+ DEFAULT_IMAGE_NAME: cirros-0.6.3-x86_64-uec
+ DEFAULT_IMAGE_FILE_NAME: cirros-0.6.3-x86_64-uec.tar.gz
ADVANCED_IMAGE_NAME: ubuntu-20.04-minimal-cloudimg-amd64
ADVANCED_INSTANCE_TYPE: ntp_image_256M
ADVANCED_INSTANCE_USER: ubuntu
@@ -829,9 +829,9 @@
USE_PYTHON3: true
NETWORK_API_EXTENSIONS: "{{ (network_api_extensions_common + network_api_extensions_dvr) | join(',') }}"
PHYSICAL_NETWORK: default
- CIRROS_VERSION: 0.6.2
- DEFAULT_IMAGE_NAME: cirros-0.6.2-x86_64-uec
- DEFAULT_IMAGE_FILE_NAME: cirros-0.6.2-x86_64-uec.tar.gz
+ CIRROS_VERSION: 0.6.3
+ DEFAULT_IMAGE_NAME: cirros-0.6.3-x86_64-uec
+ DEFAULT_IMAGE_FILE_NAME: cirros-0.6.3-x86_64-uec.tar.gz
IMAGE_URLS: https://cloud-images.ubuntu.com/minimal/releases/focal/release/ubuntu-20.04-minimal-cloudimg-amd64.img
ADVANCED_IMAGE_NAME: ubuntu-20.04-minimal-cloudimg-amd64
ADVANCED_INSTANCE_TYPE: ntp_image_256M
@@ -1086,6 +1086,7 @@
- ^neutron/scheduler/.*$
- ^neutron/services/.*$
- ^neutron_tempest_plugin/api/test_.*$
+ - ^neutron_tempest_plugin/api/admin/test_.*$
- ^neutron_tempest_plugin/(bgpvpn|fwaas|neutron_dynamic_routing|sfc|tap_as_a_service|vpnaas).*$
- ^neutron_tempest_plugin/services/bgp/.*$
- ^rally-jobs/.*$
@@ -1192,6 +1193,7 @@
- ^neutron/tests/fullstack/.*
- ^neutron/tests/functional/.*
- ^neutron_tempest_plugin/api/test_.*$
+ - ^neutron_tempest_plugin/api/admin/test_.*$
- ^neutron_tempest_plugin/scenario/admin/.*$
- ^neutron_tempest_plugin/scenario/test_.*$
- ^neutron_tempest_plugin/(bgpvpn|fwaas|neutron_dynamic_routing|tap_as_a_service|vpnaas).*$
@@ -1272,6 +1274,7 @@
- ^neutron/tests/fullstack/.*
- ^neutron/tests/functional/.*
- ^neutron_tempest_plugin/api/test_.*$
+ - ^neutron_tempest_plugin/api/admin/test_.*$
- ^neutron_tempest_plugin/scenario/admin/.*$
- ^neutron_tempest_plugin/scenario/test_.*$
- ^neutron_tempest_plugin/(fwaas|neutron_dynamic_routing|sfc|tap_as_a_service|vpnaas).*$
@@ -1339,6 +1342,7 @@
- ^neutron/tests/fullstack/.*
- ^neutron/tests/functional/.*
- ^neutron_tempest_plugin/api/test_.*$
+ - ^neutron_tempest_plugin/api/admin/test_.*$
- ^neutron_tempest_plugin/scenario/admin/.*$
- ^neutron_tempest_plugin/scenario/test_.*$
- ^neutron_tempest_plugin/(bgpvpn|fwaas|sfc|tap_as_a_service|vpnaas).*$
@@ -1414,6 +1418,7 @@
- ^neutron/tests/fullstack/.*
- ^neutron/tests/functional/.*
- ^neutron_tempest_plugin/api/test_.*$
+ - ^neutron_tempest_plugin/api/admin/test_.*$
- ^neutron_tempest_plugin/scenario/admin/.*$
- ^neutron_tempest_plugin/scenario/test_.*$
- ^neutron_tempest_plugin/(bgpvpn|neutron_dynamic_routing|sfc|tap_as_a_service|vpnaas).*$
@@ -1495,6 +1500,7 @@
- ^neutron/tests/fullstack/.*
- ^neutron/tests/functional/.*
- ^neutron_tempest_plugin/api/test_.*$
+ - ^neutron_tempest_plugin/api/admin/test_.*$
- ^neutron_tempest_plugin/scenario/admin/.*$
- ^neutron_tempest_plugin/scenario/test_.*$
- ^neutron_tempest_plugin/(bgpvpn|fwaas|neutron_dynamic_routing|sfc|tap_as_a_service).*$
@@ -1566,6 +1572,7 @@
- ^neutron/tests/fullstack/.*
- ^neutron/tests/functional/.*
- ^neutron_tempest_plugin/api/test_.*$
+ - ^neutron_tempest_plugin/api/admin/test_.*$
- ^neutron_tempest_plugin/scenario/admin/.*$
- ^neutron_tempest_plugin/scenario/test_.*$
- ^neutron_tempest_plugin/(bgpvpn|fwaas|neutron_dynamic_routing|sfc|tap_as_a_service).*$
@@ -1687,6 +1694,7 @@
- ^neutron/tests/fullstack/.*
- ^neutron/tests/functional/.*
- ^neutron_tempest_plugin/api/test_.*$
+ - ^neutron_tempest_plugin/api/admin/test_.*$
- ^neutron_tempest_plugin/scenario/admin/.*$
- ^neutron_tempest_plugin/scenario/test_.*$
- ^neutron_tempest_plugin/(bgpvpn|fwaas|neutron_dynamic_routing|sfc|vpnaas).*$
@@ -1713,3 +1721,13 @@
- ^zuul.d/xena_jobs.yaml
- ^zuul.d/yoga_jobs.yaml
- ^zuul.d/zed_jobs.yaml
+
+- job:
+ name: neutron-tempest-plugin-openvswitch-ubuntu-jammy
+ parent: neutron-tempest-plugin-openvswitch
+ nodeset: neutron-nested-virt-ubuntu-jammy
+
+- job:
+ name: neutron-tempest-plugin-ovn-ubuntu-jammy
+ parent: neutron-tempest-plugin-ovn
+ nodeset: neutron-nested-virt-ubuntu-jammy
diff --git a/zuul.d/project.yaml b/zuul.d/project.yaml
index 5feac4e..e27910c 100644
--- a/zuul.d/project.yaml
+++ b/zuul.d/project.yaml
@@ -9,6 +9,8 @@
# TODO(slaweq) make job voting again once bug
# https://bugs.launchpad.net/designate/+bug/2072627 will be fixed
voting: false
+ - neutron-tempest-plugin-openvswitch-ubuntu-jammy
+ - neutron-tempest-plugin-ovn-ubuntu-jammy
gate:
jobs:
- neutron-tempest-plugin-openvswitch