[QoS] Get only min bw rules when extending port dict
Only min bw rules are required hence no need to fetch all rules of QoS policy. Also no need to get qos policy from DB Partial-Bug: #1905726 Change-Id: Iad29cb34825adaa8c766d01b192a6bbe9992148b
This commit is contained in:
parent
56bea066f4
commit
a7e02cdb17
neutron
@ -118,8 +118,6 @@ class QoSPlugin(qos.QoSPluginBase):
|
||||
port_res['resource_request'] = None
|
||||
if not qos_id:
|
||||
return port_res
|
||||
qos_policy = policy_object.QosPolicy.get_object(
|
||||
context.get_admin_context(), id=qos_id)
|
||||
|
||||
resources = {}
|
||||
# NOTE(ralonsoh): we should move this translation dict to n-lib.
|
||||
@ -129,9 +127,10 @@ class QoSPlugin(qos.QoSPluginBase):
|
||||
nl_constants.EGRESS_DIRECTION:
|
||||
pl_constants.CLASS_NET_BW_EGRESS_KBPS
|
||||
}
|
||||
for rule in qos_policy.rules:
|
||||
if rule.rule_type == qos_consts.RULE_TYPE_MINIMUM_BANDWIDTH:
|
||||
resources[rule_direction_class[rule.direction]] = rule.min_kbps
|
||||
min_bw_rules = rule_object.QosMinimumBandwidthRule.get_objects(
|
||||
context.get_admin_context(), qos_policy_id=qos_id)
|
||||
for rule in min_bw_rules:
|
||||
resources[rule_direction_class[rule.direction]] = rule.min_kbps
|
||||
if not resources:
|
||||
return port_res
|
||||
|
||||
|
@ -130,10 +130,8 @@ class TestQosPlugin(base.BaseQosTestCase):
|
||||
|
||||
if has_qos_policy:
|
||||
self.port_data['port']['qos_policy_id'] = self.policy.id
|
||||
self.policy.rules = bw_rules
|
||||
elif has_net_qos_policy:
|
||||
self.port_data['port']['qos_network_policy_id'] = self.policy.id
|
||||
self.policy.rules = bw_rules
|
||||
|
||||
self.port = ports_object.Port(
|
||||
self.ctxt, **self.port_data['port'])
|
||||
@ -144,8 +142,10 @@ class TestQosPlugin(base.BaseQosTestCase):
|
||||
|
||||
with mock.patch('neutron.objects.network.NetworkSegment.get_objects',
|
||||
return_value=[segment_mock]), \
|
||||
mock.patch('neutron.objects.qos.policy.QosPolicy.get_object',
|
||||
return_value=self.policy):
|
||||
mock.patch(
|
||||
'neutron.objects.qos.rule.QosMinimumBandwidthRule.'
|
||||
'get_objects',
|
||||
return_value=bw_rules):
|
||||
return qos_plugin.QoSPlugin._extend_port_resource_request(
|
||||
port_res, self.port)
|
||||
|
||||
@ -186,7 +186,7 @@ class TestQosPlugin(base.BaseQosTestCase):
|
||||
)
|
||||
|
||||
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'))
|
||||
|
||||
@ -204,7 +204,6 @@ class TestQosPlugin(base.BaseQosTestCase):
|
||||
|
||||
def test__extend_port_resource_request_inherited_policy(self):
|
||||
self.min_rule.direction = lib_constants.EGRESS_DIRECTION
|
||||
self.policy.rules = [self.min_rule]
|
||||
self.min_rule.qos_policy_id = self.policy.id
|
||||
|
||||
port = self._create_and_extend_port([self.min_rule],
|
||||
|
Loading…
x
Reference in New Issue
Block a user