Fix QoS rule update

QoS rule (QosBandwidthLimitRule and QosMinimumBandwidthRule) update now
expects to have direction field in the API request for checking for
duplicates.
This patch changes this by using the rule fetched from the policy and
the update will work on that rule object instead of a newly created
object which for minimum_bandwidth rule has no default direction, which
causes the update to fail.

Change-Id: Ib8f95bf14193a50f22102668bed9208a93d1caba
Closes-Bug: #1815618
(cherry picked from commit c1999a2b22)
This commit is contained in:
Lajos Katona 2019-03-01 14:39:13 +01:00
parent 1ea1c59805
commit 5a11b24f37

View File

@ -354,8 +354,7 @@ class QoSPlugin(qos.QoSPluginBase):
policy = self._get_policy_obj(context, policy_id) policy = self._get_policy_obj(context, policy_id)
# Ensure the rule belongs to the policy. # Ensure the rule belongs to the policy.
checker.check_bandwidth_rule_conflict(policy, rule_data) checker.check_bandwidth_rule_conflict(policy, rule_data)
policy.get_rule_by_id(rule_id) rule = policy.get_rule_by_id(rule_id)
rule = rule_cls(context, id=rule_id)
rule.update_fields(rule_data, reset_changes=True) rule.update_fields(rule_data, reset_changes=True)
checker.check_rules_conflict(policy, rule) checker.check_rules_conflict(policy, rule)
rule.update() rule.update()