Bug 1641977

Summary: If ansible task fails, a traceback is shown in the logs swallowing original issue
Product: Red Hat OpenStack Reporter: Jakub Libosvar <jlibosva>
Component: python-networking-ansibleAssignee: Jakub Libosvar <jlibosva>
Status: CLOSED ERRATA QA Contact: Arkady Shtempler <ashtempl>
Severity: high Docs Contact:
Priority: high    
Version: 14.0 (Rocky)CC: bfournie, jlibosva, michapma
Target Milestone: betaKeywords: AutomationBlocker, Triaged
Target Release: 14.0 (Rocky)   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: python-networking-ansible-1.0.4-2.el7ost Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2019-01-11 11:54:09 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 Jakub Libosvar 2018-10-23 09:37:40 UTC
Description of problem:
Deleting a BM machine ends in the ERROR state because of failure in ansible mech driver:
2018-10-23 08:58:31.968 27 ERROR neutron.plugins.ml2.managers [req-5ccccc44-3620-4d6c-954b-18c49d9f3813 559f1fcece264b988034b9ee4baab93b dff18e00cf484510a7c4c7a275ad07c2 - default default] Mechanism driver ansible failed in bind_port: TypeError: 'NoneType' object has no attribute '__getitem__'
2018-10-23 08:58:31.968 27 ERROR neutron.plugins.ml2.managers Traceback (most recent call last):
2018-10-23 08:58:31.968 27 ERROR neutron.plugins.ml2.managers   File "/usr/lib/python2.7/site-packages/neutron/plugins/ml2/managers.py", line 783, in _bind_port_level
2018-10-23 08:58:31.968 27 ERROR neutron.plugins.ml2.managers     driver.obj.bind_port(context)
2018-10-23 08:58:31.968 27 ERROR neutron.plugins.ml2.managers   File "/usr/lib/python2.7/site-packages/networking_ansible/ml2/mech_driver.py", line 235, in bind_port
2018-10-23 08:58:31.968 27 ERROR neutron.plugins.ml2.managers     context.network.current)
2018-10-23 08:58:31.968 27 ERROR neutron.plugins.ml2.managers   File "/usr/lib/python2.7/site-packages/networking_ansible/ansible_networking.py", line 130, in vlan_access_port
2018-10-23 08:58:31.968 27 ERROR neutron.plugins.ml2.managers     segmentation_id, switch_port)
2018-10-23 08:58:31.968 27 ERROR neutron.plugins.ml2.managers   File "/usr/lib/python2.7/site-packages/networking_ansible/ansible_networking.py", line 77, in _run_task
2018-10-23 08:58:31.968 27 ERROR neutron.plugins.ml2.managers     failures = result.stats['failures']
2018-10-23 08:58:31.968 27 ERROR neutron.plugins.ml2.managers TypeError: 'NoneType' object has no attribute '__getitem__'

Version-Release number of selected component (if applicable):
python2-networking-ansible-1.0.4-1.el7ost.noarch

How reproducible:
Always

Steps to Reproduce:
1. Create an instance from BM
2. Delete the instance
3.

Actual results:
| fault                               | {u'message': u'Node 2908cf7a-59aa-4a36-b7d0-7d23f1412956 can not be updated while a state transition is in progress. (HTTP 409)', u'code': 500, u'details': u'  File "/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 204, in decorated_function\n    return function(self, context, *args, **kwargs)\n  File "/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 2682, in terminate_instance\n    do_terminate_instance(instance, bdms)\n  File "/usr/lib/python2.7/site-packages/oslo_concurrency/lockutils.py", line 274, in inner\n    return f(*args, **kwargs)\n  File "/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 2680, in do_terminate_instance\n    self._set_instance_obj_error_state(context, instance)\n  File "/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 220, in __exit__\n    self.force_reraise()\n  File "/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 196, in force_reraise\n    six.reraise(self.type_, self.value, self.tb)\n  File "/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 2670, in do_terminate_instance\n    self._delete_instance(context, instance, bdms)\n  File "/usr/lib/python2.7/site-packages/nova/hooks.py", line 154, in inner\n    rv = f(*args, **kwargs)\n  File "/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 2613, in _delete_instance\n    self._shutdown_instance(context, instance, bdms)\n  File "/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 2505, in _shutdown_instance\n    requested_networks)\n  File "/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 220, in __exit__\n    self.force_reraise()\n  File "/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 196, in force_reraise\n    six.reraise(self.type_, self.value, self.tb)\n  File "/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 2492, in _shutdown_instance\n    block_device_info)\n  File "/usr/lib/python2.7/site-packages/nova/virt/ironic/driver.py", line 1256, in destroy\n    self._cleanup_deploy(node, instance, network_info)\n  File "/usr/lib/python2.7/site-packages/nova/virt/ironic/driver.py", line 478, in _cleanup_deploy\n    self._remove_instance_info_from_node(node, instance)\n  File "/usr/lib/python2.7/site-packages/nova/virt/ironic/driver.py", line 413, in _remove_instance_info_from_node\n    self.ironicclient.call(\'node.update\', node.uuid, patch)\n  File "/usr/lib/python2.7/site-packages/nova/virt/ironic/client_wrapper.py", line 170, in call\n    return self._multi_getattr(client, method)(*args, **kwargs)\n  File "/usr/lib/python2.7/site-packages/ironicclient/v1/node.py", line 359, in update\n    params=params)\n  File "/usr/lib/python2.7/site-packages/ironicclient/common/base.py", line 232, in _update\n    resp, body = self.api.json_request(method, url, **kwargs)\n  File "/usr/lib/python2.7/site-packages/ironicclient/common/http.py", line 678, in json_request\n    resp = self._http_request(url, method, **kwargs)\n  File "/usr/lib/python2.7/site-packages/ironicclient/common/http.py", line 287, in wrapper\n    return func(self, url, method, **kwargs)\n  File "/usr/lib/python2.7/site-packages/ironicclient/common/http.py", line 660, in _http_request\n    error_json.get(\'debuginfo\'), method, url)\n', u'created': u'2018-10-23T09:01:56Z'} |


Expected results:
Server is deleted and BM is available (which BTW is, just that server remains in ERROR state)


Additional info:
Works in upstream

Comment 5 errata-xmlrpc 2019-01-11 11:54:09 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHEA-2019:0045