Check there are no min BW QoS in "BaseOVSTestCase"

This patche adds a check in "BaseOVSTestCase" setUp method. Each
time a test is executed, the test case checks there are no
minimum bandwidth QoS/queues related to this OVS instance. The OVS
instance generates a random "_min_bw_qos_id" in the initialization.
This ID is assigned to the OVS QoS registers, in "external_ids:id".

Related-Bug: #1922919

Change-Id: I6955aadc51bfc9181ec84f7d54a219ffa3fd9115
This commit is contained in:
Rodolfo Alonso Hernandez 2021-04-07 12:04:27 +00:00 committed by Rodolfo Alonso
parent 8367d28621
commit ecaa7a1b48
1 changed files with 20 additions and 0 deletions

View File

@ -56,6 +56,7 @@ class BaseOVSTestCase(base.BaseSudoTestCase):
self.br_name = ('br-' + uuidutils.generate_uuid())[:10]
self.port_id = ('port-' + uuidutils.generate_uuid())[:8]
self.ovs = ovs_lib.OVSBridge(self.br_name)
self._check_no_minbw_qos()
self.elements_to_clean = {'bridges': [], 'devices': [],
'qoses': [], 'queues': []}
self.addCleanup(self._clean_system)
@ -160,6 +161,25 @@ class BaseOVSTestCase(base.BaseSudoTestCase):
self.fail('Expected value: %s, retrieved value: %s' %
(expected_value, ret[0]))
def _check_no_minbw_qos(self):
"""Asserts that there are no min BW qos/queues for this OVS instance"""
qos_id, qos_queues = self.ovs._find_qos()
if not qos_id and not qos_queues:
return
qos = self.ovs._list_qos(_id=qos_id)
ovs_queues = self.ovs._list_queues(
_type=qos_constants.RULE_TYPE_MINIMUM_BANDWIDTH)
queues = []
queue_uuids = list(qos_queues.values())
for ovs_queue in ovs_queues:
if ovs_queue['_uuid'] in queue_uuids:
queues.append(str(ovs_queue))
msg = ('There are QoS/queue registers\nQoS: %s\nqueues: %s' %
(str(qos), queues))
self.fail(msg)
def test__update_queue_new(self):
queue_id, neutron_port_id = self._create_queue()
self.assertIsNotNone(queue_id)