Bug 2104931

Summary: RHOSP16.2 Neutron QOS related tempest test failure and traceback observed in neutron server log: "ERROR neutron.plugins.ml2.managers TypeError: qos_del() got an unexpected keyword argument 'if_exists'"
Product: Red Hat OpenStack Reporter: Sandeep Yadav <sandyada>
Component: python-ovsdbappAssignee: Rodolfo Alonso <ralonsoh>
Status: CLOSED CURRENTRELEASE QA Contact: Toni Freger <tfreger>
Severity: urgent Docs Contact:
Priority: urgent    
Version: 16.2 (Train)CC: bcafarel, chrisw, ralonsoh, rlandy, scohen
Target Milestone: z4Keywords: Reopened, Triaged
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: python-ovsdbapp-0.17.6-2.20220707155303.4d9ea84.el8osttrunk Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2022-07-12 12:26:07 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Sandeep Yadav 2022-07-07 13:44:25 UTC
Description of problem:

Neutron QOS related tempest test failure and traceback observed in neutron server log: "ERROR neutron.plugins.ml2.managers TypeError: qos_del() got an unexpected keyword argument 'if_exists'"


Version-Release number of selected component (if applicable):

RHOSP 16.2


How reproducible:
Everytime

Steps to Reproduce:
1. Deploy standalone run below tempest tests:-

~~~
neutron_tempest_plugin.api.test_qos.QosTestJSON.test_delete_not_allowed_if_policy_in_use_by_port
neutron_tempest_plugin.api.test_qos.QosTestJSON.test_policy_association_with_port_shared_policy
neutron_tempest_plugin.api.test_qos.QosTestJSON.test_user_create_port_with_admin_qos_policy
~~~

Actual results:

Tempest tests failed with below error:-

~~~
{3} neutron_tempest_plugin.api.test_qos.QosTestJSON.test_policy_association_with_port_shared_policy [2.512964s] ... FAILED

Captured traceback:
~~~~~~~~~~~~~~~~~~~
    b'Traceback (most recent call last):'
    b'  File "/usr/lib/python3.6/site-packages/neutron_tempest_plugin/api/test_qos.py", line 269, in test_policy_association_with_port_shared_policy'
    b"    port = self.create_port(network, qos_policy_id=policy['id'])"
    b'  File "/usr/lib/python3.6/site-packages/neutron_tempest_plugin/api/base.py", line 562, in create_port'
    b'    **kwargs)'
    b'  File "/usr/lib/python3.6/site-packages/neutron_tempest_plugin/services/network/json/network_client.py", line 145, in _create'
    b'    resp, body = self.post(uri, post_data)'
    b'  File "/usr/lib/python3.6/site-packages/tempest/lib/common/rest_client.py", line 300, in post'
    b"    return self.request('POST', url, extra_headers, headers, body, chunked)"
    b'  File "/usr/lib/python3.6/site-packages/tempest/lib/common/rest_client.py", line 704, in request'
    b'    self._error_checker(resp, resp_body)'
    b'  File "/usr/lib/python3.6/site-packages/tempest/lib/common/rest_client.py", line 881, in _error_checker'
    b'    message=message)'
    b'tempest.lib.exceptions.ServerFault: Got server fault'
    b'Details: Request Failed: internal server error while processing your request.'
    b''
~~~


Expected results:

All the tempest tests should pass


Additional info:

Below traceback observed in server logs:-

~~~
2022-07-06 04:38:32.130 ERROR /var/log/containers/neutron/server.log: 16 ERROR neutron.plugins.ml2.managers Traceback (most recent call last):
2022-07-06 04:38:32.130 ERROR /var/log/containers/neutron/server.log: 16 ERROR neutron.plugins.ml2.managers   File "/usr/lib/python3.6/site-packages/neutron/plugins/ml2/managers.py", line 477, in _call_on_drivers
2022-07-06 04:38:32.130 ERROR /var/log/containers/neutron/server.log: 16 ERROR neutron.plugins.ml2.managers     getattr(driver.obj, method_name)(context)
2022-07-06 04:38:32.130 ERROR /var/log/containers/neutron/server.log: 16 ERROR neutron.plugins.ml2.managers   File "/usr/lib/python3.6/site-packages/networking_ovn/ml2/mech_driver.py", line 693, in create_port_postcommit
2022-07-06 04:38:32.130 ERROR /var/log/containers/neutron/server.log: 16 ERROR neutron.plugins.ml2.managers     self._ovn_client.create_port(port)
2022-07-06 04:38:32.130 ERROR /var/log/containers/neutron/server.log: 16 ERROR neutron.plugins.ml2.managers   File "/usr/lib/python3.6/site-packages/networking_ovn/common/ovn_client.py", line 424, in create_port
2022-07-06 04:38:32.130 ERROR /var/log/containers/neutron/server.log: 16 ERROR neutron.plugins.ml2.managers     self._qos_driver.create_port(txn, port)
2022-07-06 04:38:32.130 ERROR /var/log/containers/neutron/server.log: 16 ERROR neutron.plugins.ml2.managers   File "/usr/lib/python3.6/site-packages/networking_ovn/common/client_extensions/qos.py", line 245, in create_port
2022-07-06 04:38:32.130 ERROR /var/log/containers/neutron/server.log: 16 ERROR neutron.plugins.ml2.managers     self.update_port(txn, port, None, reset=True)
2022-07-06 04:38:32.130 ERROR /var/log/containers/neutron/server.log: 16 ERROR neutron.plugins.ml2.managers   File "/usr/lib/python3.6/site-packages/networking_ovn/common/client_extensions/qos.py", line 273, in update_port
2022-07-06 04:38:32.130 ERROR /var/log/containers/neutron/server.log: 16 ERROR neutron.plugins.ml2.managers     qos_policy_id, qos_rules)
2022-07-06 04:38:32.130 ERROR /var/log/containers/neutron/server.log: 16 ERROR neutron.plugins.ml2.managers   File "/usr/lib/python3.6/site-packages/networking_ovn/common/client_extensions/qos.py", line 242, in _update_port_qos_rules
2022-07-06 04:38:32.130 ERROR /var/log/containers/neutron/server.log: 16 ERROR neutron.plugins.ml2.managers     qos_rules)
2022-07-06 04:38:32.130 ERROR /var/log/containers/neutron/server.log: 16 ERROR neutron.plugins.ml2.managers   File "/usr/lib/python3.6/site-packages/networking_ovn/common/client_extensions/qos.py", line 234, in _add_port_qos_rules
2022-07-06 04:38:32.130 ERROR /var/log/containers/neutron/server.log: 16 ERROR neutron.plugins.ml2.managers     txn.add(self.nb_idl.qos_del(**ovn_rule, if_exists=True))
2022-07-06 04:38:32.130 ERROR /var/log/containers/neutron/server.log: 16 ERROR neutron.plugins.ml2.managers TypeError: qos_del() got an unexpected keyword argument 'if_exists'
~~~