[FT] `Queue.external_ids:queue-num` should be a number

The value stored in `Queue.external_ids:queue-num`` should be a number,
formatted as a string.

Closes-Bug: #2089532
Change-Id: Icc4aa42c866737cf39b6b29784e5a6254a28b51c
This commit is contained in:
Rodolfo Alonso Hernandez
2024-11-25 10:59:38 +00:00
parent 4780f2734d
commit 54dba256ea

View File

@@ -14,6 +14,7 @@
# under the License. # under the License.
import functools import functools
import random
from unittest import mock from unittest import mock
from neutron_lib import constants as p_const from neutron_lib import constants as p_const
@@ -32,7 +33,7 @@ from neutron.tests.functional import base
MIN_RATE_DEFAULT = 1000000 MIN_RATE_DEFAULT = 1000000
MAX_RATE_DEFAULT = 3000000 MAX_RATE_DEFAULT = 3000000
BURST_DEFAULT = 2000000 BURST_DEFAULT = 2000000
QUEUE_NUM_DEFAULT = 'queue_num' QUEUE_NUM_DEFAULT = 1
OTHER_CONFIG_DEFAULT = {'max-rate': str(MAX_RATE_DEFAULT), OTHER_CONFIG_DEFAULT = {'max-rate': str(MAX_RATE_DEFAULT),
'burst': str(BURST_DEFAULT), 'burst': str(BURST_DEFAULT),
'min-rate': str(MIN_RATE_DEFAULT)} 'min-rate': str(MIN_RATE_DEFAULT)}
@@ -95,7 +96,7 @@ class BaseOVSTestCase(base.BaseSudoTestCase):
neutron_port_id=None, queue_num=None): neutron_port_id=None, queue_num=None):
neutron_port_id = (('port-' + uuidutils.generate_uuid())[:13] neutron_port_id = (('port-' + uuidutils.generate_uuid())[:13]
if not neutron_port_id else neutron_port_id) if not neutron_port_id else neutron_port_id)
queue_num = QUEUE_NUM_DEFAULT if not queue_num else queue_num queue_num = str(queue_num) if queue_num else str(QUEUE_NUM_DEFAULT)
queue_id = self.ovs._update_queue(neutron_port_id, queue_num, queue_id = self.ovs._update_queue(neutron_port_id, queue_num,
queue_type, queue_type,
max_kbps=max_kbps, max_kbps=max_kbps,
@@ -189,10 +190,11 @@ class BaseOVSTestCase(base.BaseSudoTestCase):
self.fail(msg) self.fail(msg)
def test__update_queue_new(self): def test__update_queue_new(self):
queue_id, neutron_port_id = self._create_queue() queue_num = random.randint(1000, 10000)
queue_id, neutron_port_id = self._create_queue(queue_num=queue_num)
self.assertIsNotNone(queue_id) self.assertIsNotNone(queue_id)
external_ids = {'port': str(neutron_port_id), external_ids = {'port': str(neutron_port_id),
'queue-num': 'queue_num', 'queue-num': str(queue_num),
'type': qos_constants.RULE_TYPE_MINIMUM_BANDWIDTH} 'type': qos_constants.RULE_TYPE_MINIMUM_BANDWIDTH}
expected = {'_uuid': queue_id, expected = {'_uuid': queue_id,
@@ -201,13 +203,14 @@ class BaseOVSTestCase(base.BaseSudoTestCase):
self._check_value(expected, self._list_queues, queue_id) self._check_value(expected, self._list_queues, queue_id)
def test__update_queue_update(self): def test__update_queue_update(self):
queue_id, neutron_port_id = self._create_queue() queue_num = random.randint(1000, 10000)
queue_id, neutron_port_id = self._create_queue(queue_num=queue_num)
self.assertIsNotNone(queue_id) self.assertIsNotNone(queue_id)
other_config = {'max-rate': '6000000', other_config = {'max-rate': '6000000',
'burst': '5000000', 'burst': '5000000',
'min-rate': '4000000'} 'min-rate': '4000000'}
external_ids = {'port': str(neutron_port_id), external_ids = {'port': str(neutron_port_id),
'queue-num': 'queue_num', 'queue-num': str(queue_num),
'type': qos_constants.RULE_TYPE_MINIMUM_BANDWIDTH} 'type': qos_constants.RULE_TYPE_MINIMUM_BANDWIDTH}
queue = self._list_queues(queue_id) queue = self._list_queues(queue_id)
self.assertIsNotNone(queue) self.assertIsNotNone(queue)
@@ -222,10 +225,11 @@ class BaseOVSTestCase(base.BaseSudoTestCase):
self._check_value(expected, self._list_queues, queue_id) self._check_value(expected, self._list_queues, queue_id)
def test__find_queue(self): def test__find_queue(self):
queue_id, neutron_port_id = self._create_queue() queue_num = random.randint(1000, 10000)
queue_id, neutron_port_id = self._create_queue(queue_num=queue_num)
external_ids = {'port': str(neutron_port_id), external_ids = {'port': str(neutron_port_id),
'type': qos_constants.RULE_TYPE_MINIMUM_BANDWIDTH, 'type': qos_constants.RULE_TYPE_MINIMUM_BANDWIDTH,
'queue-num': 'queue_num'} 'queue-num': str(queue_num)}
expected = {'_uuid': queue_id, expected = {'_uuid': queue_id,
'external_ids': external_ids, 'external_ids': external_ids,
'other_config': OTHER_CONFIG_DEFAULT} 'other_config': OTHER_CONFIG_DEFAULT}
@@ -242,7 +246,7 @@ class BaseOVSTestCase(base.BaseSudoTestCase):
for idx, port in enumerate(ports): for idx, port in enumerate(ports):
external_ids = {'port': str(port), external_ids = {'port': str(port),
'type': qos_constants.RULE_TYPE_MINIMUM_BANDWIDTH, 'type': qos_constants.RULE_TYPE_MINIMUM_BANDWIDTH,
'queue-num': 'queue_num'} 'queue-num': str(QUEUE_NUM_DEFAULT)}
expected = {'_uuid': queue_ids[idx], expected = {'_uuid': queue_ids[idx],
'external_ids': external_ids, 'external_ids': external_ids,
'other_config': OTHER_CONFIG_DEFAULT} 'other_config': OTHER_CONFIG_DEFAULT}
@@ -252,10 +256,11 @@ class BaseOVSTestCase(base.BaseSudoTestCase):
_type='other_type') _type='other_type')
def test__delete_queue(self): def test__delete_queue(self):
queue_id, port_id = self._create_queue() queue_num = random.randint(1000, 10000)
queue_id, port_id = self._create_queue(queue_num=queue_num)
external_ids = {'port': str(port_id), external_ids = {'port': str(port_id),
'type': qos_constants.RULE_TYPE_MINIMUM_BANDWIDTH, 'type': qos_constants.RULE_TYPE_MINIMUM_BANDWIDTH,
'queue-num': 'queue_num'} 'queue-num': str(queue_num)}
expected = {'_uuid': queue_id, expected = {'_uuid': queue_id,
'external_ids': external_ids, 'external_ids': external_ids,
'other_config': OTHER_CONFIG_DEFAULT} 'other_config': OTHER_CONFIG_DEFAULT}
@@ -265,7 +270,8 @@ class BaseOVSTestCase(base.BaseSudoTestCase):
self._check_value(None, self._list_queues, queue_id=queue_id) self._check_value(None, self._list_queues, queue_id=queue_id)
def test__delete_queue_still_used_in_a_qos(self): def test__delete_queue_still_used_in_a_qos(self):
queue_id, port_id = self._create_queue() queue_num = random.randint(1000, 10000)
queue_id, port_id = self._create_queue(queue_num=queue_num)
queues = {1: queue_id} queues = {1: queue_id}
qos_id_1 = self._create_qos( qos_id_1 = self._create_qos(
queues=queues, queues=queues,
@@ -285,7 +291,8 @@ class BaseOVSTestCase(base.BaseSudoTestCase):
msg, {'queue': str(queue_id), 'qoses': qoses}) msg, {'queue': str(queue_id), 'qoses': qoses})
def test__update_qos_new(self): def test__update_qos_new(self):
queue_id, port_id = self._create_queue() queue_num = random.randint(1000, 10000)
queue_id, port_id = self._create_queue(queue_num=queue_num)
queues = {1: queue_id} queues = {1: queue_id}
qos_id = self._create_qos( qos_id = self._create_qos(
@@ -302,7 +309,8 @@ class BaseOVSTestCase(base.BaseSudoTestCase):
self.assertEqual(queues[1], qos['queues'][1].uuid) self.assertEqual(queues[1], qos['queues'][1].uuid)
def test__update_qos_update(self): def test__update_qos_update(self):
queue_id_1, _ = self._create_queue() queue_num = random.randint(1000, 10000)
queue_id_1, _ = self._create_queue(queue_num=queue_num)
queues = {1: queue_id_1} queues = {1: queue_id_1}
qos_id = self._create_qos( qos_id = self._create_qos(
@@ -318,7 +326,8 @@ class BaseOVSTestCase(base.BaseSudoTestCase):
qos = self._list_qos(qos_id) qos = self._list_qos(qos_id)
self.assertEqual(queues[1], qos['queues'][1].uuid) self.assertEqual(queues[1], qos['queues'][1].uuid)
queue_id_2, _ = self._create_queue() queue_num = random.randint(1000, 10000)
queue_id_2, _ = self._create_queue(queue_num=queue_num)
queues[2] = queue_id_2 queues[2] = queue_id_2
self._create_qos( self._create_qos(
@@ -333,7 +342,8 @@ class BaseOVSTestCase(base.BaseSudoTestCase):
self.assertEqual(queues[2], qos['queues'][2].uuid) self.assertEqual(queues[2], qos['queues'][2].uuid)
def test__find_qos(self): def test__find_qos(self):
queue_id, _ = self._create_queue() queue_num = random.randint(1000, 10000)
queue_id, _ = self._create_queue(queue_num=queue_num)
queues = {1: queue_id} queues = {1: queue_id}
qos_id = self._create_qos( qos_id = self._create_qos(
queues=queues, queues=queues,
@@ -474,8 +484,9 @@ class BaseOVSTestCase(base.BaseSudoTestCase):
port_name = ('port-' + uuidutils.generate_uuid())[:8] port_name = ('port-' + uuidutils.generate_uuid())[:8]
self._create_bridge() self._create_bridge()
self._create_port(port_name) self._create_port(port_name)
queue_num = 1 queue_num = random.randint(1000, 10000)
queue_id, port_id = self._create_queue(neutron_port_id=self.port_id) queue_id, port_id = self._create_queue(neutron_port_id=self.port_id,
queue_num=queue_num)
queues = {queue_num: queue_id} queues = {queue_num: queue_id}
qos_id = self._create_qos( qos_id = self._create_qos(
queues=queues, queues=queues,
@@ -485,7 +496,7 @@ class BaseOVSTestCase(base.BaseSudoTestCase):
self._check_value(qos_id, self._find_port_qos, port_name) self._check_value(qos_id, self._find_port_qos, port_name)
external_ids = {'port': str(port_id), external_ids = {'port': str(port_id),
'type': qos_constants.RULE_TYPE_MINIMUM_BANDWIDTH, 'type': qos_constants.RULE_TYPE_MINIMUM_BANDWIDTH,
'queue-num': 'queue_num'} 'queue-num': str(queue_num)}
other_config = {'max-rate': str(MAX_RATE_DEFAULT), other_config = {'max-rate': str(MAX_RATE_DEFAULT),
'burst': str(BURST_DEFAULT), 'burst': str(BURST_DEFAULT),
'min-rate': '1800000'} 'min-rate': '1800000'}
@@ -557,7 +568,8 @@ class BaseOVSTestCase(base.BaseSudoTestCase):
self.assertEqual(0, len(ports_with_qos)) self.assertEqual(0, len(ports_with_qos))
def test_delete_minimum_bandwidth_queue_no_qos_found(self): def test_delete_minimum_bandwidth_queue_no_qos_found(self):
queue_id, neutron_port_id = self._create_queue(queue_num=1) queue_num = random.randint(1000, 10000)
queue_id, neutron_port_id = self._create_queue(queue_num=queue_num)
self.addCleanup(self.ovs._delete_queue, queue_id) self.addCleanup(self.ovs._delete_queue, queue_id)
# Check that it will not raise any exception even if there is no # Check that it will not raise any exception even if there is no
@@ -589,7 +601,7 @@ class BaseOVSTestCase(base.BaseSudoTestCase):
self._check_value(None, self._list_queues, queue_id=queue_id_2) self._check_value(None, self._list_queues, queue_id=queue_id_2)
external_ids = {'port': str(port_id_3), external_ids = {'port': str(port_id_3),
'type': qos_constants.RULE_TYPE_MINIMUM_BANDWIDTH, 'type': qos_constants.RULE_TYPE_MINIMUM_BANDWIDTH,
'queue-num': 'queue_num'} 'queue-num': str(QUEUE_NUM_DEFAULT)}
expected = {'_uuid': queue_id_3, expected = {'_uuid': queue_id_3,
'external_ids': external_ids, 'external_ids': external_ids,
'other_config': OTHER_CONFIG_DEFAULT} 'other_config': OTHER_CONFIG_DEFAULT}