[Fullstack] Drop all linuxbridge scenarios from fullstack tests
As we discussed on the Neutron CI meeting on 7.11.2023 (it was video meeting, no strict logs stored) [1], to save some time in the fullstack job execution we want to stop running all the Linuxbridge related tests/scenarios in fullstack test suite. Linuxbridge is experimental feature now, not really fully supported by the Neutron team so we are allowed to do so in this case. This patch is doing exactly that. There are no any Linuxbridge agent related tests/scenarios. Support for Linuxbridge in the Fullstack framework wasn't however removed completely. It is like that because of 2 reasons: * there is one DHCP agent related test which tests different segments and is using Linuxbridge agent on one of the fake nodes, * maybe there will be at some point need to have some Linuxbridge agent test there so the infrastructure for that is still available, it won't cause any issues while it's (almost) not used currently. [1] https://meetings.opendev.org/meetings/neutron_ci/2023/neutron_ci.2023-11-07-15.00.html Change-Id: I709c477f66ada037e47ec9abc7fbed1d1a238d20
This commit is contained in:
parent
26f1734239
commit
688c5e2a91
@ -188,7 +188,7 @@ class TestPlacementBandwidthReport(base.BaseFullStackTestCase):
|
||||
scenarios = [
|
||||
(constants.AGENT_TYPE_OVS,
|
||||
{'l2_agent_type': constants.AGENT_TYPE_OVS,
|
||||
'mech_drivers': 'openvswitch,linuxbridge',
|
||||
'mech_drivers': 'openvswitch',
|
||||
'placement_port': '8080'}),
|
||||
(constants.AGENT_TYPE_NIC_SWITCH,
|
||||
{'l2_agent_type': constants.AGENT_TYPE_NIC_SWITCH,
|
||||
|
@ -20,7 +20,6 @@ from oslo_utils import uuidutils
|
||||
import testscenarios
|
||||
|
||||
from neutron.common import utils as common_utils
|
||||
from neutron.tests import base as tests_base
|
||||
from neutron.tests.common import net_helpers
|
||||
from neutron.tests.fullstack import base
|
||||
from neutron.tests.fullstack.resources import config
|
||||
@ -150,22 +149,6 @@ class TestOvsConnectivitySameNetworkOnOvsBridgeControllerStop(
|
||||
signal.SIGKILL)
|
||||
|
||||
|
||||
class TestLinuxBridgeConnectivitySameNetwork(BaseConnectivitySameNetworkTest):
|
||||
|
||||
l2_agent_type = constants.AGENT_TYPE_LINUXBRIDGE
|
||||
scenarios = [
|
||||
('VXLAN', {'network_type': 'vxlan',
|
||||
'l2_pop': False}),
|
||||
('VLANs', {'network_type': 'vlan',
|
||||
'l2_pop': False}),
|
||||
('VXLAN and l2pop', {'network_type': 'vxlan',
|
||||
'l2_pop': True})
|
||||
]
|
||||
|
||||
def test_connectivity(self):
|
||||
self._test_connectivity()
|
||||
|
||||
|
||||
class _TestUninterruptedConnectivityOnL2AgentRestart(
|
||||
BaseConnectivitySameNetworkTest):
|
||||
|
||||
@ -210,20 +193,3 @@ class TestUninterruptedConnectivityOnL2AgentRestartOvs(
|
||||
|
||||
def test_l2_agent_restart(self, agent_restart_timeout=20):
|
||||
self._test_l2_agent_restart(agent_restart_timeout)
|
||||
|
||||
|
||||
class TestUninterruptedConnectivityOnL2AgentRestartLB(
|
||||
_TestUninterruptedConnectivityOnL2AgentRestart):
|
||||
|
||||
scenario = [('LB',
|
||||
{'l2_agent_type': constants.AGENT_TYPE_LINUXBRIDGE})]
|
||||
|
||||
scenarios = (
|
||||
testscenarios.multiply_scenarios(
|
||||
scenario,
|
||||
_TestUninterruptedConnectivityOnL2AgentRestart.network_scenarios)
|
||||
)
|
||||
|
||||
@tests_base.unstable_test("bug 1928764")
|
||||
def test_l2_agent_restart(self, agent_restart_timeout=20):
|
||||
self._test_l2_agent_restart(agent_restart_timeout)
|
||||
|
@ -33,8 +33,6 @@ class BaseDhcpAgentTest(base.BaseFullStackTestCase):
|
||||
scenarios = [
|
||||
(constants.AGENT_TYPE_OVS,
|
||||
{'l2_agent_type': constants.AGENT_TYPE_OVS}),
|
||||
(constants.AGENT_TYPE_LINUXBRIDGE,
|
||||
{'l2_agent_type': constants.AGENT_TYPE_LINUXBRIDGE})
|
||||
]
|
||||
boot_vm_for_test = True
|
||||
dhcp_scheduler_class = None
|
||||
|
@ -37,8 +37,6 @@ class PortShutDownTest(base.BaseFullStackTestCase):
|
||||
num_hosts = 1
|
||||
|
||||
scenarios = [
|
||||
(constants.AGENT_TYPE_LINUXBRIDGE,
|
||||
{'l2_agent_type': constants.AGENT_TYPE_LINUXBRIDGE}),
|
||||
(constants.AGENT_TYPE_OVS,
|
||||
{'l2_agent_type': constants.AGENT_TYPE_OVS})
|
||||
]
|
||||
|
@ -32,10 +32,6 @@ class TestPortsRebind(base.BaseFullStackTestCase):
|
||||
('Open vSwitch Agent', {
|
||||
'l2_agent_type': constants.AGENT_TYPE_OVS,
|
||||
'l2_mechdriver_name': 'openvswitch',
|
||||
}),
|
||||
('Linux Bridge Agent', {
|
||||
'l2_agent_type': constants.AGENT_TYPE_LINUXBRIDGE,
|
||||
'l2_mechdriver_name': 'linuxbridge',
|
||||
})]
|
||||
|
||||
def setUp(self):
|
||||
@ -170,9 +166,6 @@ class TestRouterPortRebind(TestPortsRebind):
|
||||
5. Router's port created in p.3 should be now bound properly
|
||||
"""
|
||||
|
||||
if self.l2_agent_type == constants.AGENT_TYPE_LINUXBRIDGE:
|
||||
self.skipTest("Bug 1798085")
|
||||
|
||||
gw_port = self.safe_client.client.list_ports(
|
||||
device_id=self.router['id'],
|
||||
device_owner=constants.DEVICE_OWNER_ROUTER_GW)['ports'][0]
|
||||
|
@ -20,7 +20,6 @@ from neutron_lib.services.qos import constants as qos_consts
|
||||
from neutronclient.common import exceptions
|
||||
from oslo_utils import uuidutils
|
||||
|
||||
from neutron.agent.linux import tc_lib
|
||||
from neutron.common import utils
|
||||
from neutron.tests.common.agents import l2_extensions
|
||||
from neutron.tests.fullstack import base
|
||||
@ -30,11 +29,6 @@ from neutron.tests.fullstack.resources import machine
|
||||
from neutron.tests.unit import testlib_api
|
||||
|
||||
from neutron.agent.common import ovs_lib
|
||||
from neutron.conf.plugins.ml2.drivers import linuxbridge as \
|
||||
linuxbridge_agent_config
|
||||
from neutron.plugins.ml2.drivers.linuxbridge.agent import \
|
||||
linuxbridge_neutron_agent as linuxbridge_agent
|
||||
from neutron.services.qos.drivers.linuxbridge import driver as lb_drv
|
||||
from neutron.services.qos.drivers.openvswitch import driver as ovs_drv
|
||||
|
||||
|
||||
@ -404,46 +398,6 @@ class TestBwLimitQoSOvs(_TestBwLimitQoS, base.BaseFullStackTestCase):
|
||||
self.assertIsNone(qos_queues)
|
||||
|
||||
|
||||
class TestBwLimitQoSLinuxbridge(_TestBwLimitQoS, base.BaseFullStackTestCase):
|
||||
l2_agent_type = constants.AGENT_TYPE_LINUXBRIDGE
|
||||
scenarios = [
|
||||
('egress', {'direction': constants.EGRESS_DIRECTION}),
|
||||
('ingress', {'direction': constants.INGRESS_DIRECTION}),
|
||||
]
|
||||
|
||||
@staticmethod
|
||||
def _get_expected_burst_value(limit, direction):
|
||||
# For egress bandwidth limit this value should be calculated as
|
||||
# bandwidth_limit * qos_consts.DEFAULT_BURST_RATE
|
||||
if direction == constants.EGRESS_DIRECTION:
|
||||
return TestBwLimitQoSLinuxbridge._get_expected_egress_burst_value(
|
||||
limit)
|
||||
else:
|
||||
return TestBwLimitQoSLinuxbridge._get_expected_ingress_burst_value(
|
||||
limit)
|
||||
|
||||
@staticmethod
|
||||
def _get_expected_ingress_burst_value(limit):
|
||||
return int(
|
||||
float(limit) /
|
||||
float(linuxbridge_agent_config.DEFAULT_KERNEL_HZ_VALUE))
|
||||
|
||||
def _wait_for_bw_rule_applied(self, vm, limit, burst, direction):
|
||||
port_name = linuxbridge_agent.LinuxBridgeManager.get_tap_device_name(
|
||||
vm.neutron_port['id'])
|
||||
tc = tc_lib.TcCommand(
|
||||
port_name,
|
||||
linuxbridge_agent_config.DEFAULT_KERNEL_HZ_VALUE,
|
||||
namespace=vm.host.host_namespace
|
||||
)
|
||||
if direction == constants.EGRESS_DIRECTION:
|
||||
utils.wait_until_true(
|
||||
lambda: tc.get_filters_bw_limits() == (limit, burst))
|
||||
elif direction == constants.INGRESS_DIRECTION:
|
||||
utils.wait_until_true(
|
||||
lambda: tc.get_tbf_bw_limits() == (limit, burst))
|
||||
|
||||
|
||||
class _TestDscpMarkingQoS(BaseQoSRuleTestCase):
|
||||
|
||||
number_of_hosts = 2
|
||||
@ -540,15 +494,6 @@ class TestDscpMarkingQoSOvs(_TestDscpMarkingQoS, base.BaseFullStackTestCase):
|
||||
vm.bridge, vm.port.name, dscp_mark)
|
||||
|
||||
|
||||
class TestDscpMarkingQoSLinuxbridge(_TestDscpMarkingQoS,
|
||||
base.BaseFullStackTestCase):
|
||||
l2_agent_type = constants.AGENT_TYPE_LINUXBRIDGE
|
||||
|
||||
def _wait_for_dscp_marking_rule_applied(self, vm, dscp_mark):
|
||||
l2_extensions.wait_until_dscp_marking_rule_applied_linuxbridge(
|
||||
vm.host.host_namespace, vm.port.name, dscp_mark)
|
||||
|
||||
|
||||
class _TestPacketRateLimitQoS(BaseQoSRuleTestCase):
|
||||
|
||||
number_of_hosts = 1
|
||||
@ -644,9 +589,6 @@ class TestQoSWithL2Population(base.BaseFullStackTestCase):
|
||||
(constants.AGENT_TYPE_OVS,
|
||||
{'mech_drivers': 'openvswitch',
|
||||
'supported_rules': ovs_drv.SUPPORTED_RULES}),
|
||||
(constants.AGENT_TYPE_LINUXBRIDGE,
|
||||
{'mech_drivers': 'linuxbridge',
|
||||
'supported_rules': lb_drv.SUPPORTED_RULES})
|
||||
]
|
||||
|
||||
def setUp(self):
|
||||
|
@ -94,9 +94,6 @@ class TestSecurityGroupsSameNetwork(BaseSecurityGroupsSameNetworkTest):
|
||||
|
||||
network_type = 'vxlan'
|
||||
scenarios = [
|
||||
# TODO(njohnston): Re-add the linuxbridge scenario once it is stable
|
||||
# The iptables_hybrid driver lacks isolation between agents and
|
||||
# because of that using only one host is enough
|
||||
('ovs-hybrid', {
|
||||
'firewall_driver': 'iptables_hybrid',
|
||||
'l2_agent_type': constants.AGENT_TYPE_OVS,
|
||||
|
@ -11,7 +11,6 @@
|
||||
# under the License.
|
||||
|
||||
from neutron_lib import constants
|
||||
from neutronclient.common import exceptions
|
||||
from oslo_utils import uuidutils
|
||||
|
||||
from neutron.tests.common.agents import l2_extensions
|
||||
@ -72,8 +71,7 @@ class TestSegmentationId(BaseSegmentationIdTest):
|
||||
|
||||
scenarios = [
|
||||
('Open vSwitch Agent', {'l2_agent_type': constants.AGENT_TYPE_OVS}),
|
||||
('Linux Bridge Agent', {
|
||||
'l2_agent_type': constants.AGENT_TYPE_LINUXBRIDGE})]
|
||||
]
|
||||
num_hosts = 1
|
||||
|
||||
def test_change_segmentation_id_no_ports_in_network(self):
|
||||
@ -103,13 +101,7 @@ class TestSegmentationId(BaseSegmentationIdTest):
|
||||
self.safe_client.create_port(self.project_id, network['id'],
|
||||
self.environment.hosts[0].hostname)
|
||||
|
||||
if self.l2_agent_type == constants.AGENT_TYPE_LINUXBRIDGE:
|
||||
# Linuxbridge agent don't support update of segmentation_id for
|
||||
# the network so this should raise an exception
|
||||
self.assertRaises(exceptions.BadRequest,
|
||||
self._update_segmentation_id, network)
|
||||
else:
|
||||
self._update_segmentation_id(network)
|
||||
self._update_segmentation_id(network)
|
||||
|
||||
|
||||
class TestSegmentationIdConnectivity(BaseSegmentationIdTest):
|
||||
|
Loading…
Reference in New Issue
Block a user