Merge "Drop explicit description about default values"
diff --git a/neutron_tempest_plugin/api/test_networks.py b/neutron_tempest_plugin/api/test_networks.py
index d79b7ab..b9298c3 100644
--- a/neutron_tempest_plugin/api/test_networks.py
+++ b/neutron_tempest_plugin/api/test_networks.py
@@ -132,8 +132,6 @@
_check_list_networks_fields(['project_id', 'tenant_id'], True, True)
-# TODO(ihrachys): check that bad mtu is not allowed; current API extension
-# definition doesn't enforce values
# TODO(ihrachys): check that new segment reservation updates mtu, once
# https://review.opendev.org/#/c/353115/ is merged
class NetworksMtuTestJSON(base.BaseNetworkTest):
diff --git a/neutron_tempest_plugin/api/test_networks_negative.py b/neutron_tempest_plugin/api/test_networks_negative.py
index d4941e4..f0f6995 100644
--- a/neutron_tempest_plugin/api/test_networks_negative.py
+++ b/neutron_tempest_plugin/api/test_networks_negative.py
@@ -43,3 +43,37 @@
with testtools.ExpectedException(lib_exc.BadRequest):
self.client.create_network(
mtu=CONF.neutron_plugin_options.max_mtu + 1)
+
+ @decorators.attr(type='negative')
+ @decorators.idempotent_id('53537bba-d6c3-4a2e-bda4-ab5b009fb7d9')
+ def test_create_subnet_mtu_below_minimum_ipv4(self):
+ network = self.create_network(mtu=67)
+ with testtools.ExpectedException(lib_exc.Conflict):
+ self.create_subnet(network, ip_version=4, cidr='10.0.0.0/24')
+
+ @decorators.attr(type='negative')
+ @decorators.idempotent_id('1de68cb6-e6d4-47df-b820-c5048796f33a')
+ @testtools.skipUnless(config.CONF.network_feature_enabled.ipv6,
+ 'IPv6 is not enabled')
+ def test_create_subnet_mtu_below_minimum_ipv6(self):
+ network = self.create_network(mtu=1279)
+ with testtools.ExpectedException(lib_exc.Conflict):
+ self.create_subnet(network, ip_version=6, cidr='2001:db8:0:1::/64')
+
+ @decorators.attr(type='negative')
+ @decorators.idempotent_id('5213df6d-7141-40b2-90ea-a958d9bc97e5')
+ def test_update_network_mtu_below_minimum_ipv4(self):
+ network = self.create_network(mtu=1280)
+ self.create_subnet(network, ip_version=4, cidr='10.0.0.0/24')
+ with testtools.ExpectedException(lib_exc.Conflict):
+ self.client.update_network(network['id'], mtu=67)
+
+ @decorators.attr(type='negative')
+ @decorators.idempotent_id('1a714fc4-24b1-4c07-a005-d5c218672eab')
+ @testtools.skipUnless(config.CONF.network_feature_enabled.ipv6,
+ 'IPv6 is not enabled')
+ def test_update_network_mtu_below_minimum_ipv6(self):
+ network = self.create_network(mtu=1280)
+ self.create_subnet(network, ip_version=6, cidr='2001:db8:0:1::/64')
+ with testtools.ExpectedException(lib_exc.Conflict):
+ self.client.update_network(network['id'], mtu=1279)
diff --git a/neutron_tempest_plugin/common/shell.py b/neutron_tempest_plugin/common/shell.py
index 073bf55..723c30e 100644
--- a/neutron_tempest_plugin/common/shell.py
+++ b/neutron_tempest_plugin/common/shell.py
@@ -16,7 +16,6 @@
import collections
import subprocess
-import sys
from oslo_log import log
from tempest.lib import exceptions as lib_exc
@@ -131,12 +130,6 @@
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
- if timeout and sys.version_info < (3, 3):
- # TODO(fressi): re-implement to timeout support on older Pythons
- LOG.warning("Popen.communicate method doens't support for timeout "
- "on Python %r", sys.version)
- timeout = None
-
# Wait for process execution while reading STDERR and STDOUT streams
if timeout:
try:
diff --git a/neutron_tempest_plugin/scenario/test_multicast.py b/neutron_tempest_plugin/scenario/test_multicast.py
index 390e0f0..a28328b 100644
--- a/neutron_tempest_plugin/scenario/test_multicast.py
+++ b/neutron_tempest_plugin/scenario/test_multicast.py
@@ -333,12 +333,20 @@
"Receiver {!r} didn't get multicast message".format(
receiver['id'])))
- # TODO(slaweq): add validation of answears on sended server
- replies_result = sender['ssh_client'].execute_script(
- "cat {path} || echo '{path} not exists yet'".format(
- path=self.sender_output_file))
- for receiver_id in receiver_ids:
- self.assertIn(receiver_id, replies_result)
+ def _sender_completed():
+ replies_result = sender['ssh_client'].execute_script(
+ "cat {path} 2>/dev/null || echo ''".format(
+ path=self.sender_output_file))
+ for receiver_id in receiver_ids:
+ expected_pattern = "received reply b'{}' from".format(
+ receiver_id)
+ if expected_pattern not in replies_result:
+ return False
+ return replies_result.count('received reply') == len(receiver_ids)
+
+ utils.wait_until_true(
+ _sender_completed,
+ exception=RuntimeError("Sender didn't complete properly"))
def check_unregistered_host():
unregistered_result = unregistered['ssh_client'].execute_script(
diff --git a/zuul.d/master_jobs.yaml b/zuul.d/master_jobs.yaml
index 96e16b1..4484768 100644
--- a/zuul.d/master_jobs.yaml
+++ b/zuul.d/master_jobs.yaml
@@ -34,8 +34,6 @@
ADVANCED_INSTANCE_USER: ubuntu
CUSTOMIZE_IMAGE: true
BUILD_TIMEOUT: 784
- # TODO(lucasagomes): Re-enable MOD_WSGI after
- # https://bugs.launchpad.net/neutron/+bug/1912359 is implemented
NEUTRON_DEPLOY_MOD_WSGI: true
devstack_plugins:
neutron: https://opendev.org/openstack/neutron.git
@@ -1025,7 +1023,6 @@
- ^neutron/privileged/.*$
- ^neutron/plugins/ml2/drivers/.*$
- ^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).*$
diff --git a/zuul.d/project.yaml b/zuul.d/project.yaml
index 1720745..69a380c 100644
--- a/zuul.d/project.yaml
+++ b/zuul.d/project.yaml
@@ -213,14 +213,7 @@
- neutron-tempest-plugin-bgpvpn-bagpipe-2024-1
- neutron-tempest-plugin-bgpvpn-bagpipe-2024-2
- neutron-tempest-plugin-bgpvpn-bagpipe-2025-1
- - neutron-tempest-plugin-dynamic-routing:
- # TODO(ralonsoh): this job is temporarily disabled; it will be
- # restored once [1] is merged. This patch has been successfully
- # tested in [2]. This job is removed from the gate queue,
- # thus **remember to restore it in this queue too**.
- # [1]https://review.opendev.org/c/openstack/neutron/+/941202
- # [2]https://review.opendev.org/c/openstack/neutron-tempest-plugin/+/940906
- voting: false
+ - neutron-tempest-plugin-dynamic-routing
- neutron-tempest-plugin-dynamic-routing-2024-1
- neutron-tempest-plugin-dynamic-routing-2024-2
- neutron-tempest-plugin-dynamic-routing-2025-1
@@ -245,5 +238,6 @@
jobs:
- neutron-tempest-plugin-sfc
- neutron-tempest-plugin-bgpvpn-bagpipe
+ - neutron-tempest-plugin-dynamic-routing
- neutron-tempest-plugin-fwaas-ovn
- neutron-tempest-plugin-vpnaas-ovn