Bug 1543006
| Summary: | new version of construct lib breaks Ironic Inspector exception handling | |||
|---|---|---|---|---|
| Product: | Red Hat OpenStack | Reporter: | Bob Fournier <bfournie> | |
| Component: | openstack-ironic-inspector | Assignee: | Bob Fournier <bfournie> | |
| Status: | CLOSED ERRATA | QA Contact: | mlammon | |
| Severity: | high | Docs Contact: | ||
| Priority: | high | |||
| Version: | 13.0 (Queens) | CC: | bfournie, mburns, slinaber | |
| Target Milestone: | beta | Keywords: | Triaged | |
| Target Release: | 13.0 (Queens) | |||
| Hardware: | Unspecified | |||
| OS: | Unspecified | |||
| Whiteboard: | ||||
| Fixed In Version: | openstack-ironic-inspector-7.2.0-0.20180217115157.a8d621f.el7ost | Doc Type: | If docs needed, set a value | |
| Doc Text: | Story Points: | --- | ||
| Clone Of: | ||||
| : | 1543009 1543015 (view as bug list) | Environment: | ||
| Last Closed: | 2018-06-27 13:43:30 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: | ||||
| Bug Depends On: | ||||
| Bug Blocks: | 1543009, 1543015 | |||
Installed latest osp 13
Verified the code in in this release. This is best we can do to verify.
Env:
openstack-ironic-inspector-7.2.1-0.20180409163359.2435d97.el7ost.noarch
In /usr/lib/python2.7/site-packages/ironic_inspector/plugins/local_link_connection.py
# Only accept mac address for chassis ID
if (item == SWITCH_ID_ITEM_NAME and
not netutils.is_valid_mac(value)):
LOG.info("Skipping switch_id since it's not a MAC: %s", value,
node_info=node_info)
return
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-2018:2086 |
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: