Bug 1543009 - new version of construct lib breaks Ironic Inspector exception handling (OSP12)
Summary: new version of construct lib breaks Ironic Inspector exception handling (OSP12)
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat OpenStack
Classification: Red Hat
Component: openstack-ironic-inspector
Version: 12.0 (Pike)
Hardware: Unspecified
OS: Unspecified
high
high
Target Milestone: z2
: 12.0 (Pike)
Assignee: RHOS Maint
QA Contact: mlammon
URL:
Whiteboard:
Depends On: 1543006 1543015
Blocks:
TreeView+ depends on / blocked
 
Reported: 2018-02-07 15:01 UTC by Bob Fournier
Modified: 2018-03-28 17:34 UTC (History)
6 users (show)

Fixed In Version: openstack-ironic-inspector-6.0.1-1.el7ost
Doc Type: Bug Fix
Doc Text:
Introspection failed on network switches using Link Layer Discovery Protocol (LLDP) due to how OpenStack Bare Metal (ironic) parsed exceptions. This fix corrects the exception handling and no longer results in an error.
Clone Of: 1543006
Environment:
Last Closed: 2018-03-28 17:34:12 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Launchpad 1745208 0 None None None 2018-02-07 15:01:40 UTC
OpenStack gerrit 540619 0 None None None 2018-02-07 15:01:40 UTC
Red Hat Product Errata RHBA-2018:0612 0 None None None 2018-03-28 17:34:30 UTC

Description Bob Fournier 2018-02-07 15:01:40 UTC
+++ This bug was initially created as a clone of Bug #1543006 +++

Description of problem:

Version 2.8.22 of construct has introduced a change to the core exception handling. The FieldError exception is no longer supported. As ironic-inspector was handling this exception explicitly it results in the following ironic-inspector test failures.

ironic_inspector.test.unit.test_plugins_lldp_basic.TestLLDPBasicProcessingHook.test_invalid_ip
----------------------------------------------------------------------------------------------

Captured traceback:
~~~~~~~~~~~~~~~~~~~
    Traceback (most recent call last):
      File "/home/bfournie/workspace/ironic-inspector/.tox/py3/lib/python2.7/site-packages/mock/mock.py", line 1305, in patched
        return func(*args, **keywargs)
      File "ironic_inspector/test/unit/test_plugins_lldp_basic.py", line 288, in test_invalid_ip
        self.hook.before_update(self.data, self.node_info)
      File "ironic_inspector/plugins/lldp_basic.py", line 82, in before_update
        nv = self._parse_lldp_tlvs(tlvs, node_info)
      File "ironic_inspector/plugins/lldp_basic.py", line 56, in _parse_lldp_tlvs
        if parser.parse_tlv(tlv_type, data):
      File "ironic_inspector/common/lldp_parsers.py", line 158, in parse_tlv
        except (core.RangeError, core.FieldError, core.MappingError,
    AttributeError: 'module' object has no attribute 'FieldError'

The explicit exception handling on parsing the lldp data is not required and this should be replaced by a general exception handler.

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

How reproducible:

Every time introspection is run when using Version 2.8.22 of construct lib.

Steps to Reproduce:
1. Import baremetal node connected to network switch running lldp
2. Run introspection

Actual results:

Introspection fails with error as above.

Expected results:

Introspection passes.


Additional info:

Comment 2 mlammon 2018-03-14 21:03:42 UTC
Deploy latest osp12 2018-03-10.1
Introspection passed and looks like new code available

Env:
openstack-ironic-inspector-6.0.1-1.el7ost.noarch

Comment 5 errata-xmlrpc 2018-03-28 17:34:12 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/RHBA-2018:0612


Note You need to log in before you can comment on or make changes to this bug.