Merge "[QoS] Get only min bw rules when extending port dict" into stable/train

This commit is contained in:
Zuul 2021-01-28 16:07:51 +00:00 committed by Gerrit Code Review
commit 112d82aad0
2 changed files with 10 additions and 11 deletions

View File

@ -43,6 +43,7 @@ from neutron.objects import network as network_object
from neutron.objects import ports as ports_object from neutron.objects import ports as ports_object
from neutron.objects.qos import policy as policy_object from neutron.objects.qos import policy as policy_object
from neutron.objects.qos import qos_policy_validator as checker from neutron.objects.qos import qos_policy_validator as checker
from neutron.objects.qos import rule as rule_object
from neutron.objects.qos import rule_type as rule_type_object from neutron.objects.qos import rule_type as rule_type_object
from neutron.services.qos.drivers import manager from neutron.services.qos.drivers import manager
@ -100,8 +101,6 @@ class QoSPlugin(qos.QoSPluginBase):
port_res['resource_request'] = None port_res['resource_request'] = None
if not qos_id: if not qos_id:
return port_res return port_res
qos_policy = policy_object.QosPolicy.get_object(
context.get_admin_context(), id=qos_id)
resources = {} resources = {}
# NOTE(ralonsoh): we should move this translation dict to n-lib. # NOTE(ralonsoh): we should move this translation dict to n-lib.
@ -111,9 +110,10 @@ class QoSPlugin(qos.QoSPluginBase):
nl_constants.EGRESS_DIRECTION: nl_constants.EGRESS_DIRECTION:
pl_constants.CLASS_NET_BW_EGRESS_KBPS pl_constants.CLASS_NET_BW_EGRESS_KBPS
} }
for rule in qos_policy.rules: min_bw_rules = rule_object.QosMinimumBandwidthRule.get_objects(
if rule.rule_type == qos_consts.RULE_TYPE_MINIMUM_BANDWIDTH: context.get_admin_context(), qos_policy_id=qos_id)
resources[rule_direction_class[rule.direction]] = rule.min_kbps for rule in min_bw_rules:
resources[rule_direction_class[rule.direction]] = rule.min_kbps
if not resources: if not resources:
return port_res return port_res

View File

@ -128,10 +128,8 @@ class TestQosPlugin(base.BaseQosTestCase):
if has_qos_policy: if has_qos_policy:
self.port_data['port']['qos_policy_id'] = self.policy.id self.port_data['port']['qos_policy_id'] = self.policy.id
self.policy.rules = bw_rules
elif has_net_qos_policy: elif has_net_qos_policy:
self.port_data['port']['qos_network_policy_id'] = self.policy.id self.port_data['port']['qos_network_policy_id'] = self.policy.id
self.policy.rules = bw_rules
self.port = ports_object.Port( self.port = ports_object.Port(
self.ctxt, **self.port_data['port']) self.ctxt, **self.port_data['port'])
@ -142,8 +140,10 @@ class TestQosPlugin(base.BaseQosTestCase):
with mock.patch('neutron.objects.network.NetworkSegment.get_objects', with mock.patch('neutron.objects.network.NetworkSegment.get_objects',
return_value=[segment_mock]), \ return_value=[segment_mock]), \
mock.patch('neutron.objects.qos.policy.QosPolicy.get_object', mock.patch(
return_value=self.policy): 'neutron.objects.qos.rule.QosMinimumBandwidthRule.'
'get_objects',
return_value=bw_rules):
return qos_plugin.QoSPlugin._extend_port_resource_request( return qos_plugin.QoSPlugin._extend_port_resource_request(
port_res, self.port) port_res, self.port)
@ -184,7 +184,7 @@ class TestQosPlugin(base.BaseQosTestCase):
) )
def test__extend_port_resource_request_non_min_bw_rule(self): def test__extend_port_resource_request_non_min_bw_rule(self):
port = self._create_and_extend_port([self.rule]) port = self._create_and_extend_port([])
self.assertIsNone(port.get('resource_request')) self.assertIsNone(port.get('resource_request'))
@ -202,7 +202,6 @@ class TestQosPlugin(base.BaseQosTestCase):
def test__extend_port_resource_request_inherited_policy(self): def test__extend_port_resource_request_inherited_policy(self):
self.min_rule.direction = lib_constants.EGRESS_DIRECTION self.min_rule.direction = lib_constants.EGRESS_DIRECTION
self.policy.rules = [self.min_rule]
self.min_rule.qos_policy_id = self.policy.id self.min_rule.qos_policy_id = self.policy.id
port = self._create_and_extend_port([self.min_rule], port = self._create_and_extend_port([self.min_rule],