Public bug reported: This bug seems to be combination of problems on both client and server sides. So we may need to add pyhton-neutronclient and/or python- openstackclient as an affected component. I'll do that as soon as I manage to locate which one contains the client side bug. But this report will be good to track the overall problem.
First the reproduction: openstack network qos policy create policy0 openstack network qos rule create policy0 --type minimum-bandwidth --min-kbps 1000 --egress # 71a84995-cccd-4f09-9c3d-b1caa18ff363 openstack network qos rule set policy0 71a84995-cccd-4f09-9c3d-b1caa18ff363 --min-kbps 1001 --egress -> works as expected # make sure we only have one rule of the type openstack network qos rule delete policy0 71a84995-cccd-4f09-9c3d-b1caa18ff363 openstack network qos rule create policy0 --type minimum-bandwidth --min-kbps 1000 --ingress # 1155c1c8-f9a7-4954-b195-9f58c8e18b4d openstack network qos rule set policy0 1155c1c8-f9a7-4954-b195-9f58c8e18b4d --min-kbps 1001 --ingress -> works as expected openstack network qos rule delete policy0 1155c1c8-f9a7-4954-b195-9f58c8e18b4d # create the ingress/egress pair at once openstack network qos rule create policy0 --type minimum-bandwidth --min-kbps 1000 --egress # f392837a-09e2-4b5e-8c29-86670797679e openstack network qos rule create policy0 --type minimum-bandwidth --min-kbps 1000 --ingress # 77dae223-b787-4943-bb45-c42424fd29ec # This is the bug. As we'll see later the trigger is a client-side problem, but I don't think neutron-server should return 500 Internal Server Error. The malformed input should be caught earlier and a 4xx response should be given. openstack network qos rule set policy0 f392837a-09e2-4b5e-8c29-86670797679e --min-kbps 1001 --egress Failed to set Network QoS rule ID "f392837a-09e2-4b5e-8c29-86670797679e": HttpException: 500: Server Error for url: http://100.109.0.20:9696/v2.0/qos/policies/188a2f59-ab90-41a3-9e6f-58e641a34544/minimum_bandwidth_rules/f392837a-09e2-4b5e-8c29-86670797679e, Request Failed: internal server error while processing your request. openstack network qos rule set policy0 77dae223-b787-4943-bb45-c42424fd29ec --min-kbps 1001 --ingress Failed to set Network QoS rule ID "77dae223-b787-4943-bb45-c42424fd29ec": HttpException: 500: Server Error for url: http://100.109.0.20:9696/v2.0/qos/policies/188a2f59-ab90-41a3-9e6f-58e641a34544/minimum_bandwidth_rules/77dae223-b787-4943-bb45-c42424fd29ec, Request Failed: internal server error while processing your request. # the same rule update can be done by neutronclient, but only for the egress direction neutron qos-minimum-bandwidth-rule-update f392837a-09e2-4b5e-8c29-86670797679e policy0 --min-kbps 1001 --direction egress -> works as expected # this failure is expected because neutronclient was long deprecated already when the ingress direction was introduced neutron qos-minimum-bandwidth-rule-update 77dae223-b787-4943-bb45-c42424fd29ec policy0 --min-kbps 1001 --direction ingress neutron qos-minimum-bandwidth-rule-update: error: argument --direction: invalid choice: u'ingress' (choose from 'egress') Further details: The working update by neutronclient looks like this: neutron qos-minimum-bandwidth-rule-update f392837a-09e2-4b5e-8c29-86670797679e policy0 --min-kbps 1001 --direction egress PUT /v2.0/qos/policies/188a2f59-ab90-41a3-9e6f-58e641a34544/minimum_bandwidth_rules/f392837a-09e2-4b5e-8c29-86670797679e {"minimum_bandwidth_rule": {"direction": "egress", "min_kbps": "1001"}} The wrong update by openstackclient looks like this: openstack network qos rule set policy0 f392837a-09e2-4b5e-8c29-86670797679e --min-kbps 1001 --egress PUT /v2.0/qos/policies/188a2f59-ab90-41a3-9e6f-58e641a34544/minimum_bandwidth_rules/f392837a-09e2-4b5e-8c29-86670797679e {"minimum_bandwidth_rule": {"min_kbps": 1001}} The 500 Internal Server Error's traceback: febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource [None req-e73566b0-35e0-4572-a3d5-28f77853b4c9 admin admin] update failed: No details.: AttributeError: 'QosMinimumBandwidthRule' object has no attribute '_ob j_direction' febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource Traceback (most recent call last): febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource File "/opt/stack/neutron/neutron/api/v2/resource.py", line 98, in resource febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource result = method(request=request, **args) febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource File "/opt/stack/neutron/neutron/api/v2/base.py", line 624, in update febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource return self._update(request, id, body, **kwargs) febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource File "/opt/stack/neutron-lib/neutron_lib/db/api.py", line 142, in wrapped febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource setattr(e, '_RETRY_EXCEEDED', True) febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 220, in __exit__ febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource self.force_reraise() febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 196, in force_reraise febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource six.reraise(self.type_, self.value, self.tb) febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource File "/opt/stack/neutron-lib/neutron_lib/db/api.py", line 138, in wrapped febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource return f(*args, **kwargs) febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/oslo_db/api.py", line 154, in wrapper febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource ectxt.value = e.inner_exc febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 220, in __exit__ febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource self.force_reraise() febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 196, in force_reraise febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource six.reraise(self.type_, self.value, self.tb) febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/oslo_db/api.py", line 142, in wrapper febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource return f(*args, **kwargs) febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource File "/opt/stack/neutron-lib/neutron_lib/db/api.py", line 198, in wrapped febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource LOG.debug("Retry wrapper got retriable exception: %s", e) febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 220, in __exit__ febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource self.force_reraise() febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 196, in force_reraise febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource six.reraise(self.type_, self.value, self.tb) febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource File "/opt/stack/neutron-lib/neutron_lib/db/api.py", line 194, in wrapped febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource return f(*dup_args, **dup_kwargs) febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource File "/opt/stack/neutron/neutron/api/v2/base.py", line 680, in _update febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource obj = obj_updater(request.context, id, **kwargs) febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource File "/opt/stack/neutron/neutron/extensions/qos.py", line 174, in <lambda> febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource method_name, rule_cls, *args, **kwargs) febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource File "/opt/stack/neutron/neutron/extensions/qos.py", line 170, in _make_call febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource context, rule_cls, *args_list, **params febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource File "/opt/stack/neutron/neutron/db/db_base_plugin_common.py", line 50, in inner febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource result = f(*args, **kwargs) febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource File "/opt/stack/neutron/neutron/services/qos/qos_plugin.py", line 423, in update_policy_rule febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource checker.check_rules_conflict(policy, rule) febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource File "/opt/stack/neutron/neutron/objects/qos/qos_policy_validator.py", line 63, in check_rules_conflict febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource if rule.duplicates(rule_obj): febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource File "/opt/stack/neutron/neutron/objects/qos/rule.py", line 83, in duplicates febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource if getattr(self, field) != getattr(other_rule, field): febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/oslo_versionedobjects/base.py", line 68, in getter febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource return getattr(self, attrname) febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource AttributeError: 'QosMinimumBandwidthRule' object has no attribute '_obj_direction' febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource· The version used to reproduce the bug: neutron 2f3cc51784 neutron-lib aceb7c50ed devstack ee4b6a01 python-openstackclient dcff1012fd python-neutronclient d74b871f7fe openstacksdk==0.23.0 osc-lib==1.12.0 I'll work on fixing these problems. ** Affects: neutron Importance: Undecided Assignee: Bence Romsics (bence-romsics) Status: New ** Tags: low-hanging-fruit qos -- You received this bug notification because you are a member of Yahoo! Engineering Team, which is subscribed to neutron. https://bugs.launchpad.net/bugs/1815618 Title: cannot update qos rule Status in neutron: New Bug description: This bug seems to be combination of problems on both client and server sides. So we may need to add pyhton-neutronclient and/or python- openstackclient as an affected component. I'll do that as soon as I manage to locate which one contains the client side bug. But this report will be good to track the overall problem. First the reproduction: openstack network qos policy create policy0 openstack network qos rule create policy0 --type minimum-bandwidth --min-kbps 1000 --egress # 71a84995-cccd-4f09-9c3d-b1caa18ff363 openstack network qos rule set policy0 71a84995-cccd-4f09-9c3d-b1caa18ff363 --min-kbps 1001 --egress -> works as expected # make sure we only have one rule of the type openstack network qos rule delete policy0 71a84995-cccd-4f09-9c3d-b1caa18ff363 openstack network qos rule create policy0 --type minimum-bandwidth --min-kbps 1000 --ingress # 1155c1c8-f9a7-4954-b195-9f58c8e18b4d openstack network qos rule set policy0 1155c1c8-f9a7-4954-b195-9f58c8e18b4d --min-kbps 1001 --ingress -> works as expected openstack network qos rule delete policy0 1155c1c8-f9a7-4954-b195-9f58c8e18b4d # create the ingress/egress pair at once openstack network qos rule create policy0 --type minimum-bandwidth --min-kbps 1000 --egress # f392837a-09e2-4b5e-8c29-86670797679e openstack network qos rule create policy0 --type minimum-bandwidth --min-kbps 1000 --ingress # 77dae223-b787-4943-bb45-c42424fd29ec # This is the bug. As we'll see later the trigger is a client-side problem, but I don't think neutron-server should return 500 Internal Server Error. The malformed input should be caught earlier and a 4xx response should be given. openstack network qos rule set policy0 f392837a-09e2-4b5e-8c29-86670797679e --min-kbps 1001 --egress Failed to set Network QoS rule ID "f392837a-09e2-4b5e-8c29-86670797679e": HttpException: 500: Server Error for url: http://100.109.0.20:9696/v2.0/qos/policies/188a2f59-ab90-41a3-9e6f-58e641a34544/minimum_bandwidth_rules/f392837a-09e2-4b5e-8c29-86670797679e, Request Failed: internal server error while processing your request. openstack network qos rule set policy0 77dae223-b787-4943-bb45-c42424fd29ec --min-kbps 1001 --ingress Failed to set Network QoS rule ID "77dae223-b787-4943-bb45-c42424fd29ec": HttpException: 500: Server Error for url: http://100.109.0.20:9696/v2.0/qos/policies/188a2f59-ab90-41a3-9e6f-58e641a34544/minimum_bandwidth_rules/77dae223-b787-4943-bb45-c42424fd29ec, Request Failed: internal server error while processing your request. # the same rule update can be done by neutronclient, but only for the egress direction neutron qos-minimum-bandwidth-rule-update f392837a-09e2-4b5e-8c29-86670797679e policy0 --min-kbps 1001 --direction egress -> works as expected # this failure is expected because neutronclient was long deprecated already when the ingress direction was introduced neutron qos-minimum-bandwidth-rule-update 77dae223-b787-4943-bb45-c42424fd29ec policy0 --min-kbps 1001 --direction ingress neutron qos-minimum-bandwidth-rule-update: error: argument --direction: invalid choice: u'ingress' (choose from 'egress') Further details: The working update by neutronclient looks like this: neutron qos-minimum-bandwidth-rule-update f392837a-09e2-4b5e-8c29-86670797679e policy0 --min-kbps 1001 --direction egress PUT /v2.0/qos/policies/188a2f59-ab90-41a3-9e6f-58e641a34544/minimum_bandwidth_rules/f392837a-09e2-4b5e-8c29-86670797679e {"minimum_bandwidth_rule": {"direction": "egress", "min_kbps": "1001"}} The wrong update by openstackclient looks like this: openstack network qos rule set policy0 f392837a-09e2-4b5e-8c29-86670797679e --min-kbps 1001 --egress PUT /v2.0/qos/policies/188a2f59-ab90-41a3-9e6f-58e641a34544/minimum_bandwidth_rules/f392837a-09e2-4b5e-8c29-86670797679e {"minimum_bandwidth_rule": {"min_kbps": 1001}} The 500 Internal Server Error's traceback: febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource [None req-e73566b0-35e0-4572-a3d5-28f77853b4c9 admin admin] update failed: No details.: AttributeError: 'QosMinimumBandwidthRule' object has no attribute '_ob j_direction' febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource Traceback (most recent call last): febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource File "/opt/stack/neutron/neutron/api/v2/resource.py", line 98, in resource febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource result = method(request=request, **args) febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource File "/opt/stack/neutron/neutron/api/v2/base.py", line 624, in update febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource return self._update(request, id, body, **kwargs) febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource File "/opt/stack/neutron-lib/neutron_lib/db/api.py", line 142, in wrapped febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource setattr(e, '_RETRY_EXCEEDED', True) febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 220, in __exit__ febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource self.force_reraise() febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 196, in force_reraise febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource six.reraise(self.type_, self.value, self.tb) febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource File "/opt/stack/neutron-lib/neutron_lib/db/api.py", line 138, in wrapped febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource return f(*args, **kwargs) febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/oslo_db/api.py", line 154, in wrapper febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource ectxt.value = e.inner_exc febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 220, in __exit__ febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource self.force_reraise() febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 196, in force_reraise febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource six.reraise(self.type_, self.value, self.tb) febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/oslo_db/api.py", line 142, in wrapper febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource return f(*args, **kwargs) febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource File "/opt/stack/neutron-lib/neutron_lib/db/api.py", line 198, in wrapped febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource LOG.debug("Retry wrapper got retriable exception: %s", e) febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 220, in __exit__ febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource self.force_reraise() febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 196, in force_reraise febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource six.reraise(self.type_, self.value, self.tb) febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource File "/opt/stack/neutron-lib/neutron_lib/db/api.py", line 194, in wrapped febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource return f(*dup_args, **dup_kwargs) febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource File "/opt/stack/neutron/neutron/api/v2/base.py", line 680, in _update febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource obj = obj_updater(request.context, id, **kwargs) febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource File "/opt/stack/neutron/neutron/extensions/qos.py", line 174, in <lambda> febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource method_name, rule_cls, *args, **kwargs) febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource File "/opt/stack/neutron/neutron/extensions/qos.py", line 170, in _make_call febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource context, rule_cls, *args_list, **params febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource File "/opt/stack/neutron/neutron/db/db_base_plugin_common.py", line 50, in inner febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource result = f(*args, **kwargs) febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource File "/opt/stack/neutron/neutron/services/qos/qos_plugin.py", line 423, in update_policy_rule febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource checker.check_rules_conflict(policy, rule) febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource File "/opt/stack/neutron/neutron/objects/qos/qos_policy_validator.py", line 63, in check_rules_conflict febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource if rule.duplicates(rule_obj): febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource File "/opt/stack/neutron/neutron/objects/qos/rule.py", line 83, in duplicates febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource if getattr(self, field) != getattr(other_rule, field): febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/oslo_versionedobjects/base.py", line 68, in getter febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource return getattr(self, attrname) febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource AttributeError: 'QosMinimumBandwidthRule' object has no attribute '_obj_direction' febr 12 12:20:19 devstack0 neutron-server[31565]: ERROR neutron.api.v2.resource· The version used to reproduce the bug: neutron 2f3cc51784 neutron-lib aceb7c50ed devstack ee4b6a01 python-openstackclient dcff1012fd python-neutronclient d74b871f7fe openstacksdk==0.23.0 osc-lib==1.12.0 I'll work on fixing these problems. To manage notifications about this bug go to: https://bugs.launchpad.net/neutron/+bug/1815618/+subscriptions -- Mailing list: https://launchpad.net/~yahoo-eng-team Post to : [email protected] Unsubscribe : https://launchpad.net/~yahoo-eng-team More help : https://help.launchpad.net/ListHelp

