Merge "Fix compute configuration podified, and related tests"

This commit is contained in:
Zuul 2024-08-21 08:45:27 +00:00 committed by Gerrit Code Review
commit dcce239747
3 changed files with 29 additions and 37 deletions

View File

@ -401,11 +401,7 @@ class BaseTempestWhiteboxTestCase(base.BaseTempestTestCase):
:param value(str): Value to set.
"""
assert param, "'param' must be supplied"
if WB_CONF.openstack_type == 'podified':
if node_type == 'compute':
raise cls.skipException(
"Setting computes configuration not supported yet on "
"podified setups (TODO).")
if WB_CONF.openstack_type == 'podified' and node_type != 'compute':
service_pod = cls.get_pods_of_service(service)[0]
# TODO(mblue): process ini in python instead of crudini command,
# without depending on hardcoded conf filenames, crudini bin in pod
@ -538,7 +534,7 @@ class BaseTempestWhiteboxTestCase(base.BaseTempestTestCase):
service_regex, host_ip)
catch = ssh_client.exec_command(
"systemctl --type=service | grep '{}'; true".format(
service_regex)).strip
service_regex)).strip()
if catch:
LOG.debug("Service found on host '%s':\n%s",
host_ip, catch)

View File

@ -49,7 +49,10 @@ class TestMetadataRateLimiting(wb_base.BaseTempestWhiteboxTestCase):
cls.metadata_conf_file = (
'/etc/neutron/neutron_ovn_metadata_agent.ini')
else:
cls.metadata_conf_file = cls.neutron_conf
cls.metadata_conf_file = (
'/var/lib/config-data/ansible-generated/'
'neutron-ovn-metadata-agent/'
'01-neutron-ovn-metadata-agent.conf')
# OSP resources
cls.rand_name = data_utils.rand_name(
cls.__name__.rsplit('.', 1)[-1])
@ -58,11 +61,6 @@ class TestMetadataRateLimiting(wb_base.BaseTempestWhiteboxTestCase):
name=data_utils.rand_name('secgroup'))
cls.create_loginable_secgroup_rule(
cls.secgroup['security_group']['id'])
# enable metadata rate limiting feature
cls.cmd_base = 'sudo crudini --set ' + cls.metadata_conf_file\
+ ' metadata_rate_limiting'
LOG.debug("Enable the metadata rate limiting using configuration.")
cls._set_rate_limiting_config(rate_limit_enabled='true')
@classmethod
def run_cmd_on_nodes(cls, cmd):
@ -90,8 +88,6 @@ class TestMetadataRateLimiting(wb_base.BaseTempestWhiteboxTestCase):
Args:
- **kwargs: Configuration parameters as key-value pairs.
"""
# TODO(mblue): when conf change supported on computes in podified env,
# verify test fully instead of skipping.
for key, value in kwargs.items():
if value is not None:
LOG.debug(
@ -100,16 +96,17 @@ class TestMetadataRateLimiting(wb_base.BaseTempestWhiteboxTestCase):
'Section - metadata_rate_limiting\n'
f'Parameter - {key}\n'
f'Value - {value}\n')
if WB_CONF.openstack_type == 'podified':
cls.set_service_setting(
'compute',
cls.metadata_conf_file,
'metadata_rate_limiting',
key, value)
else:
cls.run_cmd_on_nodes(f"{cls.cmd_base} {key} {value}")
cls.set_service_setting(
'compute',
cls.metadata_conf_file,
'metadata_rate_limiting',
key, value)
cls._restart_metadata_agent()
def tearDown(self):
super().tearDown()
self._reset_config()
@classmethod
def resource_cleanup(cls):
super(TestMetadataRateLimiting, cls).resource_cleanup()
@ -118,18 +115,14 @@ class TestMetadataRateLimiting(wb_base.BaseTempestWhiteboxTestCase):
@classmethod
def _reset_config(cls):
"""Reset the metadata rate limiting configuration."""
# NOTE(mblue): 'oc patch' can't remove values, max count over min time
min_duration = 1
max_rate = 2 ** 16 - 2
cls._set_rate_limiting_config(
base_query_rate_limit=max_rate,
burst_window_duration=min_duration,
burst_query_rate_limit=max_rate,
base_window_duration=min_duration
)
"""Reset/remove the metadata rate limiting configuration."""
LOG.debug(
"Set metadata rate limiting configuration permissive values.")
"Removing metadata rate limiting configuration.")
cls.run_group_cmd(
'sudo crudini --del {} {} && sudo sync'.format(
cls.metadata_conf_file,
'metadata_rate_limiting'),
'compute')
@classmethod
def _disable_metadata_rate_limiting_config(cls):
@ -205,6 +198,7 @@ class TestMetadataRateLimiting(wb_base.BaseTempestWhiteboxTestCase):
# modify the configuration for limiting
self._set_rate_limiting_config(
rate_limit_enabled='true',
base_query_rate_limit=base_query_rate_limit,
base_window_duration=base_window_duration
)
@ -219,7 +213,6 @@ class TestMetadataRateLimiting(wb_base.BaseTempestWhiteboxTestCase):
sleep(base_window_duration)
self._test_limiting(base_query_rate_limit, vm)
self._reset_config()
@decorators.idempotent_id('16381121-8a23-41db-8167-390c7ba1fe77')
def test_metadata_burst_rate_limiting(self):
@ -242,6 +235,7 @@ class TestMetadataRateLimiting(wb_base.BaseTempestWhiteboxTestCase):
LOG.debug("Test the metadata service's burst rate limiting")
# modify the configuration for limiting
self._set_rate_limiting_config(
rate_limit_enabled='true',
base_query_rate_limit=base_query_rate_limit,
burst_window_duration=burst_window_duration,
burst_query_rate_limit=burst_query_rate_limit,
@ -265,7 +259,6 @@ class TestMetadataRateLimiting(wb_base.BaseTempestWhiteboxTestCase):
# "Too Many Requests" after exceeding the burst query rate limit
sleep(burst_window_duration * 2)
self._test_limiting(burst_query_rate_limit, vm)
self._reset_config()
@decorators.idempotent_id('d564beda-5860-4c5f-96ac-13eb0995f7b7')
def test_metadata_base_and_burst_rate_limiting(self):
@ -290,6 +283,7 @@ class TestMetadataRateLimiting(wb_base.BaseTempestWhiteboxTestCase):
# Set rate limiting configuration
self._set_rate_limiting_config(
rate_limit_enabled='true',
base_query_rate_limit=base_query_rate_limit,
burst_window_duration=burst_window_duration,
burst_query_rate_limit=burst_query_rate_limit,
@ -313,4 +307,3 @@ class TestMetadataRateLimiting(wb_base.BaseTempestWhiteboxTestCase):
# Send additional requests to verify they're within the base limit
# but not the burst limit
self._test_limiting(base_query_rate_limit - burst_query_rate_limit, vm)
self._reset_config()

View File

@ -447,7 +447,10 @@
(^whitebox_neutron_tempest_plugin.*test_previously_used_ip)|\
(^whitebox_neutron_tempest_plugin.tests.scenario.test_ovn_dbs.OvnDbsMonitoringTest.*)|\
(^whitebox_neutron_tempest_plugin.*ovn_controller_restart)"
tempest_exclude_regex: ""
# NOTE(mblue): Enable metadata rate limiting tests
# when OSPRH-9569 is resolved (feature code available in RHOSO).
tempest_exclude_regex: "\
(^whitebox_neutron_tempest_plugin.tests.scenario.test_metadata_rate_limiting)"
- job:
name: whitebox-neutron-tempest-plugin-openvswitch