Add test_qos.py tests

Moved almost all tests from the downstream test_qos.py except
test_qos_user_policies that was intended for non-RBAC environments.
The test can be handled later in another patch, if needed.

Added window_size parameter for tweaking iperf functionality.

Updated test uuids in order to distinguish between d/s tests.

Changed node to ubuntu (nested-virt-ubuntu-jammy) in order to
overcome node_failure zuul issues with centos-9-stream.

Change-Id: Ieda4ed56a0c69b97ac0c0584faad8be8dc5006ca
This commit is contained in:
Roman Safronov 2023-08-08 15:24:13 +02:00
parent e6cdcd19b5
commit 8741bffcfa
6 changed files with 1500 additions and 56 deletions

View File

@ -35,7 +35,7 @@ class TcpdumpCapture(fixtures.Fixture):
self.client = client self.client = client
self.interfaces = [ifc.strip() for ifc in interfaces.split(',')] self.interfaces = [ifc.strip() for ifc in interfaces.split(',')]
self.filter_str = filter_str self.filter_str = filter_str
self.timeout = CONF.whitebox_options.capture_timeout self.timeout = CONF.whitebox_neutron_plugin_options.capture_timeout
def _setUp(self): def _setUp(self):
self.start() self.start()

View File

@ -91,6 +91,38 @@ WhiteboxNeutronPluginOptions = [
default=1, default=1,
help='The number of network nodes used ' help='The number of network nodes used '
'for the OVN router HA.'), 'for the OVN router HA.'),
cfg.StrOpt('ml2_plugin_config',
default='/etc/neutron/plugins/ml2/ml2_conf.ini',
help='Path to ml2 plugin config.'),
cfg.IntOpt('minbw_placement_nic_kbps_egress',
default=None,
help='BW configured per NIC for the minimum BW placement '
'enforcement - direction egress'),
cfg.IntOpt('minbw_placement_nic_kbps_ingress',
default=None,
help='BW configured per NIC for the minimum BW placement '
'enforcement - direction ingress'),
cfg.IntOpt('minbw_placement_num_nics',
default=None,
help='How many NICs support the minimum BW placement '
'enforcement'),
cfg.IntOpt('window_size',
default=0,
help='Parameter for iperf command used in qos bw limit tests.'
'Can be used for tweaking iperf in case default value '
'does not work for some reason, e.g. MTU issues.'),
cfg.StrOpt('node_tenant_interface',
default='eth1',
help='Physical interface of a node that intended to pass tenant'
'network traffic. Note: currently only environments with '
'the same name of the tenant interface are supported'),
cfg.IntOpt('capture_timeout',
default=120,
help='Maximal time for running remote capture, in seconds. '
'Remote capture process will be stoppped by remote shell '
'when this time expires. This is needed in order to stop '
'remote process in case test or connection was '
'interrupted unexpectedly.'),
cfg.StrOpt('proxy_host_address', cfg.StrOpt('proxy_host_address',
default='', default='',
help='Intermediate host to run commands on podified ' help='Intermediate host to run commands on podified '

View File

@ -319,6 +319,29 @@ class BaseTempestWhiteboxTestCase(base.BaseTempestTestCase):
else: else:
return False return False
def _create_server(self, create_floating_ip=True,
scheduler_hints=None, network=None):
network = network or self.network
server_kwargs = {
'flavor_ref': self.flavor_ref,
'image_ref': self.image_ref,
'key_name': self.keypair['name'],
'networks': [{'uuid': network['id']}],
'security_groups': [{'name': self.security_groups[-1]['name']}]
}
if scheduler_hints:
server_kwargs['scheduler_hints'] = scheduler_hints
server = self.create_server(**server_kwargs)
port = self.client.list_ports(
network_id=network['id'],
device_id=server['server']['id'])['ports'][0]
if create_floating_ip:
fip = self.create_floatingip(port=port)
else:
fip = None
return {'port': port, 'fip': fip, 'server': server}
def _create_server_for_topology( def _create_server_for_topology(
self, network_id=None, port_type=None, self, network_id=None, port_type=None,
different_host=None, port_qos_policy_id=None): different_host=None, port_qos_policy_id=None):

File diff suppressed because it is too large Load Diff

View File

@ -1,57 +1,8 @@
# Base nested switch job for 2023.1 and later
- nodeset: - nodeset:
name: whitebox-neutron-five-node-centos-9-stream name: whitebox-neutron-single-node-ubuntu-jammy
nodes: nodes:
- name: controller - name: controller
label: nested-virt-centos-9-stream label: nested-virt-ubuntu-jammy
- name: controller2
label: nested-virt-centos-9-stream
- name: controller3
label: nested-virt-centos-9-stream
- name: compute1
label: nested-virt-centos-9-stream
- name: compute2
label: nested-virt-centos-9-stream
groups:
# Node where tests are executed and test results collected
- name: tempest
nodes:
- controller
# Nodes running the controller service
- name: controller
nodes:
- controller
- controller2
- controller3
# Nodes running the compute service
- name: compute
nodes:
- compute1
- compute2
# Nodes that are not controller
- name: subnode
nodes:
- compute1
- compute2
- controller2
- controller3
# Switch node for multinode networking setup
- name: switch
nodes:
- controller
# Peer nodes for multinode networking setup
- name: peers
nodes:
- controller2
- controller3
- compute1
- compute2
- nodeset:
name: whitebox-neutron-single-node-centos-9-stream
nodes:
- name: controller
label: nested-virt-centos-9-stream
groups: groups:
- name: tempest - name: tempest
nodes: nodes:
@ -65,7 +16,7 @@
regex: ^(unmaintained|stable/(victoria|wallaby|xena|yoga|zed)).*$ regex: ^(unmaintained|stable/(victoria|wallaby|xena|yoga|zed)).*$
negate: true negate: true
# Comment nodeset and vars to switch back to non nested nodes # Comment nodeset and vars to switch back to non nested nodes
nodeset: whitebox-neutron-five-node-centos-9-stream nodeset: whitebox-neutron-single-node-ubuntu-jammy
vars: &nested_virt_vars vars: &nested_virt_vars
devstack_localrc: devstack_localrc:
LIBVIRT_TYPE: kvm LIBVIRT_TYPE: kvm

View File

@ -248,8 +248,6 @@
parent: whitebox-neutron-tempest-plugin-base-nested-switch parent: whitebox-neutron-tempest-plugin-base-nested-switch
pre-run: playbooks/preparations.yaml pre-run: playbooks/preparations.yaml
timeout: 10800 timeout: 10800
# TODO(mblue): Remove line when changing ovn job to be HA job as well.
nodeset: whitebox-neutron-single-node-centos-9-stream
vars: vars:
network_api_extensions_ovn: network_api_extensions_ovn:
- vlan-transparent - vlan-transparent
@ -402,7 +400,6 @@
name: whitebox-neutron-tempest-plugin-openvswitch name: whitebox-neutron-tempest-plugin-openvswitch
parent: whitebox-neutron-tempest-plugin-base-nested-switch parent: whitebox-neutron-tempest-plugin-base-nested-switch
pre-run: playbooks/preparations.yaml pre-run: playbooks/preparations.yaml
nodeset: whitebox-neutron-single-node-centos-9-stream
timeout: 10800 timeout: 10800
vars: vars:
configure_swap_size: 2048 configure_swap_size: 2048