Temporarily enable shared external network in test class

This patch enables shared parameter similarly to patch [0],
only on test class level.

For podified environments some tests will temporary enable 'shared'
parameter for external network. This is because it was decided that
on podified environments external network should not be shared
by default for some tempest api tests to work properly, see [1].
Podified environment should run all the tests that modify external
network one by one, in a single tempest thread.

[0] eacd16a847
[1] https://github.com/openstack-k8s-operators/ci-framework/pull/1862

Change-Id: Id841b5c1cb5b620d8fcf8852b6041b1f80257505
This commit is contained in:
Maor Blaustein 2024-07-16 10:33:52 +03:00
parent 647aef6885
commit c1c17025c6

View File

@ -33,7 +33,7 @@ MAX_VLAN_ID = 4094
# TODO(eolivare): split upstream class in two classes: a base class and a class
# with the tests. This is needed in order to import the base class here and to
# not duplicate code
class VlanTransparencyDowntreamBaseTest(base.BaseTempestTestCase):
class VlanTransparencyWhiteboxBaseTest(base.BaseTempestTestCase):
credentials = ['primary', 'admin']
force_tenant_isolation = False
@ -44,7 +44,7 @@ class VlanTransparencyDowntreamBaseTest(base.BaseTempestTestCase):
@classmethod
def resource_setup(cls):
super(VlanTransparencyDowntreamBaseTest, cls).resource_setup()
super(VlanTransparencyWhiteboxBaseTest, cls).resource_setup()
# setup basic topology for servers we can log into
cls.rand_name = data_utils.rand_name(
cls.__name__.rsplit('.', 1)[-1])
@ -86,7 +86,7 @@ class VlanTransparencyDowntreamBaseTest(base.BaseTempestTestCase):
@classmethod
def skip_checks(cls):
super(VlanTransparencyDowntreamBaseTest, cls).skip_checks()
super(VlanTransparencyWhiteboxBaseTest, cls).skip_checks()
if not (CONF.neutron_plugin_options.advanced_image_ref or
CONF.neutron_plugin_options.default_image_is_advanced):
raise cls.skipException(
@ -329,7 +329,7 @@ class VlanTransparencyDowntreamBaseTest(base.BaseTempestTestCase):
sg_rule['id'])
class MultiVlanTransparencyTest(VlanTransparencyDowntreamBaseTest):
class MultiVlanTransparencyTest(VlanTransparencyWhiteboxBaseTest):
num_vlans = 4
@ -390,7 +390,7 @@ class MultiVlanTransparencyTest(VlanTransparencyDowntreamBaseTest):
self._check_remote_connectivity_vlans(untagged=True)
class MultiPortVlanTransparencyTest(VlanTransparencyDowntreamBaseTest):
class MultiPortVlanTransparencyTest(VlanTransparencyWhiteboxBaseTest):
def _test_vlan_transparent_connectivity_two_ports(
self, vlan_cidr, port_security, ip_version=4):
vlan_tag = data_utils.rand_int_id(start=MIN_VLAN_ID,
@ -461,7 +461,7 @@ class MultiPortVlanTransparencyTest(VlanTransparencyDowntreamBaseTest):
vlan_cidr='2001:db9::/64', port_security=True, ip_version=6)
class MtuVlanTransparencyTest(VlanTransparencyDowntreamBaseTest):
class MtuVlanTransparencyTest(VlanTransparencyWhiteboxBaseTest):
@decorators.idempotent_id('8e51bc66-c19e-44d5-860a-7e42a1aea722')
def test_vlan_transparent_packet_length_greater_mtu(self):
self._create_multivlan_vlan_transparency_resources(
@ -469,7 +469,7 @@ class MtuVlanTransparencyTest(VlanTransparencyDowntreamBaseTest):
self._check_remote_connectivity_vlans_mtu()
class ProviderNetworkVlanTransparencyTest(VlanTransparencyDowntreamBaseTest):
class ProviderNetworkVlanTransparencyTest(VlanTransparencyWhiteboxBaseTest):
num_vlans = 1
@classmethod
@ -491,8 +491,11 @@ class ProviderNetworkVlanTransparencyTest(VlanTransparencyDowntreamBaseTest):
'This test are only executed when VLAN Transparency is '
'enabled on the external network.')
if cls.network['shared'] is not True:
skip_reason = "Provider network is not shared"
cls.skipTest(skip_reason)
cls.addClassResourceCleanup(
cls.os_admin.network_client.update_network,
cls.network['id'], shared=False)
cls.os_admin.network_client.update_network(
cls.network['id'], shared=True)
@decorators.idempotent_id('8e51bc66-c19e-44d5-860a-7e42a1aea722')
def test_vlan_transparent_provider_network_port_sec_disabled(self):